为什么icmp只能和icmp消息报文结构的源端通信

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
ICMP差错报文
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
ICMP差错报文
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口1、ICMP报文格式
ICMP协议属于网络层,是TCP/IP协议族的一个子协议,ICMP报文被封装在IP报文中。网络中传递的ICMP包示意如下,:ICMP数据包格式帧头IP报头Data(ICMP包)FCSTypeCodeChecksumdata8位8位16位按需要Type:消息类型。Code:消息类型的具体参数。Checksum:校验字段,用于检查消息是否完整;在ICMP重定向消息中用于指定网关IP地址;在Echo Reply消息中这个字段包含标识符和序号。data:数据字段,根据不同使用需求,内容不一样。2、ICMP消息格式ICMP消息格式(加粗部分为常用)TypeCode描述备注00Echo Reply回显应答(ping应答)30Network Unreachable网络不可达31Host Unreachable主机不可达32Protocol Unreachable协议不可达(不支持该协议号)33Port Unreachable端口不可达(主机没有开放该端口)34Fragmentation needed but no frag.bit set需要进行分片但设置不分片比特35Source routing failed源站选路失败36Destination network unknown目的网络未知37Destination host unknown目的主机未知38Source host isolated (obsolete)源主机被隔离(作废不用)39Destination network administratively prohibited目的网络被强制禁止310Destination host administratively prohibited目的主机被强制禁止311Network unreachable for TOS由于服务类型TOS,网络不可达312Host unreachable for TOS由于服务类型TOS,主机不可达313Communication administratively prohibited by filtering由于过滤,通信被强制禁止314Host precedence violation主机越权315Precedence cutoff in effect优先中止生效40Source quench源端被关闭(基本流控制)50Redirect for network对网络重定向51Redirect for host对主机重定向52Redirect for TOS and network对服务类型和网络重定向53Redirect for TOS and host对服务类型和主机重定向80Echo Request回显请求(Ping请求)90Router advertisement路由器通告100Route solicitation路由器请求110TTL equals 0 during transit传输期间生存时间为0111TTL equals 0 during reassembly在数据报组装期间生存时间为0120IP header bad (catchall error)坏的IP首部(包括各种差错)121Required options missing缺少必需的选项130Timestamp request (obsolete)时间戳请求(作废不用)140Timestamp reply (obsolete)时间戳应答(作废不用)150Information request (obsolete)信息请求(作废不用)160Information reply (obsolete)信息应答(作废不用)170Address mask request地址掩码请求180Address mask reply地址掩码应答3、ICMP功能
ICMP用于在主机、路由器之间传递控制消息,包括错误报告、交换受限控制和状态信息等。通常的应用场景是主机向远端发送数据而路由找不到远端,于是向主机发送一个ICMP报文告知其错误情况,我们称之为差错报文,需要注意ICMP的唯一功能是报告问题而不是纠正错误。另一种情况是主机向路由或远端发送一个ICMP请求报文,并获取ICMP回复报文以获取当前网络情况等信息,这种称之为询问报文。
ICMP差错报文共5种:ICMP差错报文终点不可达包括网络不可达、主机不可达、协议不可达、端口不可达、需要分片但DF比特已置为1、源路由失败六种情况,当出现上述六种情况时就向源站发送终点不可达报文。源站抑制当路由器或主机由于拥塞而丢弃数据时,就向源站发送源站抑制报文使源站知道应当将数据报文的发送速率放缓。超时当路由器收到生存时间为0的数据,或目的站在预先规定的时间内没有收到一个数据报的全部数据报片段均判定为超时,则丢弃数据并向源站发送超时报文。参数问题路由器或目的站收到的数据报首部的字段存在值不正确则丢弃该数据,并向源站发送参数问题报文。重定向当路由器检测到源站使用非优化路由时就会向该主机发送一个ICMP重定向报文,请求主机改变路由。
为避免ICMP差错报文对广播分组响应所带来的广播风暴,以下五种情况都不会导致ICMP差错报文的产生:
1)路由器或主机在收到异常的ICMP差错报文时不会产生新的差错报文。
2)目的地址是广播地址或多播地址的IP数据报。
3)作为链路层广播的数据报。
4)不是IP分片的第一片,避免每个分片都产生一个新的差错报文。
5)源地址不是单个主机的数据报。
ICMP询问报文有四种:ICMP询问报文回送请求和回答ICMP回送请求报文是主机或路由器向一个特定目的端发出的询问,收到报文的目的端必须发送ICMP回送应答报文给源端。目前在于测试目的端是否可达并了解其有关状态。时间戳请求和回答源端可以发送一个ICMP时间戳请求报文向另一个系统查询当前的时间,该报文的好处是可提供毫秒级的时间分辨率。掩码地址请求和回答主机使用ICMP掩码地址请求报文可向子网掩码服务器得到某个接口的掩码地址。路由询问和通过主机将路由器询问报文进行广播或多播,收到询问的路由器就使用路由器通过报文广播其路由选择信息。通过这种方式主机可了解连接在本网络上的路由器是否正常工作。
4、ICMP应用
Ping是检测网络连通性的常用工具,同时也能收集其他相关信息。用户可以在Ping命令中指定不同参数,常用配置参数说明如下:-a source-ip-address指定ICMP报文的源IP地址-c count指定发送报文的次数,缺省发送5个-h ttl-valuse指定TTL的值,缺省是255-t timeout指定等待应当报文的超时时间
源主机想知道访问目的主机的路径,它向第一个路由器发送一个TTL值为1的ICMP包且使用一个目的主机无法识别的端口,第一个路由器A收到该包后先将TTL值减1发现此时TTL=0于是不再转发并返回一个ICMP包给源主机,其中就包含了路由器A的地址。主机A收到路由器A的应答知道了路由器A的地址,便再次发送一个TTL值为2的ICMP包,路由器A收到该包后会向下转发则路由器B会收到该包,由于TTL=0则路由器B会返回一个ICMP包给源主机。通过这种方法层层传递到目的主机,目的主机发现该包端口太大无法识别于是向源主机回复一个目的不可达的ICMP包,源主机收到这个回复的包就知道自己发送的包已到达目的主机。则整个路径的IP就被源主机获悉。【需要分片但DF比特已置为1】路由器收到一份需要分片的数据报,而其IP首部中的DF字段被置为1,表明不需要分片,此时路由应向源主机发送一个ICMP差错报文。
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至: 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。icmp协议包括哪些协议_百度知道
icmp协议包括哪些协议
除了ping 与tracert 以外还有哪些协议?
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。ICMP的报头长8字节,结构如下所示。
类型(0或8) 代码(0) 检验和
数据  类型:标识生成的错误报文,它是ICMP报文中的第一个字段; 代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因; 校验和:存储了ICMP所使用的校验和值。 未使用:保留字段,供将来使用,起值设为0 数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的数据;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一起使用)(表1 ICMP诊断报文类型)ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类: 诊断报文(类型8,代码0;类型0,代码0); 目的不可达报文(类型3,代码0-15); 重定向报文(类型5,代码0-4); 超时报文(类型11,代码0-1); 信息报文(类型12-18)。谢谢给分
采纳率:40%
为您推荐:
其他类似问题
您可能关注的内容
icmp的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。【图文】第5章 Internet控制报文协议ICMP_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第5章 Internet控制报文协议ICMP
阅读已结束,下载本文到电脑
想免费下载本文?
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢posts - 0,&
comments - 0,&
trackbacks - 0
&&&&&&&&IP层的主要控制功能包括TCP/IP中设计了ICMP协议来处理报文传输过程中出现的错误,当中间路由器或目标主机发现数据报文在传输过程中出现错误,不能到达接收端时,主机或者路由器的ICMP模块将被触发,并产生一个ICMP报文向信源机报告出错情况。
&&&&& (2)在实际应用中,ICMP不但用来传输报告差错的报文,它还用来传输控制报文。
&&&&& (3)ICMP并不能提高IP协议的可靠性,只是当IP数据报不能到达接收端时,用来向发送端的IP层通知数据报因何原因没有到达接收端,以便发送端的IP层能够进行差错控制和差错处理。
&&&&& (4)目前的ICMP已成为用于IP层差错和控制报文传输的专用协议。
什么情况下不发送ICMP报文
&&&&&(1)ICMP差错报文(ICMP查询报文可能会产生ICMP差错报文)
&&&&& (2)目的地址是广播地址或多播地址的IP数据报
&&&&& (3)作为链路层广播的数据报
&&&&& (4)不是IP分片的第一片
&&&&& (5)源地址不是单个主机的数据报&&
&&&&& (6)具有特殊地址(如127.0.0.0或0.0.0.0)的数据报
&&&& (1)源主机消亡:源主机接收到源主机消亡(抑制)报文后,必须将此信息交给高层进程处理。
&&&&&(2)超时
&&&&&(3)参数问题
&&&& (4)重定向
&&&& (5)回送请求和回送应答是一对查询报文,用于测试两个机器(主机或路由器)之间能否实现通信。
&&&& (6)时间戳请求和时间戳应答一对查询报文,用于确定IP数据报在源端和目的端之间往返所需要的时间,也可用作源端和目的端机器的时钟同步。
&&&& (7)地址掩码请求和地址掩码应答是一对查询报文,用于获得一个主机所在网络的子网掩码。
&&&& (8)路由器通告和路由器请求是一对查询报文,用于主机与路由器之间交换信息。&
&&&& (9)信息请求和信息应答是一对查询报文,用于主机查找所连接网络的地址。
&&&& (10)路由跟踪
ICMP的封装
&&&&&&&ICMP封装在IP报进行传输。ICMP报文本身被封装在IP数据报的数据区中,而这个IP数据报又被封装在帧数据中。在IP数据报报头中的协议(Protocol)字段设置成1,表示该数据是ICMP报文。&&&&&&
&&&&&& 其中,ICMP报文包含:ICMP首部(8字节)+产生差错的数据报IP首部+IP首部后的8个字节。具体如下图:
&&&&&& IP包首部要被传回的原因,因为IP首部中包含了协议字段,使得ICMP可以知道如何解释后面的8个字节。而IP首部后面的8字节(UDP的首部或者TCP首部,UDP和TCP首部的8个字节分别包含了16位的目的端口号和源端口号),根据源端口号就可以把差错报文与某个特定的用户进程关联。
ICMP报文的报头
&&&&& &ICMP报文包括8个字节的报头和长度可变的数据部分。对于不同的报文类型,报头的格式一般是不相同的,但是前3个字段(4个字节)对所有的ICMP报文都是相同的。
&&&& (1)类型(Type)字段,长度是1字节,用于定义报文类型。
&&&& (2)代码(Code)字段,长度是1字节,表示发送这个特定报文类型的原因。
&&&& (3)校验和(Checksum)字段,长度是2字节,用于数据报传输过程中的差错控制。与IP报头校验和的计算方法类似,不同的是其是对整个ICMP报文进行校验。
&&&& (4)报头的其余部分,其内容因不同的报文而不同。
&&&& (5)数据字段,其内容因不同的报文而不同。对于差错报告报文类型,数据字段包括ICMP差错信息和触发ICMP的整个原始数据报,其长度不超过576字节。
&&&(1)IP协议是一种不可靠的、无连接的协议,不具备差错报告和差错纠正机制,它必须依赖于ICMP协议来报告处理一个IP数据报传输过程中的错误并提供管理和状态信息
&&& (2)ICMP即网际控制报文协议,是IP协议的一部分。当数据报在传输过程中发生错误时,主机或者路由器的ICMP模块将被触发,并产生一个ICMP报文
&&& (3)ICMP报文有两大类:差错报告报文和查询报文。其中,差错报告报文包括:目的不可达、源主机消亡、超时、参数问题、重定向。查询报文包括:回应请求和应答、信息请求和应答(已弃用)、时间戳和时间戳应答、地址掩码请求和应答、路由器通告和请求
&&& (4)ICMP报文封装成IP数据报的形式传送。ICMP报文包括1字节的类型字段、1字节的代码字段、2字节的校验和字段和长度可变的数据字段
阅读(...) 评论() &

我要回帖

更多关于 icmp报文的种类有两种 的文章

 

随机推荐