今天我们来介绍网络层中的ICMP协议
ICMP报文格式
图一:
从图片上我们可以分析出,前三位的字段都是固定的,8位类型字段,8位代码字段,16位校验和字段。其他字段因ICMP报文类型不同而不同。8位类型和8位代码一起决定了报文的类型。
ICMP查询格式
ICMP查询报文共有4种
- 回送请求和回答:由主机和路由器向一个特定的主机和路由器发送询问,收到请求的主机必须给源主机发送回送应答报文,用来测试目标主机是否可达以及了解其他状态
- 时间戳请求和回答:它允许系统向另一个系统查询当前的时间,该ICMP的好处是他提供了毫秒级的分辨率。
- 掩码地址请求和回答:主机使用ICMP地址掩码地址请求报文可以向子网掩码服务器得到某个接口的地址掩码。系统广播他的ICMP请求报文。
- 路由器询问和通过报文:主机使用ICMP路由器询问连接在本网络上的路由器是否正常工作。
ICMP差错报文
ICMP差错报文共有5种:
- 终点不可达:网络不可达,主机不可达,协议不可达,端口不可达,源路由失败
- 源站抑制:当路由器或主机因为拥塞丢弃数据包时,就向源站发送源站抑制报文,使源站知道应当将发送数据报的速度放慢。
- 时间超过:路由器收到生存时间为0的数据报时,除丢弃该数据报外还要向源站发送时间超时报文
- 参数问题差:当路由器的目的主机收到的数据报首部中的字段不正确的时候,丢弃该数据报,同时向源地址发送ICMP参数问题报文。
- 重定向报文:路由器将改变路由报文,将发送给主机,让主机知道,下一次的数据报应该发送给另一个路由器。