一、 起由
由于网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,所以为了更有效地转发IP数据报和提高交付的机会,在网络层使用了Internet控制报文协议,以便报告数据包在传输过程中的错误。需要注意的是ICMP协议不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
二、 ICMP报文格式
1、ICMP使用基本的IP头发送,包头域格式如下:
2、ICMP报文格式
ICMP报文的前4个字节是统一的格式,共有三个字段:类型、代码和校验和。接着的4个字节的内容与ICMP的类型有关。最后面的是数据字段,其长度取决于ICMP的类型。
三、 ICMP报文分类
ICMP报文分类如下:
以下分别描述各种ICMP报文格式及其用途:
㈠目的地不可达报文
① 报文格式
IP域
目的地址为发送原始数据报的网络地址
ICMP域
类型:3
代码:0=网络不可达
1=主机不可达
2=协议不可达
3=端口不可达
4=需要分段和DF设置
5=源路由失败
校验和:16位数据(从ICMP类型开始)的反码和再取反而得到。为计算校验码,校验码域应该为0,这些0在以后会被校验码取代。
Internet头部+原数据包的64位:这一字段由Internet头部加上64位源数据而得。这一字段用于主机匹配信息到相应的进程。如果高层协议使用端口号,其端口号应该包含在64位的源数据当中。
② 说明
对于网关