赞
踩
ICMP(Internet Control Message Protocol)是一种网络层协议,用于在IP网络中传递控制信息和错误消息。下面是 ICMP 报文的一些关键特点和用途:
1. 错误报告: ICMP主要用于在网络中传递错误报告。例如,当一个主机试图向另一个主机发送数据包,但目标主机不可达时,目标主机可能会发送一个ICMP错误消息,通知源主机发生了错误。
2. 网络诊断: ICMP包含一些用于网络诊断的工具,如 ping 和 traceroute。通过 ICMP Echo Request 和 Echo Reply 消息,可以测试主机之间的可达性和往返时间。
3. 生存时间(Time to Live):ICMP在IPv4的头部中包括一个生存时间字段,用于防止数据包在网络中无休止地循环。当数据包经过一个路由器时,生存时间减少1,当生存时间减至0时,路由器会丢弃该数据包,并发送一个ICMP时间超时消息。
4. 分片通知:如果一个数据包太大无法在网络上传输,它可能会被分片。ICMP包含用于通知源主机某个数据包被分片的消息。
5. Echo请求和应答: ICMP Echo Request和Echo Reply消息通常用于执行 ping 测试,以确定主机是否在线并且有多远。
6. Redirect消息:当路由器检测到一个更佳的路由时,它可以发送一个ICMP Redirect消息,通知主机更新它的路由表。
ICMP是一个提供网络控制和诊断功能的协议,它与IP协议一起工作,用于支持网络的稳定性和可靠性。
使用Wireshark抓取icmp报文
1.打开命令行ping一个电脑能访问的IP地址(这里ping的是和电脑连同一wifi下的手机ip)
2.查看网卡的Wireshark中筛选ping百度时发送的icmp报文
3.在Wireshark过滤ICMP报文
可以看到有8条报文,电脑发出的4条报文和手机回复的4条报文,一共是4组报文。
帧头部分:
Frame Number: 帧编号,这是捕获的第525个帧。
Frame Length: 帧的总长度,包括头部、数据和尾部,是74字节。
Capture Length: 实际被捕获的帧长度,也是74字节。
Encapsulation type: 封装类型,这是以太网帧,对应编号为1。
时间戳信息:
Arrival Time: 帧到达的时间,是中国标准时间的时间戳。
Epoch Time: 帧到达的时间的Epoch时间戳。
时间差信息:
Time delta from previous captured frame: 与前一个捕获帧的时间差,是0.280865秒。
Time delta from previous displayed frame: 与前一个显示帧的时间差,是0秒。
Time since reference or first frame: 从参考帧或第一帧开始计算的时间,是16.25301秒。
协议信息:
Protocols in frame: 帧中包含的协议层次,按顺序是以太网(eth)、以太网类型(ethertype)、IP协议(ip)、ICMP协议(icmp)和数据(data)。
颜色规则信息:
Coloring Rule Name: 颜色规则的名称,这个帧被标记为ICMP。
Coloring Rule string: 颜色规则的字符串,表明这是一个 ICMP(Internet Control Message Protocol)协议的帧。
源地址 (Src): IntelCor 16:aa:49 (3c:9c:0f:16:aa:49) - 这是发送方(源)的物理地址(MAC地址)。
目标地址 (Dst): 4a:69:af:fb:69:de (4a:69:af:fb:69:de) - 这是接收方(目标)的物理地址(MAC地址)。
目标地址 (Destination): 4a:69:af:fb:69:de (4a:69:af:fb:69:de) - 与上述目标地址相同,表示目标的物理地址。
源地址 (Source): IntelCor_16:aa:49 (3c:9c:0f:16:aa:49) - 与上述源地址相同,表示源的物理地址。
类型 (Type): IPV4 (0x0800) - 表示以太网帧中封装的上层协议是IPv4。
帧中的LG(Locally administered address)和IG(Individual address)位用于指示MAC地址的特性。LG bit在这个帧中是“Locally administered address”(这不是工厂默认设置),而IG bit是“Individual address”(单播地址)。
版本 (Version): 4 - 表示这是IPv4协议的数据包。
首部长度 (Header Length): 20 bytes (5) - 表示IPv4首部的长度为20字节。
区分服务字段 (Differentiated Services Field): 0x00 - 区分服务字段用于指定数据包的优先级和服务类型。
DSCP (Differentiated Services Codepoint): Default (0) - 默认服务。
ECN (Explicit Congestion Notification): Not ECN-Capable Transport (0) - 未启用显式拥塞通知。
总长度 (Total Length): 60 - 整个IPv4数据包的长度,包括首部和数据。
标识 (Identification): 0x96f3 (38643) - 用于唯一标识数据包的字段。
标志 (Flags): 0x00 - 包含3个比特,分别是:
Reserved bit: Not set - 保留位,未设置。
Don't fragment (DF): Not set - 表示数据包可以进行分片。
More fragments (MF): Not set - 表示没有更多分片。
分片偏移 (Fragment Offset): 0 - 表示数据包在分片中的偏移量。
生存时间 (Time to Live): 64 - 表示数据包在网络中的最大传播次数,减少到0时将被丢弃。
协议 (Protocol): ICMP (1) - 表示在IPv4数据包中封装的上层协议是ICMP。
首部校验和 (Header Checksum): 0x0000 [validation disabled] - IPv4首部的校验和,用于检测首部的完整性。在这个例子中,校验和验证被禁用。
源地址 (Source Address): 192.168.87.14 - 发送方的IP地址。
目标地址 (Destination Address): 192.168.87.37 - 接收方的IP地址。
类型 (Type): 8 - 表示这是一个 Echo Request 消息,对应的回应报文如下所示。
代码 (Code): 0 - 表示 Echo Request 的标准代码。
ICMP协议主要通过 Type 和 Code 的组合,来标明报文的类型,报文类型如下:
校验和 (Checksum): 0x4bc1 [correct] - ICMP消息头的校验和,用于验证消息的完整性。在这个例子中,校验和是正确的。
标识符 (Identifier):
Big Endian (BE): 1 (0x0001) - 用于标识该 Echo Request 的标识符(Identification)。
Little Endian (LE): 256 (0x0100) - 标识符的小尾数表示。
序列号 (Sequence Number):
Big Endian (BE): 410 (0x019a) - 用于标识该 Echo Request 的序列号。
Little Endian (LE): 39425 (0x9a01) - 序列号的小尾数表示。
响应帧 (Response frame): 5261 - 表示与这个 Echo Request 相关的响应帧的编号。
数据 (Data):
数据长度 (Length): 32 - 数据部分的长度为32字节。
实际数据: 616263...6869 - 以十六进制表示的32字节的数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。