[工学]实验六 基于ICMP协议的ping程序设计实验.doc

[工学]实验六 基于ICMP协议的ping程序设计实验.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]实验六 基于ICMP协议的ping程序设计实验

实验六 基于ICMP协议的ping程序设计实验 一、实验目的 分析ICMP协议报文,理解和掌握ICMP协议报文头各字段的含义和作用; 熟悉原始套接字编程;了解网络结构与网络传输底层协议。 二、实验时数:4小时 三、实验环境 连通的局域网络、若干PC机、Windows XP /2000等操作系统、Visual C等编程软件等。 四、实验要求 掌握ICMP协议报文格式和各字段含义; 在WINDOWS环境下设计与实现基于ICMP协议的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协议包来侦测另一个主机是否可达。其原理是用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。 2、RAW模式的SOCKET编程 ? PING程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP协议来工作。为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。 熟悉SOCKET的编程,包括基本的系统调用如SOCKET、BIND等。 3、ICMP协议 网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。位于网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。 ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议,它的报头长8字节,结构如下图所示:?   比特0    7 8   ???????15? 16   ??? ???????? ?比特31 类型(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 地址掩码应答(与类型17一起使用) ?? ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类: 诊断报文(类型8,代码0;类型0,代码0); 目的不可达报文(类型3,代码0-15); 重定向报文(类型5,代码0-4); 超时报文(类型11,代码0-1); 信息报文(类型12-18)。 六、实验步骤及注意点 熟悉IP以及ICMP协议的工作机制; 熟悉RAW模式的SOCKET编程; 编写PING的实现程序; 在模拟实现环境下调试并运行自己编写的PING程序; 编译环境中需要包括SOCKET库 WS2_32.lib。 七、实验报告要求 提交源程序,并撰写实验报告。 八、相关参考资料 Winsock Programmers

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档