网际控制报文协议ICMP
ICMP协议允许主机或者路由器报告差错情况和提供异常信息,ICMP报文封装在IP数据报的数据部分,同时IP数据报的协议字段将会被设置为1,表示传输的ICMP协议的数据,
ICMP报文的种类
ICMP可以分为两类:
- ICMP差错报告报文
- ICMP询问报文
ICMP差错报告报文总共有五种:
- 终点不可到达:当主机或者路由器不能交付数据报时,就向源点发送终点不可到达报文
- 源点抑制:当主机或者路由器由于拥塞而丢弃报文时,就向源点发送这个报文
- 时间超出:当TTL耗尽时,发送此报文
- 参数问题:当主机或者路由器收到的的数据包的首部有的参数不正确时,发送此报文
- 改变路由:路由器把改变路由报文发送给主机,让主机知道下次应该将报文发送给其他的路由器
所有的ICMP差错报告报文中的数据字段都具有相同的格式,将出现差错的IP数据报的首部和IP数据报的数据部分的前8个字节(包括源端口、目的端口、发送序号),封装到ICMP的数据部分,
常用的ICMP询问报文有两种:
- 回送请求和回答
- 时间戳请求和回答
PING分组网间嗅探
PING是ICMP协议的一个重要应用,PING命令可以用来测试两个主机或者主机和路由器之间是否连通,PING使用了回送请求和回送回答报文,PING命令直接使用ICMP协议,不经过TCP和UDP,
还可以使用tracert命令来跟踪一个分组从源点到终点的路径,即分组经过了哪些路由器,