实验六 基于icmp协议的ping程序设计实验

实验六 基于icmp协议的ping程序设计实验

ID:3671386

大小:192.50 KB

页数:15页

时间:2017-11-22

实验六 基于icmp协议的ping程序设计实验_第1页
实验六 基于icmp协议的ping程序设计实验_第2页
实验六 基于icmp协议的ping程序设计实验_第3页
实验六 基于icmp协议的ping程序设计实验_第4页
实验六 基于icmp协议的ping程序设计实验_第5页
资源描述:

《实验六 基于icmp协议的ping程序设计实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验六基于ICMP协议的ping程序设计实验一、实验目的n分析ICMP协议报文,理解和掌握ICMP协议报文头各字段的含义和作用;n熟悉原始套接字编程;了解网络结构与网络传输底层协议。二、实验时数:4小时三、实验环境n连通的局域网络、若干PC机、WindowsXP/2000等操作系统、VisualC等编程软件等。四、实验要求n掌握ICMP协议报文格式和各字段含义;n在WINDOWS环境下设计与实现基于ICMP协议的PING程序,该程序可以用于测试网络连通性。具体要求如下:在命令提示符下输入:PING***.***

2、.***.***其中***为目的主机的IP地址;不要求支持域名,对是否带有开关变量也不做要求,当不带开关变量时,要求返回4次响应。返回信息的格式:REPLYFROM***.***.***.***或REQUESTTimeOut(无法PING通的情况)五、实验原理1、PING的工作原理ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送ICMP回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机

3、。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。因此,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误,比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前16bit就组成

4、了ICMP所要传递的信息。PING利用ICMP协议包来侦测另一个主机是否可达。其原理是用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。2、RAW模式的SOCKET编程 PING程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP协议来工作。为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。熟悉SOCKET的编程,包括基本的系统调用如SOCKET、BIND等。3、I

5、CMP协议网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。位于网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。ICMP全称InternetControlMessageProtocol,中文名为因特网控制报文协议,它的报头长8字节,结构如下图所示:   比特0   7 8         15 16               比特31

6、类型(0或8)代码(0)检验和标识符序号数据 ICMP协议提供的诊断报文类型如下表所示:类型描述0回应应答(Ping应答,与类型8的Ping请求一起使用)3目的不可达4源消亡5重定向8回应请求(Ping请求,与类型8的Ping应答一起使用)9路由器公告(与类型10一起使用)10路由器请求(与类型9一起使用)11超时12参数问题13时标请求(与类型14一起使用)14时标应答(与类型13一起使用)15信息请求(与类型16一起使用)16信息应答(与类型15一起使用)17地址掩码请求(与类型18一起使用)18地址掩码应

7、答(与类型17一起使用)  ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类:1)诊断报文(类型8,代码0;类型0,代码0);2)目的不可达报文(类型3,代码0-15);3)重定向报文(类型5,代码0-4);4)超时报文(类型11,代码0-1);5)信息报文(类型12-18)。六、实验步骤及注意点1)熟悉IP以及ICMP协议的工作机制;2)熟悉RAW模式的SOCKET编程;3)编写PING的实现程序;4)在模拟实现环境下调试并运行自己编写的PING程序;5)编译环

8、境中需要包括SOCKET库WS2_32.lib。七、实验报告要求提交源程序,并撰写实验报告。八、相关参考资料1)WinsockProgrammer'sFAQExamples:Ping:RawSocketsMethod,http://tangentsoft.net/wskfaq/examples/rawping.html;2)透析ICMP协议: 协议原理,http://wenku.bai

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。