TCP/IP协议七:通俗易懂说网络协议-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 端口不可达消息

  1. 目的端口与正在使用的进程不符合
  2. 路由器收到一个需要分片的数据包,但是ip首部设置了不分片标志。

5.6 源冷却消息

一个系统接收数据包的速度比其处理数据报的速度快。

详细解释: 路由器在处理报文时,会有一个缓存队列。
如果超过最大缓存队列,将无法处理,从而丢弃此报文,并向源主机发送一个源冷却报文。

6. ICMP 报文结构

ICMP 报文一般为 8 个字节,包括类型、代码、校验和扩展内容字段。ICMP 报文基本结构如图所示。

在这里插入图片描述

其中,类型表示 ICMP 的消息类型,代码表示对类型的进一步说明,校验和表示对整个报文的报文信息的校验。

在 ICMP 报文中,如果类型和代码不同,ICMP 数据包报告的消息含义也会不同。常见的类型和代码的 ICMP 含义如表所示。

类型 代码	含义
0	0	回显应答(ping 应答)
3	0	网络不可达
3	1	主机不可达
3	2	协议不可达
3	3	端口不可达
3	4	需要进行分片,但设置不分片位
3	5	源站选路失败
3	6	目的网络未知
3	7	目的主机未知
3	9	目的网络被强制禁止
3	10	目的主机被强制禁止
3	11	由于服务类型 TOS,网络不可达
3	12	由于服务类型 TOS,主机不可达
3	13	由于过滤,通信被强制禁止
3	14	主机越权
3	15	优先中止失效
4	0	源端被关闭(基本流控制)
5	0	对网络重定向
5	1	对主机重定向
5	2	对服务类型和网络重定向
5	3	对服务类型和主机重定向
8	0	回显请求(ping 请求)
9	0	路由器通告
10	0	路由器请求
11	0	传输期间生存时间为 0
11	1	在数据报组装期间生存时间为 0
12	0	坏的 IP 首部
12	1	缺少必需的选项
13	0	时间戳请求
14	0	时间戳应答
17	0	地址掩码请求
18	0	地址掩码应答

http://c.biancheng.net/view/6399.html

7. 参考:

https://blog.csdn.net/u010961173/article/details/79521849
https://www.cnblogs.com/iiiiher/p/8513748.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值