类型的值 | ICMP报文的类型 | 针对何种问题 |
---|
3 | 终点不可达 | 无法交付 |
4 | 源点抑制(Source Quench) | 拥塞丢数据 |
11 | 超时 | TTL=0 |
12 | 参数问题 | 首部字段有问题 |
5 | 改变路由(Redirect) | 值得更好的路由 |
1.终点不可达(无法交付):当路由器或主机不能交付数据报时就像源点发送终点不可达报文。具体可以根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等
2.源点抑制:当路由器或主机由于拥塞而丢弃数据包时,就像源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢
3.超时:当路由器收到一个IP数据报,若目的地址不是自己,会将TTL减1再转发出去,当TTL减为0时(收到TTL为1的IP数据报),除了丢弃改数据报外,还要向源点发送超时差错报告报文。另外当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,会丢弃已收到的数据报报片,也会向源点发送超时差错报告报文。
TTL(Time To Live)是IPv4报头中的一个8bit字段:生存时间,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,指ICMP包的转发次数(跳数)
比如发送端A规定TTL为4,每转发一次会减少1,当一个路由器B接收到TTL为1时,但目的地址并不是自己,再次转发TTL会减至0,也就意味着超时,所以就会直接丢弃掉此数据报,并不会转发,并向A发送超时差错报告报文
4.参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文
5.改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应该将数据报发送给另外的路由器(可通过更好的路由)
ICMP差错报告报文,把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段,再加上相应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。