- 实验目的(共 5 分)(描述本实验的学习目的及你对本实验的学习预期。)
通过wire shark抓包到的报文对ARP协议、ICMP协议、IP协议进行分析,使其对ARP报文结构、ICMP报文结构、IP报文结构有更深的理解。
- 实验环境(共5分)(请描述本实验教学活动所使用的实际环境。)
华为eNSP模拟软件
- 实验任务(共10分)(本实验要求的实验任务完成情况,未完成注明原因。)
(1)ARP 报文结构分析
在主机PC1 上 Ping 主机PC2,利用Wireshark对PC1的Ethernet 0/0/1接口进行数据抓包。筛选出 PC1 的 ARP 报文,在 Wireshark 的过滤器中输入“arp”,查看PC1 收发的 ARP 报文,选择任意一条 ARP 请求报文和响应报文进行详细分析,对比分析ARP 请求报文和响应报文结构,比较ARP 请求报文与响应报文的 5 个关键差别。
(2)IMCP报文结构分析
进入PC3pingPC4,利用Wireshark对PC3的Ethernet 0/0/1接口进行数据抓包,将截获到的ICMP报文信息与ICMP报文格式进行对比分析。
(3)IP报文结构分析
在ICMP协议分析的基础上进行IP协议的分析,利用Wireshark对PC3的Ethernet 0/0/1接口进行数据抓包,将截获到的IP报文信息与IP报文格式进行对比分析。PC3再次pingPC4,指定传输的数据为1500字节,使用数据抓包的报文信息进行IP分片分析。
- 实验过程:
ARP报文结构:
步骤 1:清空主机 pc1 的ARP 表 在 pc1 终端上,通过命令清空 ARP 表。
步骤 2:使用Wireshark 记录主机 pc1 的所有通信报文 右击 pc1与链路,选择“开始抓包”进行抓包,结果如图 所示。
步骤 3:在主机PC1 上 Ping 主机PC2 在PC 终端上,执行 Ping 命令。
eg:ping 192.168.1.2
步骤 4:在Wireshark 上筛选出 PC1 的 ARP 报文 在 Wireshark 的过滤器中输入“arp”,查看PC1 收发的 ARP 报文。
步骤 05:分析PC1 发出的ARP 请求报文结构 在Wireshark 中选择任意一条 ARP 请求报文进行详细分析,如图所示,将分析结果填写到实验报告表1-1。
步骤 06:分析PC1 收到的ARP 响应报文结构 在 Wireshar 中选择任意一条响应报文进行详细分析,如图所示,分析结果填写到实验报告表 1-2。
步骤 07:对比分析ARP 请求报文和响应报文结构 比较ARP 请求报文与响应报文的 5 个关键差别,并填写表 1-3。
ICMP报文结构:
step1:进入PC3然后执行ping指令pingPC4,利用Wireshark工具对PC3的Ethernet 0/0/1接口进行数据抓包
step2:将截获到的ICMP报文信息与ICMP报文格式进行对比分析
step3:分析 ICMP 报文内容,填写实验报告表 2-1。
step4:PC3 ping PC4 进行连通性测试,并将测试结果填入实验报告表 2-2 中。
IP报文结构:
step1:在ICMP协议分析的基础上进行IP协议的分析,利用Wireshark工具对PC3的Ethernet 0/0/1接口进行数据抓包。
step2:将截获到的IP报文信息与IP报文格式进行对比分析,完成IP报文表格。
step3:进入PC3然后执行ping指令pingPC4,指定传输的数据为1500字节,进行IP分片分析。
eg:ping 192.168.1.4 -l 1500
step4:利用Wireshark工具对PC3Ethernet 0/0/1接口进行数据抓包
由图可知,1500字节的数据被分成了1480字节和28字节。(UDP首部8字节,所以实际需要传输1500+8字节)。因此当MTU为1500字节的情况下,传输数据超过1500-20-8=1472字节时需要进行IP分片。
- 实验结果与分析(共50分)(按照实验步骤,写出实验结果并分析。)
任务一:完成ARP报文结构分析
- ARP请求报文分析
序号 | 字段名称 | 字段长度 | 起始位置 | 字段值 | 字段表示的信息 |
1 | Hardware type | 2 | 第 15 位 | 00 01 | Ethernet |
2 | Protocol type | 2 | 第 17 位 | 08 00 | IP |
3 | Hardware size | 1 | 第 19 位 | 06 | 6 |
4 | Protocol size | 1 | 第 20 位 | 04 | 4 |
5 | Opcode | 2 | 第 21 位 | 00 01 | request |
6 | Sender MAC address | 6 | 第 23 位 | 54 89 98 db 0b 6a | HuaweiTe_db:0b:6a |
7 | Sender IP address | 4 | 第 29 位 | c0 a8 01 01 | 192.168.1.1 |
8 | Target MAC address | 6 | 第 33 位 | ff ff ff ff ff ff | Broadcast |
9 | Target IP address | 4 | 第 39 位 | c0 a8 01 02 | 192.168.1.2 |
10 | 数据包的详细内容 | ||||
序号 | 字段名称 | 字段长度 | 起始位置 | 字段值 | 字段表示的信息 |
1 | Hardware type | 2 | 第 15 位 | 00 01 | Ethernet |
2 | Protocol type | 2 | 第 17 位 | 08 00 | IP |
3 | Hardware size | 1 | 第 19 位 | 06 | 6 |
4 | Protocol size | 1 | 第 20 位 | 04 | 4 |
5 | Opcode | 2 | 第 21 位 | 00 02 | reply |
6 | Sender MAC address | 6 | 第 23 位 | 54 89 98 f9 6f 43 | HuaweiTe_f9:6f:43 |
7 | Sender IP address | 4 | 第 29 位 | c0 a8 01 02 | 192.168.1.2 |
8 | Target MAC address | 6 | 第 33 位 | 54 89 98 db 0b 6a | HuaweiTe_db:0b:6a |
9 | Target IP address | 4 | 第 39 位 | c0 a8 01 01 | 192.168.1.1 |
10 | 数据包的详细内容 | ||||
![]() |
序号 | 字段名称 | 请求报文 | 应答报文 | ||
字段值 | 字段表示信息 | 字段值 | 字段表示的信息 | ||
1 | Opcode | 00 01 | request | 00 02 | reply |
2 | Sender MAC address | 54 89 98 db 0b 6a | HuaweiTe_db:0b:6a | 54 89 98 f9 6f 43 | HuaweiTe_f9:6f:43 |
3 | Sender IP address | c0 a8 01 01 | 192.168.1.1 | c0 a8 01 02 | 192.168.1.2 |
4 | Target MAC address | ff ff ff ff ff ff | Broadcast | 54 89 98 db 0b 6a | HuaweiTe_db:0b:6a |
5 | Target IP address | c0 a8 01 02 | 192.168.1.2 | c0 a8 01 01 | 192.168.1.1 |
6 | 详细对比描述 | ||||
请求报文字段Opcode为00 01,表示这是一个ARP请求报文。应答报文为00 02,表示为这是一个ARP应答报文。请求报文的主机的MAC地址是HuaweiTe_db:0b:6a,应答报文的主机的MAC地址是HuaweiTe_f9:6f:43。发送请求报文的主机的IP地址是192.168.1.1,发送应答报文的主机的IP地址是192.168.1.2。请求报文的目标主机的MAC地址为广播地址。应答报文的目标主机的MAC地址是HuaweiTe_db:0b:6a。请求报文的目标主机的IP地址是192.168.1.2,应答报文的目标主机的IP地址是192.168.1.1。 |
任务二:分析 ICMP 报文结构
分析 ICMP 报文内容,填写表 2-1。
表 2-1 ICMP 报文结构分析
字段 | 大小(以字节为单位) | 含义 |
Type | 1 | ICMP消息的类型 |
Code | 1 | 代码,用于进一步细分类型 |
Checksum | 2 | 校验和,用于检验报文完整性 |
Identifier | 2 | 标识符,用于标识发送方 |
Sequence | 2 | 序列号,用于标识回显消息的顺序 |
使用主机PC3 对 PC4进行连通性测试,并将测试结果填入表 2-2 中.
报文 分析点 | 源 主机 | 目的 主机 | type | code | Identifier(BE) Identifier(LE) | Sequence(BE) Sequence(LE) | 通信结果 |
1 | PC3 | PC4 | 08 | 00 | 4f70 | 00 01 | 可以通信 |
PC4 | PC3 | 08 | 00 | 2072 | 00 01 |
任务二:分析 IP 报文结构
以你在wireshark中截获的一个报文为例,根据下图3-1的IP报文格式,填写表3-1对应的IP报文段中的数据。
图3-1 IP报文格式
4 | 20 bytes | 0x00 | 1500 | |||
0x705b | 0x01 | 0 | ||||
128 | ICMP | 0x216e | ||||
192.168.1.4 | ||||||
192.168.1.3 | ||||||
无 | 无 | |||||
1480 bytes |
表 IP报文值填写
五、实验总结与扩展(共30分)
任务一:ARP协议分析
(1)ARP 的作用是什么?什么时候需要用到ARP 地址解析?
作用:解决在本地网络中,根据目标设备的IP地址查找其对应的MAC地址的问题。具体而言,当一台设备要与另一台设备进行通信时,它首先会检查目标设备的IP地址是否在同一子网内。如果在同一子网内,就会使用ARP来获取目标设备的MAC地址,以便将数据帧正确发送到目标设备。如果目标设备的IP地址不在同一子网内,设备就会将数据帧发送到网关,由网关进行转发。
情况:本地通信。当两台设备在同一子网内进行通信时,发送方需要知道目标设备的MAC地址,就需要使用ARP解析;ARP缓存失效。如果发送设备的ARP缓存中没有目标设备的MAC地址,或者缓存中的信息已经过期,发送设备会发起新的ARP请求。
(2)不同网络中的ARP 地址解析之间有关联吗?
没有。在不同网络之间,路由器充当网关,负责转发数据包。当一台设备需要与不在同一子网内的设备通信时,它会将数据包发送到网关,由网关负责将数据包从源网络传递到目标网络。在这种情况下,ARP协议并不直接参与目标设备的地址解析,而是依赖路由器的工作。
(3)ARP应用在以太网内,数据链路层是PPP协议的需要地址解析吗?请说明理由。
不需要。在以太网中,ARP是用于将网络层的IP地址映射到数据链路层的MAC地址的,以便在同一局域网内进行通信。相比之下,PPP是一种点对点连接协议,通常用于直接连接两个网络节点,而不是在一个共享的局域网中。在PPP协议中,数据链路层的地址通常是直接由物理层协议(如串口连接)提供的,而不需要ARP来解析。每个PPP连接的两端在建立连接时就会互相确认对方的物理地址。
任务二:ICMP协议分析
(1)简述一下为什么需要 ICMP 协议?
ICMP为IP网络提供了一些重要的控制消息和错误报告:
错误报告: ICMP允许网络设备和主机生成错误报告,以便及时通知其他设备发生了问题。例如,ICMP消息可以指示目标主机不可达、超时、重定向等错误情况。
网络状况反馈: ICMP包括用于检测网络状况和性能的工具,如ping。Ping工具通过发送ICMP Echo请求并等待响应,可以测量两个设备之间的往返时间(Round-Trip Time,RTT),从而评估网络延迟和可达性。
TTL机制: ICMP的TTL字段防止数据包在网络中无限循环。每个路由器或设备在接收到数据包时会减小TTL值,当TTL值降为零时,设备会发送ICMP时间超时消息,并丢弃数据包。这有助于防止网络中的数据包无限制地循环。
路径MTU发现: ICMP协议可以帮助发现网络路径上的最小传输单元(MTU),以便进行合适的分段和重组,以确保大的数据包能够在网络中正确传输。
重定向消息: ICMP允许路由器向主机发送重定向消息,提示主机发送其流量到另一路由器,从而优化网络路径。
(2)为什么要限制失效的 ICMP 差错报文再产生一个 ICMP 报文?
限制失效的 ICMP 差错报文再产生一个 ICMP 报文是为了防止网络中的产生 ICMP 差错报文的设备被用于进行网络攻击或滥用。旨在防范资源耗尽、网络干扰等一些潜在的问题。这通常涉及对生成 ICMP 差错报文的设备进行限制,确保其只在合适的条件下产生响应,并避免被滥用用于网络攻击,有助于提高网络的安全性和可靠性。
任务三:IP协议分析
(1)在IP 包头部,上层协议区域的值是多少?
上层协议区域的值是ICMP(1)。
(2)IP 头部有多少字节?IP 数据包的有效载荷是多少字节?解释你是怎样确定有效载荷的数量的?
头部有20字节,有效载荷1480字节。有效载荷的长度可以通过总长度字段减去IP头部的长度来确定,在捕捉到的包当中Total Length=1500,Header Length=20,所以有效载荷的长度=1500-20=1480字节
(3)这个IP 数据包被分割了吗?解释你是怎样确定这个数据包是否被分割?
被分割了。标志字段中间的一位是 DF (Don't Fragment) 。只有当 DF=0 时才允许分片。标志字段的最低位是 MF (More Fragment)。MF=1 表示后面“还有分片”。由图可知,这个IP数据包的DF=0,MF=1,表示还有分片,说明这个数据包被分割了。
(4)往同一IP 的数据包哪些字段在改变,而且必须改变?为什么?哪些字段是保持不变的,而且必须保持不变?
必须改变的:identification(标识)、header chechsum(头部检验和)。
标识是源主机赋予IP数据报的标识符,头部检验和用于保证IP数据报报头的完整性。
必须保持不变的:version(版本)、header length(头部长度)、differentiated services field(区分服务)、flags(标记)、 fragment offset(片偏移)、 protocol(协议)、 destination(目的地址)
(5)描述一下在IP 数据包的Identification 字段的值是什么样的?
在IP数据包的Identification字段为0x705b,所有的分片都会有相同的Identification字段值,以便接收端能够将它们重新组装成原始数据包。