欢迎来到天天文库
浏览记录
ID:14433212
大小:123.50 KB
页数:9页
时间:2018-07-28
《网络编程-ping程序设计实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、网络编程-PING程序设计实验指导书一.实验目的(1)熟悉原始套接字编程。(2)了解网络的结构。(3)了解网络传输底层协议。二.实验要求PING程序是用于测试网络连通性的程序。要求在WINDOWS环境下实现基本的PING程序功能.在命令提示符下输入: PING***.***.***.***其中***为目的主机的IP地址,不要求支持域名,对是否带有开关变量也不做要求。不带开关变量时,要求返回4次响应。返回信息的格式: REPLYFROM***.***.***.***或 REQUESTTimeOut (无法PING通的情况)三.实
2、验原理1、PING的工作原理ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送ICMP回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。因此,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP
3、协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前16bit就组成了ICMP所要传递的信息。PING利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。2、RAW模式的SOCKET编程 PING程序是面向用户的应用程序,该程序使用ICMP的封装
4、机制,通过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.lib5、 在模拟实现环境下调试并运行自己编写的PING
5、程序6、最后提交源程序,撰写实验报告参考资料:【1】WinsockProgrammer'sFAQExamples:Ping:RawSocketsMethod,http://tangentsoft.net/wskfaq/examples/rawping.html【2】透析ICMP协议: 协议原理,http://tieba.baidu.com/f?kz=70599632【3】ping原理与ICMP协议,http://hi.baidu.com/_ioini/blog/item/a64de1a75d34eb91d1435811.html附录:SOCKET编程
6、1、SOCKET规范概述WindowsSockets规范以U.C.Berkeley大学BSDUNIX中流行的Socket接口为范例定义了一套MicorosoftWindows下网络编程接口。它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。 WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,WindowsSockets也定义了一个二
7、进制接口(ABI),以此来保证应用WindowsSocketsAPI的应用程序能够在任何网络软件供应商的符合WindowsSockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。 遵守这套WindowsSockets规范的网络软件,我们称之为WindowsSockets兼容的,而WindowsSockets兼容实现的提供者,我们称之为WindowsSockets提供者。一个网络软件供应商必须百分之百地实现WindowsSockets规范才能做到现WindowsSockets兼容。
8、 任何能够与WindowsSockets兼容实现协同工作的应用程序就被认为是具有WindowsSockets
此文档下载收益归作者所有