文档详情

Ping程序设计实验指导书.pdf

发布:2017-07-05约1.17万字共9页下载文档
文本预览下载声明
网络编程-PING 程序设计实验指导书 一.实验目的 (1)熟悉原始套接字编程。 (2)了解网络的结构。 (3)了解网络传输底层协议。 二.实验要求 PING 程序是用于测试网络连通性的程序。要求在WINDOWS 环境下实现基本 的PING 程序功能. 在命令提示符下输入: PING ***.***.***.*** 其中***为目的主机的IP 地址,不要求支持域名,对是否带有开关变量也不 做要求。不带开关变量时,要求返回4 次响应。 返回信息的格式: REPLY FROM ***.***.***.*** 或 REQUEST TimeOut (无法PING 通的情况) 三.实验原理 1、PING 的工作原理 ping 程序是用来探测主机到主机之间是否可通信,如果不能ping 到某台主 机,表明不能和这台主机建立连接。ping 使用的是ICMP 协议,它发送 ICMP 回 送请求消息给目的主机。ICMP 协议规定:目的主机必须返回ICMP 回送应答消息 给源主机。如果源主机在一定时间内收到应答,则认为主机可达。 ICMP 协议通过IP 协议发送的,IP 协议是一种无连接的,不可靠的数据包协 议。因此,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块 就是ICMP(网络控制报文)协议。 当传送IP 数据包发生错误--比如主机不可达,路由不可达等等,ICMP 协 议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也 就是为什么说建立在IP 层以上的协议是可能做到安全的原因。ICMP 数据包由 8bit 的错误类型和8bit 的代码和16bit 的校验和组成。而前 16bit 就组成了 ICMP 所要传递的信息。 PING 利用ICMP 协议包来侦测另一个主机是否可达。原理是用类型码为8 的 ICMP 发请求,受到请求的主机则用类型码为0 的ICMP 回应。ping 程序来计算 间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。 2、RAW 模式的SOCKET 编程 PING 程序是面向用户的应用程序,该程序使用ICMP 的封装机制,通过IP 协 议来工作。为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET 编程。 熟悉SOCKET 的编程,包括基本的系统调用如SOCKET、BIND 等. 3、具体内容 (1) 定义数据结构 需要定义好IP 数据报、ICMP 包等相关的数据结构 (2) 程序实现 在WINDOWS 环境下实现PING 程序 四. 实验步骤和注意事项 1、 熟悉IP 以及ICMP 协议的工作机制 2、 熟悉RAW 模式的SOCKET 编程 3、编写PING 的实现程序 4、编译环境中需要包括SOCKET 库 WS2_32.lib 5、 在模拟实现环境下调试并运行自己编写的PING 程序 6、最后提交源程序,撰写实验报告 参考资料: 【1】 Winsock Programmers FAQ Examples: Ping: Raw Sockets Method , /wskfaq/examples/rawping.html 【2】 透析ICMP 协议: 协议原理,/f?kz 【3】 ping 原理与ICMP 协议, /_ioini/blog/item/a64de1a75d34eb91d1435811.html 附录:SOCKET 编程 1、SOCKET 规范概述 Windows Sockets 规范以U.C. Berkeley 大学BSD UNIX 中流行的Socket 接 口为范例定义了一套Micorosoft Windows 下网络编程接口。它不仅包含了人们 所熟悉的Berkeley Socket 风格的库函数;也包含了一组针对Windows 的扩展库 函数,以使程序员能充分地利用Windows 消息驱动机制进行编程。 Windows Sockets 规范本意在于提供给应用程序开发者一套简单的API,并 让各家网络软件供应商共同遵守。此外,在一个特定版本 Windows 的基础上, Windows Sockets 也定义了一个二进制接口(ABI),以此来保证应用 Windows So
显示全部
相似文档