ICMP协议
ICMP (InternetControl Message Protocol)协议是TCP/IP协议簇的核心协议之一,用来在网络设备之间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
IP数据包格式是这样的:
其中ICMP数据包的部分是这样的:
(1)类型:用一个8位类型字段表示ICMP数据包的类型。
(2)代码:用来表示指定类型中的一个功能,如果一个类型只有一种功能,那么这个部分是0。
(3)校验和:数据包中ICMP上的一个16位校验和。
ICMP报文的前四个字节都是一样的。
ICMP报文的种类有两种:1.差错报文 2.询问报文。
1.差错报文
ICMP差错报文共有5种。
2.询问报文
ICMP询问报文共有2种。
ICMP最常见的应用就是ping。
ping一个地址就是发送一个回显的请求。
ping命令还可以铜价添加-s选项来显示时间戳。
除了ping之外的典型应用是Tracert。
Tracert基于报文中的TTL值(生存时间)来逐跳跟踪报文的转发路径,TTL还可以用来防止环路。
有这样一个拓扑图:
现在我在路由器R2上ping路由器R1并在R2的Eth0/0/0上开始抓包。
在抓包的内容中可以看到ICMP中的类型、代码和校验和。