tcpdump分析ICMP协议

IP协议是一种无连接的,不可靠的数据包协议,它并不能保证数据一定被送达,那么我们要保证数据送到就需要通过其它模块来协助实现,这里就引入的是ICMP协议。

ICMP协议字段解释


ICMP协议
  • ICMP类型
    ICMP报文类型
  • 代码:不同的ICMP类型,可能还需要代码做进一步的区分,比如type=3(终点不可达),就区分网络不可达(0)主机不可达(1)协议不可达(2)端口不可达(3)

更多的类型和代码请参看:https://www.ibm.com/support/knowledgecenter/ja/SS42VS_7.2.7/com.ibm.qradar.doc/c_DefAppCfg_guide_ICMP_intro.html

tcpdump抓取二进制数据


[tenmao@localhost ~]$ sudo tcpdump -i ens33 icmp -xnt -vvvv
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
IP (tos 0x0, ttl 64, id 57149, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.58.100 > 14.215.177.39: ICMP echo request, id 18222, seq 1, length 64
    0x0000:  4500 0054 df3d 4000 4001 a060 c0a8 3a64
    0x0010:  0ed7 b127 0800 cbae 472e 0001 5d71 a35c
    0x0020:  0000 0000 1e81 0700 0000 0000 1011 1213
    0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
    0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
    0x0050:  3435 3637
IP (tos 0x0, ttl 128, id 125, offset 0, flags [none], proto ICMP (1), length 84)
    14.215.177.39 > 192.168.58.100: ICMP echo reply, id 18222, seq 1, length 64
    0x0000:  4500 0054 007d 0000 8001 7f21 0ed7 b127
    0x0010:  c0a8 3a64 0000 d3ae 472e 0001 5d71 a35c
    0x0020:  0000 0000 1e81 0700 0000 0000 1011 1213
    0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
    0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
    0x0050:  3435 3637

ICMP协议头部对照解析


IP (tos 0x0, ttl 64, id 57149, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.58.100 > 14.215.177.39: ICMP echo request, id 18222, seq 1, length 64
    0x0000:  4500 0054 df3d 4000 4001 a060 c0a8 3a64
    0x0010:  0ed7 b127 0800 cbae 472e 0001 5d71 a35c

前面20字节是IP协议头,之后就是ICMP协议头:是0800 cbae 472e 0001部分

字段 协议 内容 对应的tcpdump文字描述
0x04 ICMP消息类型 回送请求 ICMP echo request
0x00 ICMP代码
0xcbae 16位校验和
0x472e ICMP数据标志 ICMP的ID length 84
0x1f4c 16位的标识 数据报标识 id 18222
0x0001 ICMP序号 ICMP序号 seq 1

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。