Skip to content

ICMP 协议

ICMP(Internal Control Message Protocol)互联网控制报文协议,TCP/IP 协议簇的一个子协议。对网络连接状态进行判断。

bash
# 发送一个数据包,方便Wireshark抓包
ping -c 1 www.sourcedev.cc

发送数据包

  • type == 0x8 ping
795	35.295594	192.168.3.11	42.192.78.57	ICMP	98	Echo (ping) request  id=0xfb81, seq=0/0, ttl=64 (reply in 796)
0000   82 11 8f 51 9e 64 a4 5e 60 f2 a0 49 08 00 45 00   ...Q.d.^`..I..E.
0010   00 54 73 50 00 00 40 01 ca ac c0 a8 03 0b 2a c0   .TsP..@.......*.
0020   4e 39 08 00 06 dd fb 81 00 00 60 ea 4c ee 00 0e   N9........`.L...
0030   5c b7 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15   \...............
0040   16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25   .......... !"#$%
0050   26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35   &'()*+,-./012345
0060   36 37                                             67
  • Destination: 82:11:8f:51:9e:64 (82:11:8f:51:9e:64)
  • Source: Apple_f2:a0:49 (a4:5e:60:f2:a0:49)
    • 本机 MAC 地址
  • Type: IPv4 (0x0800)

响应

  • type == 0 reply 应答
796	35.335367	42.192.78.57	192.168.3.11	ICMP	98	Echo (ping) reply    id=0xfb81, seq=0/0, ttl=56 (request in 795)
0000   a4 5e 60 f2 a0 49 82 11 8f 51 9e 64 08 00 45 74   .^`..I...Q.d..Et
0010   00 54 16 b8 00 00 38 01 2e d1 2a c0 4e 39 c0 a8   .T....8...*.N9..
0020   03 0b 00 00 0e dd fb 81 00 00 60 ea 4c ee 00 0e   ..........`.L...
0030   5c b7 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15   \...............
0040   16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25   .......... !"#$%
0050   26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35   &'()*+,-./012345
0060   36 37                                             67

总结

  • data 发送什么数据,应答什么数据,0x08 ~ 0x37,数据包固定长度 98 个字节
  • id 随机,序列号重置,从 0 开始

参考资料

  1. 互联网控制消息协议