ICMP在IP系统间传递差错和管理报文,是任何IP实现必须和要求的组成部分。可以把ICMP分成两类:差错和查询。查询报文
是用一对请求和回答定义的。差错报文通常包含了引起错误的IP包的第一个分片的IP首部(和选项),加上该分片数据部分
的前8个字节。
下图显示了所有目前定义的ICMP报文。双线上面的是请求和回答报文,双线下面的是差错报文。
PRC_栏显示了Net/3处理的与协议无关的差错码和ICMP报文之间的映射。对请求和回答,这一列是空的。因为在这种情况
下不会产生差错。如果对一个ICMP差错,这一行为空,说明Net/3不识别该码,并自动丢弃该差错报文。
1.icmp结构
Net/3通过下图中的icmp结构访问某个ICMP报文。
icmp_type标识特定报文,icmp_code进一步制定报文。icmp_cksum的算法与IP首部检验和相同。
联合icmp_hun(首部联合)和icmp_dun(数据联合)按照icmp_type和icmp_code访问多种icmp报文。每个icmp报文都使用
icmphun;只