西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)
一、实验目的
通过分析由跟踪执行traceroute程序发送和接收捕获得到的IP 数据报,深入研究在IP 数据报中的各种字段,理解IP协议。基于ARP命令和Ethereal进行以太网帧捕获与分析,理解和熟悉ARP协议原理以及以太网帧格式。
二、实验环境
与因特网连接的计算机网络系统;主机操作系统为windows;Wireshark、besttrace等软件。
三、实验内容
1、利用besttrace理解traceroute工作原理
2、利用Wireshark分析tracetoute以及ICMP协议工作细节以及IP分片操作
3、以太网帧获取与帧格式熟悉
4、ARP协议相关操作与理解
四、实验步骤
在实验开始之前,首先对IP的报文格式进行熟悉
![]()
![]()
|
服务 |
头部长度 |
服务类型 |
总长 |
||||
|
标识 |
DF |
MF |
分段偏移 |
||||
|
生存期 |
协议 |
头部校验和 |
|||||
|
源IP地址 |
|||||||
|
目的IP地址 |
|||||||
|
选项 |
|||||||
4.1执行traceroute程序并捕获数据包
通过教材1.4.3节(27页)的内容,回顾traceroute的工作原理与方法:它首先发送一个或多个IP头部的TTL字段设置为1的数据报,随后发出了一个或多个TTL值为2 的一系列数据报到相同目的主机,然后发出了一个或多个TTL值为3 的一系列数据报到相同目的主机,依此类推。一个路由器每收到一个数据报时都必须把TTL值减1,如果TTL为0时,一个ICMP 消息((type 11 – TTL-exceeded)将被路由器发送到源主机。由于这个原因,一个TTL为1(由执行traceroute的主机发送)的数据报由源主机发送后,将导致路由器在一跳后发送一个ICMP TTL-exceeded信息到给源主机;发送 TTL值为2 的数据报会导致路由器两跳后发送一个ICMP 信息到源主机;依此类推。在这种方式下,通过从源主机与目的主机中的路由器返回的ICMP 数据报,主机执行的traceroute可以了解源主机和目的主机之间的路由器的IP 地址。
实验通过发送ICMP报文来探究IP协议(因为ICMP报文会用IP协议进行封装),用户用于发送ICMP报文的工具主要有ping和traceroute,本实验还使用一个路由跟踪工具:besttrace,可以更加生动的演示路由跟踪。
1)在cmd窗口中ping清华大学的官网,ping www.tsinghua.edu.cn,清华大学的IP地址是多少?
166.111.4.100
本机ping清华大学的往返延时大约是多少?
50ms
TTL为多少?
45
本机的IP地址是多少?

192.168.29.221
2)启动Wireshark,在显示滤波处输入“icmp”,开始分组捕获,然后启动besttrace,点击路由跟踪,在地址栏输入www.tsinghua.edu.cn,点击开始,进行路由跟踪,得到如下的软件界面:

3)停止Wireshark分组捕获,观察捕获到的分组,结合besttrace的内容,分析回答
3-1)在IP数据包头部,在上层协议字段的值是什么?

Icmp
3-2)为了跟踪到路径中的每个路由器,发出的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)
4)在besttrace中,将跟踪的目的地址改成斯坦福大学的域名www.stanford.edu后,在besttrace中观察从你的主机到斯坦福大学网站,中间都路过了哪些城市的路由器?

绵阳-广州-东京
4.2 ping命令与IP分片
1)启动Wireshark,在显示滤波处输入“icmp”,开始分组捕获。
2)在cmd窗口中输入ping www.swust.edu.cn,待ping结束后,停止捕获。
3)观察并描述捕获的分组是否分片。
在IPv4头信息中,查找“Flags”字段,未见 DF(Don't Fragment)标志设置,表示数据包可以分片,找到“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) 在浏览器的地址栏中输入:
http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-lab-file3.html,浏览器将显示冗长的美国权力法案。
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,开始分组俘获
2)在cmd窗口中,分别输入ping www.swust.edu.cn -l 5; ping www.swust.edu.cn -l 10; ping www.swust.edu.cn -l 50,观察捕获由www.swust.edu.cn的应答分组,以太网的MTU的最小值为多少?
Length最小为47,这个数值加上以太网帧头和帧校验部分,就是该链路上的最小MTU值。
当数据不够最小长度时,如何处理?
当数据不够最小长度时,通常会使用填充字节将数据包填充到达到以太网帧的最小长度。填充字节不包含实际的数据,只是用于满足以太网的最小长度要求。
3)在cmd窗口中输入ping www.swust.edu.cn -l 1472;ping www.swust.edu.cn -l 1473,从捕获的分组中观察,以太网的MTU的最大值为多少?
Length最大1514,这个数值加上以太网帧头和帧校验部分,就是该链路上的最大MTU值。

4.5 ARP
1)利用MS-DOS命令:arp -a查看主机上ARP缓存的内容,写下你主机ARP缓存中的内容。

ARP缓存表有什么用,其中每一列的含义是什么?
ARP缓存表存储了IP地址到物理MAC地址的映射,以减少每次通信时的ARP请求。每一列的含义如下:
接口:网络接口的标识符。
Internet 地址:IP地址。
物理地址:MAC地址。
类型:地址类型,通常是静态(Static)或动态(Dynamic)。
2)利用MS-DOS命令:arp -d * 清除主机上ARP缓存的内容,然后连续运行arp -a查看,观察ARP缓存是否在变化,为什么?
ARP缓存通常是动态更新的,因为设备之间的通信会导致缓存表的更新。例如,当访问其他设备或者设备重新上线时,ARP缓存表可能会有所变化。

3)启动Wireshark,过滤输入arp,开始分组俘获。
4)在cmd窗口中查看本机的IP地址和默认网关地址,执行arp -d * 清除主机上ARP缓存的内容,执行ping 网关地址;ping 邻居主机IP地址,停止捕获,分析回答
4-1)本机对网关地址的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地址?
包含

4-4)捕获的ARP分组中,除了本机发出的ARP询问,是否还捕获了其他主机发出的ARP询问?除了对本机的ARP应带,是否还捕获了对其他主机发出的ARP应答?为什么?
如果Wireshark捕获的ARP分组中除了本机发出的ARP询问还有其他主机发出的ARP询问,以及除了对本机的ARP应答还有对其他主机发出的ARP应答,这可能是因为ARP是一个广播协议,ARP请求是以广播形式发送到网络上的所有设备。当一个设备需要与网络上的其他设备通信但不知道目标设备的MAC地址时,它会发出ARP请求,这个请求会被广播到整个网络。
更多推荐

所有评论(0)