一、实验目的

通过分析由跟踪执行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请求,这个请求会被广播到整个网络。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐