首页 理论教育 计算机网络:ICMP报文类型与格式

计算机网络:ICMP报文类型与格式

时间:2023-11-05 理论教育 版权反馈
【摘要】:表5-8 ICMP报文的类型2.ICMP报文的格式ICMP报文包括8B的报头和长度可变的数据部分。对不同的报文类型,其报头的格式一般都不相同,但前3个字段对所有的ICMP报文都一样。图5-14给出ICMP报文格式。ICMP的校验和计算与IP报头的校验和类似,都是采用反码算术运算。根据RFC1812的规定,对于差错报告报文类型,数据字段必须同时包括ICMP差错信息和触发ICMP的整个原始数据报,其长度不能超过576B。

计算机网络:ICMP报文类型与格式

1.ICMP报文类型

ICMP报文有两大类:差错报告报文和查询报文。差错报告报文反映了IP数据报在处理时产生的错误信息;查询报文要成对使用,反映从一个主机或路由器得到的特定的信息。例如:主机能检测到在其网络上一些路由器的情况,而一些路由器能帮助一个结点改变报文的路由。表5-8给出各种类型的ICMP报文。

表5-8 ICMP报文的类型

978-7-111-43162-6-Chapter05-21.jpg

2.ICMP报文的格式

ICMP报文包括8B的报头和长度可变的数据部分。对不同的报文类型,其报头的格式一般都不相同,但前3个字段对所有的ICMP报文都一样。图5-14给出ICMP报文格式。

978-7-111-43162-6-Chapter05-22.jpg

图5-14 ICMP报文的格式

第1字段:类型(Type)字段,长度是1B,用于定义报文类型。

第2字段:代码(Code)字段,长度是1B,表示发送这个特定报文类型的原因。

第3字段:校验和(Checksum)字段,长度是2B,用于数据报传输过程中的差错控制。ICMP的校验和计算与IP报头的校验和类似,都是采用反码算术运算。

第4字段:报头的其余部分,其内容因不同报文类型而不同。如标识了“Unused”,则此字段必须为0,保留为以后使用。(www.xing528.com)

第5字段:数据字段,其内容因不同报文类型而不同,提供了ICMP差错和状态报告信息。根据RFC1812的规定,对于差错报告报文类型,数据字段必须同时包括ICMP差错信息和触发ICMP的整个原始数据报,其长度不能超过576B。在RFC792中,允许数据字段仅包括ICMP差错信息、原始数据报的IP报头以及前8B的数据,因为数据的前8字节提供关于端口号(UDP和TCP)和序号(TCP)的信息。

ICMP报文以IP数据报形式传送,报文本身被封装在IP数据报的数据区中,对于携带ICMP报文的IP数据报,其报头主要设置如下:

Version:值为4,表示是IPv4的版本。

IHL:参考IP数据报格式。

Service Type:通常TOS的值都设为0。

Total Length、Identification、Flags、Fragment Offset:参考IP数据报格式。

TTL:参考IP数据报格式,通常由路由器预先设定一恰当初值。

Protocol:值为1,表示是ICMP报文。

Header Checksum:参考IP数据报格式。

Source Address:发现错误的主机或路由器的IP地址

Destination Address:接收ICMP报文的主机或路由器的IP地址。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈