分享

ICMP报文格式

 谭逸逸 2012-03-14

目的不可达报文

类型:3 代码:0至15 检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

源端抑制报文

类型:4 代码:0 检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

超时报文

类型:11 代码:0或1 检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

参数问题

类型:12 代码:0或1 检验和
指针 未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

改变路由

类型:5 代码:0到3 检验和
目标路由器IP地址
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

回送请求和回答

类型:8或0 代码:0 检验和
标识符 序号
由请求报文发送;由回答报文重复

时间戳请求和回答

类型:13或14 代码:0 检验和
标识符 序号
原始时间戳
接收时间戳
发送时间戳

地址掩码请求和回答

类型:17或18 代码:0 检验和
标识符 序号
地址掩码

路由询问和通告

类型:10 代码:0 检验和
标识符 序号

类型:9 代码:0 检验和
地址数 地址项目长度 寿命
路由器地址1
地址参考1
路由器地址2
地址参考2
...

当发送一份ICMP差错报文时,报文始终包含IP的首部和产生ICMP差错报文的IP数据报的前8个字节
为什么?
大家还记得TCP报文的结构么?前面是IP首部,然后是TCP部分。而刚刚说到的前8个字节就包括了TCP的源端口和目的端口啦!这样一来,接受ICMP报文的一方就能根据IP首部和这8个字节来判断出到底是哪个应用程序出错了。(TCP/IP协议栈的分用)。怎么样,这个结构设计得很巧妙吧,可惜不是偶设计滴,:-)。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多