通俗易懂说网络协议-ICMP
1. 定义
Internet Control Message Protocol
Internet控制报文协议
2. 背景
因为IP协议是一种无连接的不可靠的数据交付
虽然IP协议完成了数据在各主机间的递交,但是IP协议不提供任务错误校验和恢复机制。因此,设计了ICMP协议弥补上诉缺陷。
3. 作用
用于在IP主机、路由器之间传递控制消息、差错报文和注意信息。
意义: 这些控制消息虽然不传输用户数据,但是对用户数据的传递起着重要的作用。
4. 分类
ICMP消息分为:查询报文和差错报文
查询报文:回显请求、时间戳请求、地址掩码请求与应答、信息请求保温
差错报文:目的不可达,重定向、超时、参数错误、源冷却报文
5. 主要消息介绍
5.1 目标不可达消息
当路由器收到一个无法传递下去的ip报文时,会发送目的不可达给源主机。
5.2 重定向消息
当路由器收到ip数据报发现,数据报中的目的地址在路由表中没有,就会发送重定向报文给主机。
提醒它要发送的地址不存在,去其他地方查找。
5.3 超时消息
TTL(Time To Live 生存时间值)减为0
详细解释: 网路传输数据报的过程中,如果ip数据报的TTL逐渐减为0,则丢弃此数据报。
应用: linux下的traceroute命令/windows下的tracert
作用:查看ip数据报文从一台主机到达另外一台主机所经过的路由
原理:利用ip包的生存时间TTL从1开始递增的发送UDP数据报,产生一个端口不可达报文,
其强制接收ICMP超时消息的一种方法。
5.4 请求回显消息
判断数据包是否发送成功
应用: ping消息
测试另外一台主机是否可达,往返时间测试
5.5 端口不可达消息
- 目的端口与正在使用的进程不符合
- 路由器收到一个需要分片的数据包,但是ip首部设置了不分片标志。
5.6 源冷却消息
一个系统接收数据包的速度比其处理数据报的速度快。
详细解释: 路由器在处理报文时,会有一个缓存队列。
如果超过最大缓存队列,将无法处理,从而丢弃此报文,并向源主机发送一个源冷却报文。
6. 参考:
[1]: https://blog.csdn.net/u010961173/article/details/79521849
[2]: https://www.cnblogs.com/iiiiher/p/8513748.html