[计算机网络][Wireshark] Wireshark分析ICMP协议

ICMP(Internet control message protocol)协议是互联网控制报文协议,这里的控制是指监控网络的状态,比如主机是否可达,路由是否可达,端口是否可达等,以便于上层做一些差错处理。它是处于IP层和TCP层的协议,一般被认为是IP层的协议。
ICMP报文是封装在IP包里面的,因为传输的时候需要源IP地址和目标IP地址,可以抓个包证明一下。

1.wireshark抓包验证

我们常用的ping是基于ICMP协议的,因此我们ping某个网站然后抓包可以看到ICMP报文的细节,下图是用wireshark抓到的包:
[计算机网络][Wireshark] Wireshark分析ICMP协议_第1张图片
我们分析第一个ICMP包,可以看到这个包的细节,这里有四条内容:

  • 第一条是物理层的帧,包括多少字节,在哪个网卡被捕获到的
  • 第二条是Ethernet II,意思是以太网第二层,也就是MAC层,包含源mac地址(src)和目的mac地址(dst)
  • 第三条是IP协议,包含着源IP地址和目标IP地址
  • 第四条是ICMP协议

因此可以证明ICMP需要封装IP头的。ICMP报文携带的信息比较少,因为是用来检测路通不通的,所以也没有必要携带太多东西。

2.ping的报文组成

打开上述的第四条内容,我们可以看到它的内容:
[计算机网络][Wireshark] Wireshark分析ICMP协议_第2张图片

包括以下几个部分:

  1. Type,类型。这里8代表它是主动请求的类型
  2. Code,代码,和Type一起表示一种网络状态,这里的0和Type等于0表示这是一个Ping请求,此外还有很多类型(资料来源百度百科):
    [计算机网络][Wireshark] Wireshark分析ICMP协议_第3张图片
    这些打叉的都是差错报文的类型
  3. Checksum,校验和
  4. Identifier,标识符
  5. Sequence Number,序号,这里是0,说明它是发出去侦查路况的第一个包
  6. Data ,数据,观察了好多报文,一直都是48比特,但是暂时不清楚是啥,等我知道了再回来补充

你可能感兴趣的:(实践出真理,#,计算机网路,学习笔记,网络协议,网络,wireshark,icmp,ping)