西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)
本实验旨在通过 traceroute、Wireshark 和 besttrace 等工具,深入理解 IP 协议、ARP 协议以及以太网帧的结构与工作原理。实验分为四个主要部分:1)通过 traceroute 分析 IP 数据报的字段结构;2)利用 Wireshark 分析 ICMP 协议的分片操作;3)捕获以太网帧,研究 MTU 的最小值和最大值;4)通过 ARP 协议理解 IP 地址与物理地址的映射关系。实验过程中,使用了 Wireshark、besttrace 和 ping 命令进行数据包捕获和分析,观察了不同场景下的 ARP 询问与应答过程。通过本实验,能够清晰掌握 IP 协议的核心逻辑,理解 ARP 和以太网帧的详细工作流程。
一、实验目的
通过研究通过跟踪traceroute程序的数据包捕获,深入分析IP数据报中的字段结构和工作原理,理解IP协议。利用ARP命令和Ethereal工具,对以太网帧进行捕获和分析,从而掌握ARP协议的工作原理以及以太网帧的格式结构。
二、实验环境
通过互联网连接的计算机网络系统;基于Windows的操作系统;包括Wireshark和besttrace等软件。
三、实验内容
1、利用besttrace理解traceroute工作原理
通过Wireshark这一强大的工具对tracetoute的工作机制进行深入研究,同时,深入研究ICMP协议的运行机制及其在数据分片过程中的作用,同时对IP分片操作的实现过程进行详细探讨。
3、以太网帧获取与帧格式熟悉
4、ARP协议相关操作与理解
四、实验步骤
在实验开始之前,首先对IP的报文格式进行熟悉


| 服务 | 头部长度 | 服务类型 | 总长 | ||||
|---|---|---|---|---|---|---|---|
| 标识 | DF | MF | 分段偏移 | ||||
| 生存期 | 协议 | 头部校验和 | |||||
| 源IP地址 | |||||||
| 目的IP地址 | |||||||
| 选项 | |||||||
4.1执行traceroute程序并捕获数据包
参考教材第1.4.3节(共27页)的内容,回顾traceroute的工作原理和实现机制:它首先发送一批IP数据包,这些数据包的IP头部TTL字段被设置为1;随后,发送了一系列TTL值为2的数据包,这些数据包的目的主机与前一批相同;接着,发送了一系列TTL值为3的数据包,目标主机与前两次相同;以此类推。当路由器接收到一个数据包时,它会将该数据包的TTL值减1。当TTL值降为0时,路由器会向源主机发送一个ICMP类型为11的超时消息。通过源主机和目的主机的路由器返回的ICMP超时消息,源主机能够通过traceroute命令了解这两台主机之间的路由器的IP地址。
本实验通过向ICMP报文中注入测试数据,以探究IP协议的工作原理(由于ICMP报文会将测试数据封装到IP层);在发送ICMP报文以进行网络测试时,常用的工具包括ping和traceroute;此外,本实验还引入了besttrace工具,通过该工具可以更直观地展示路由跟踪的过程)。
通过在命令行窗口执行ping命令测试清华大学的官网,可以确定其是否可达,具体命令为ping $www.tsinghua.edu.cn,同时也可以查询该网站的可达性。

166.111.4.100
本机ping清华大学的往返延时大约是多少?
50ms
TTL为多少?
45
本机的IP地址是多少?

192.168.29.221
在Wireshark窗口中,设置滤波器参数为"icmp",开始数据包捕获。随后,配置路由跟踪功能,将目标地址设为www.tsinghua.edu.cn,执行路由路径的实时跟踪分析,最终呈现如下的软件界面:

取消对Wireshark的分组捕获操作,查看捕获到的分组数据,并结合besttrace的相关内容进行分析和回答。
3-1)在IP数据包头部,在上层协议字段的值是什么?

Icmp
在路径上的每个路由器处,ICMP分组中TTL字段的值是如何变化的?
递减
3-3)中间路由器响应的ICMP分组中,其Info字段的作用是什么?它表示什么含义?最终目的节点响应的ICMP分组中,其Info字段的作用是什么?

Time-to-live exceeded (Time to live exceeded in transit)

Echo (ping) reply id=0x0001, seq=985/55555, ttl=45 (request in 695)
在besttrace中,将目标地址字段设置为斯坦福大学的域名www.stanford.edu后,对从你的主机到斯坦福大学网站的路径进行详细分析,可以观察到中间经过哪些城市的路由器。

绵阳-广州-东京
4.2 ping命令与IP分片
1)启动Wireshark,在显示滤波处输入“icmp”,开始分组捕获。
2)在cmd窗口中输入ping www.swust.edu.cn,待ping结束后,停止捕获。
3)观察并描述捕获的分组是否分片。

在IPv4头信息中,定位'Flags'字段,未见DF字段设置,意味着数据包可以被分割。若数据包被分割,'Identification'字段将获取相同的标识信息。
4)启动Wireshark,在显示滤波处输入“icmp”,开始分组捕获。
5)在cmd窗口中输入ping www.swust.edu.cn -l 4000,待ping结束后,停止捕获。
6)观察并描述捕获的分组是否分片。

Fragment offset不为0,表示进行了分片。
4.3俘获并分析以太网帧
1)清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。
2)启动Wireshark,开始分组俘获。
3) 在浏览器的地址栏中输入:
该网页链接将呈现冗长的美国权力法案。
4) 识别和停止分组俘获机制。首先,识别发送方主机向目标服务器gaia.cs.umass.edu传输的HTTP GET报文中的分组序号,以及识别目标服务器向接收方主机发送的HTTP响应报文中的分组序号。接着,分析并采取相应措施以终止分组俘获行为。
4-1)你的主机的48位以太网地址(物理地址)是多少?
Source Address: a4:b1:c1:d7:4b:a5

4-2)目标物理地址是否是gaia.cs.umass.edu服务器的地址?如果是,该物理地址属于什么设备?
目的物理地址不是gaia.cs.umass.edu服务器的地址
Destination: RuijieNe_5f:b2:32 (58:69:6c:5f:b2:32)

4-3)在以太网帧数据里,能找到前导码和CRC校验码吗?
在Wireshark中,前导码和帧起始定界符常见于以太网帧的“Frame”字段中。在Wireshark的数据包详细信息字段中,可以找到这些信息,其中的“Frame”字段可能包含“Preamble”和“Start of Frame Delimiter”。CRC校验码通常位于以太网帧的尾部,用于检测数据传输过程中的错误。在Wireshark中,CRC校验码可能显示在帧的底部,具体位置通常标记为“Frame Check Sequence (FCS)”。
4.4以太网帧长度(MTU)
1)启动Wireshark,开始分组俘获
在命令窗口中,依次执行以下操作:发送带时延5、10和50的ping命令,分别发送带时延5、10和50的ping命令,观察其响应分组信息,确定以太网传输介质的最小有效长度是多少?
最低长度为47字节。将该数值与以太网帧头字段和帧校验字段的长度相加,即可得到该链路上的最小MTU值。

当数据不够最小长度时,如何处理?
当数据长度不足以满足以太网帧的最小要求时,常见做法是采用填充字节来补充数据。填充字节仅用于满足以太网帧的最小长度要求,而不包含任何实际的数据内容。
在Windows命令提示符中执行ping命令,输入www.swust.edu.cn,并指定最大报文长度为1472;随后,再次执行ping命令,输入www.swust.edu.cn,并指定最大报文长度为1473。通过捕获的分组来观察,以太网最大报文单元(MTU)的大小是多少?
链路长度的最高值为1514字节,并附加以太网帧头字段和帧校验数据,即构成该链路的最大有效数据包长度。

4.5 ARP
通过MS-DOS命令执行arp -a命令,可以查看主机上的ARP缓存内容。请记录下你主机的ARP缓存内容。

ARP缓存表有什么用,其中每一列的含义是什么?
ARP缓存表记录了IP地址与物理MAC地址之间的映射关系,旨在减少每次通信过程中的ARP请求。下面将详细说明每一列的含义。
接口:网络接口的标识符。
Internet 地址:IP地址。
物理地址:MAC地址。
类型:地址类型,通常是静态(Static)或动态(Dynamic)。
通过MS-DOS命令执行arp -d *,可以有效地删除主机上的ARP缓存信息。接着,持续运行arp -a命令,观察ARP缓存信息的变化情况,其原因是什么?
ARP缓存具有动态更新的特点,这主要是由于设备间的通信活动会导致缓存表内容的调整。例如,当系统进行其他设备的访问操作或设备重新登录至网络环境中时,ARP缓存表的内容可能会相应调整。

3)启动Wireshark,过滤输入arp,开始分组俘获。
在CMD窗口中获取本地IP地址和默认网关地址的信息,通过执行arp -d *命令,清除主机内的ARP缓存内容,随后运行ping命令至网关地址,捕获响应数据;接着ping至邻居主机并获取其IP地址,停止捕获过程,并对捕获到的网络数据进行分析和解释。
在发起对网关地址的ARP询问时,Info字段的内容是什么?对应的响应分组中,Info字段的内容是什么?当本地设备发起对邻居IP地址的ARP询问时,Info字段的内容是什么?对应的响应分组中,Info字段的内容是什么?

网关地址:
Arp询问Info字段:Who has 10.16.0.1? Tell 10.16.202.175
应答info字段:10.16.0.1 is at 58:69:6c:5f:b2:32
网上邻居:
Arp询问Info字段:Who has 10.16.0.1? Tell 10.16.202.175
应答info字段:10.16.0.1 is at 58:69:6c:5f:b2:32
4-2)ARP询问分组和ARP响应分组中,opcode字段分别被是什么,代表什么意思?
Opcode: request (1),表示这是一个ARP请求(ARP询问)的报文

4-3)在ARP报文中是否包含发送方的IP地址?
包含

在捕获的ARP分组中,除了本机发起的ARP询问外,是否还捕获了其他主机发起的ARP询问?除了对本机的ARP应答外,是否还捕获了对其他主机发出的ARP应答?原因是什么?
如果Wireshark捕获的ARP分组中,除了本机之外还有其他主机发送ARP询问,以及除了本机的回应之外还有其他主机发送回应,这可能源于ARP作为广播协议的特点。当一个设备需要与网络中的其他设备通信但缺乏目标设备的MAC地址时,它会发送ARP请求,这些请求会被广播到整个网络。
