网络协议之ICMP协议(ping的那些事儿)
概述
ICMP(Internet Control Management Protocol)因特网控制管理协议,是TCP/IP协议的一个子簇。用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
通常,使用ping命令检查网络通不通,使用tracert命令跟踪路由,他们都依赖于ICMP协议。
ping的过程
主机A ping主机B,使用的都是IP地址,那么就需要依赖于ARP协议,获取目的IP的目的MAC地址,才能创建ICMP报文,进行ICMP交互。
如下是一个主机之间ping的过程:
C:\Users\Justin>ping 192.168.1.2 正在 Ping 192.168.1.2 具有 32 字节的数据: 来自 192.168.1.2 的回复: 字节=32 时间=202ms TTL=64 来自 192.168.1.2 的回复: 字节=32 时间=103ms TTL=64 来自 192.168.1.2 的回复: 字节=32 时间=102ms TTL=64 来自 192.168.1.2 的回复: 字节=32 时间=103ms TTL=64 192.168.1.2 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 102ms,最长 = 202ms,平均 = 127ms
协议报文交互过程如下:
ICMP Request报文
ICMP Reply报文