专业的网站建设公,个人电脑做网站,北京自助建站软件,热门手机网站一、ICMP简介
ICMP#xff08;Internet Control Message Protocol#xff09;是一种网络层协议#xff0c;用于在IP网络中传递控制信息和错误消息。下面是 ICMP 报文的一些关键特点和用途#xff1a; 1. 错误报告#xff1a; ICMP主要用于在网络中传递错误报告。例如Internet Control Message Protocol是一种网络层协议用于在IP网络中传递控制信息和错误消息。下面是 ICMP 报文的一些关键特点和用途 1. 错误报告 ICMP主要用于在网络中传递错误报告。例如当一个主机试图向另一个主机发送数据包但目标主机不可达时目标主机可能会发送一个ICMP错误消息通知源主机发生了错误。 2. 网络诊断 ICMP包含一些用于网络诊断的工具如 ping 和 traceroute。通过 ICMP Echo Request 和 Echo Reply 消息可以测试主机之间的可达性和往返时间。 3. 生存时间Time to LiveICMP在IPv4的头部中包括一个生存时间字段用于防止数据包在网络中无休止地循环。当数据包经过一个路由器时生存时间减少1当生存时间减至0时路由器会丢弃该数据包并发送一个ICMP时间超时消息。 4. 分片通知如果一个数据包太大无法在网络上传输它可能会被分片。ICMP包含用于通知源主机某个数据包被分片的消息。 5. Echo请求和应答 ICMP Echo Request和Echo Reply消息通常用于执行 ping 测试以确定主机是否在线并且有多远。 6. Redirect消息当路由器检测到一个更佳的路由时它可以发送一个ICMP Redirect消息通知主机更新它的路由表。
ICMP是一个提供网络控制和诊断功能的协议它与IP协议一起工作用于支持网络的稳定性和可靠性。
二、捕获icmp报文
使用Wireshark抓取icmp报文
1.打开命令行ping一个电脑能访问的IP地址这里ping的是和电脑连同一wifi下的手机ip 2.查看网卡的Wireshark中筛选ping百度时发送的icmp报文 3.在Wireshark过滤ICMP报文 可以看到有8条报文电脑发出的4条报文和手机回复的4条报文一共是4组报文。
三、分析ICMP报文结构
1.Frame 帧头部分 Frame Number: 帧编号这是捕获的第525个帧。 Frame Length: 帧的总长度包括头部、数据和尾部是74字节。 Capture Length: 实际被捕获的帧长度也是74字节。 Encapsulation type: 封装类型这是以太网帧对应编号为1。 常见的 Encapsulation type
时间戳信息 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: 颜色规则的字符串表明这是一个 ICMPInternet Control Message Protocol协议的帧。
2.Ethernet II 源地址 (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。
帧中的LGLocally administered address和IGIndividual address位用于指示MAC地址的特性。LG bit在这个帧中是“Locally administered address”这不是工厂默认设置而IG bit是“Individual address”单播地址。
3.Internet Protocol Version 版本 (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 - 保留位未设置。 Dont 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地址。
4.Internet Control Message Protocol (ICMP 类型 (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字节的数据。