3.1. ICMP协议介绍
- ICMP(Internet Control Message Protocol) Internet 控制报文协议。它是 TCP/IP 协议簇的一个子协议,用于在 IP 主机、 路由器之间传递控制消息。
- ping和tracert(显示到达目的主机的路径)都利用ICMP协议来实现网络功能。ICMP就是一个“错误侦测与回报机制”,目的是让我们能够检测网络的连接状况,确保网络连接的准确性。当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件
- 主要功能有:
- 侦测远端主机是否存在
- 建立与维护路由资料
- 重导资料传送路径(ICMP重定向)
- 资料流量控制
3.2. IP协议介绍
IP协议是TCP/IP协议簇中的核心协议,也是TCP/IP协议的载体,IP协议规定了数据传输时的基本单元和格式
所有的TCP UDP ICMP数据都以IP数据报格式传输,IP数据报的格式如图所示
第二行的标识|标志|片偏移都是和数据包分组发送相关的
第三行的协议:表示数据报所携带上层数据使用的协议类型 ICMP为1 TCP为6 UDP为17;首部校验和:校验IP数据报头部是都被破坏,篡改和修改等
3.3. ICMP协议
3.4. 协议介绍
IP头部就在ICMP报文的前面(ICMP的首部在IP层的数据段),一个ICMP报文包括IP头部,ICMP头部和ICMP报文,IP头部的Protocol为1说明这是一个ICMP报文,ICMP头部的类型(Type)用于说明ICMP报文的作用与格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有的数据都在ICMP头部的后面
3.5. 一帧ICMP报文
-
ICMP首部一共8个字节,同IP首部一样,也是一行以32位(4个字节)为单位
-
类型和代码表示的含义
类型/代码 含义 类型 0,代码 0 表示回显应答(ping 应答) 类型 8,代码 0 表示回显请求(ping 请求) 类型 11,代码 0 超时 类型 3,代码 0 网络不可达 类型 3,代码 1 主机不可达 类型 5,代码 0 重定向 -
标识符(Identifier):占用了 16 bit 位,对于每一个发送的数据报进行标识。
-
序列号(Sequence number):占用了16bit位,对于发送的每一个数据报文进行编号,比如:发送的第一个数据报序列号为 1,第二个序列号为2。