《计算机网络—自顶向下方法》 第六章Wireshark实验:Ethernet and ARP

巧了我就是萌 提交于 2019-12-21 13:10:30

实验描述:

在本实验中,我们将研究以太网协议和 ARP 协议。在开始实验之前, 您可以查看课本的 6.4.1 节(链路层地址和 ARP)和 6.4.2(以太网), 您也可以去看 RFC 826(ftp://ftp.rfc-editor.org/in-notes/std/std37.txt)了解关于 ARP 的协议详细信息,该协议可以根据 IP 地址获取远程主机的的物理地址(MAC地址)。


实验过程:

第一部分:捕获和分析以太网帧

让我们从捕获一组以太网帧开始研究。 请执行下列操作 :

  • 首先,确保浏览器的缓存为空(清除浏览器缓存),对于Chorme浏览器,如下图所示,然后启动 Wireshark数据包嗅探器。在这里插入图片描述
    在这里插入图片描述

  • 打开以下 URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-lab-file3.html 您的浏览器应显示相当冗长的美国权利法案。
    在这里插入图片描述
    在这里插入图片描述

  • 接下来停止 Wireshark数据包捕获,找到您向 gaia.cs.umass.edu的 HTTP GET消 息的数据包编号以及 gaia.cs.umass.edu相应您的 HTTP回应。您的抓包结果应 看起来向下面一样:
    在这里插入图片描述

  • 由于本实验是关于以太网和 ARP的,我们对 IP或更高层协议不感兴趣。 因此,让我们更改 Wireshark的“捕获数据包列表”窗口,以便它仅显示有关 IP 以下协议的信息。 要让 Wireshark执行此操作,请选择 Analyze-> Enabled Protocols(分析-启用的协议)。 然后取消选中 IP框(这里指的 IPV4 协议,下面有搜索)并选择确定。
    (下面的图应该是取消IPv4的“勾”即可,不要全部禁用,懒得去改了)
    在这里插入图片描述
    您现在 Wireshark窗口应该如下所示:
    在这里插入图片描述


回答问题:

第一部分:捕获和分析以太网帧

为了回答以下问题,您需要查看数据包详细信息 和 数据包内容窗口(Wireshark中 的中间和下部的显示窗口)。

选择包含 HTTP GET消息的以太网帧。 (回想一下,**HTTP GET请求是被加上 TCP头封装到 TCP段进行传输,TCP段加上 IP头被封装到 IP数据报进行传输,IP数据报又被加上以太网头封装成以太网帧进行传输;**如果你发现这个封装有点令人困惑,请重读文本中的第 1.5.2节)。 在数据包详细信息窗口中展开以太网 II 信息。 请注意,以太网帧的内容(标题以及有效负载)显示在数据包内容窗口中。

根据包含 HTTP GET消息的以太网帧进行分析,如果有可能建议您使用标记的方式展现您的答案。
  1. 你的电脑 48位的地址是多少?

答:我的电脑的MAC地址为:5a:00:dd:d9:3c:7f
在这里插入图片描述

  1. 以太网帧中的 48位目标地址是什么?这是 gaia.cs.umass.edu的以太网地址吗?(提示:答案是否定的)。那么它是什么?

答:直接看上面的图,以太网帧中的目的MAC地址为:a8:9c:ed:c3:ad:2c,不是gaia.cs.umass.edu的以太网地址吗,这是我手机的虚拟路由地址(我用小米手机开的热点做的实验)

  1. 以太网帧上层协议 16进制值是什么?这对应的上层协议是什么?

答:16进制值是0x0800,对应的是网络层的IPv4协议。
在这里插入图片描述
在这里插入图片描述

  1. 从以太帧的开始,一直到“GET”中的 ASCII“G”出现在以太网帧中为止,有多少字节?

答:两个16进制代表一个字节,
第一行、第二行、第三行都是16个字节,总共48个字节,第四行到G总共有7个字节,所以总共55个字节。
在这里插入图片描述

接下来,根据包含 HTTP响应消息的第一个字节的以太网帧的内容(带有OK的响应消息),回答以下问题。在这里插入图片描述
  1. 这个以太网帧中,以太网源地址的值是多少?这是你的计算机的地址,还是 gaia.cs.umass.edu的地址(提示:答案是否定的)。拥有这个以太网地址的设备是什么

答:以太网源地址为:a8:9c:ed:c3:ad:2c,这不是我计算机的地址(我的地址第一题一句说了),也不是远端服务器的地址,而是我手机的虚拟路由地址,因为可以看得出前面有个小米手机。
在这里插入图片描述

  1. 以太网帧中的目的地址是什么?这是您的计算机的以太网地址吗

答:目的地址就是我的计算机的以太网地址了,为 5a:00:dd:d9:3c:7f

  1. 以太网帧上层协议16进制值是什么? 这对应的上层协议是什么

答:还是像第三题那样,16进制值是0x0800,对应的是网络层的IPv4协议。
在这里插入图片描述

  1. 从以太帧的开始,一直到“OK”中的 ASCII“O”出现在以太网帧中为止,有多少字节

答:4*16+4 = 68个字节。
在这里插入图片描述


实验过程:

第二部分:地址解析协议

回想一下,ARP协议通常在您的计算机上维护 IP 到 以太网地址(MAC地址) 转换缓存.arp 命令(在 MSDOS和 Linux / Unix中)用于查看和操作此缓存的内容。由于 arp命令和 ARP协议具有相同的名称,因此很容易混淆它们。但请记住,它们是不同的:

  • arp命令,用于查看和操作 ARP缓存内容(就是IP转到MAC地址的转换表),
  • ARP协议,定义了发送和接收的消息的格式和含义,并定义了对消息传输和接收所采取的操作。

我们来看看您计算机上ARP缓存的内容
我的是Windows,我就直接在cmd命令行操作了:
在这里插入图片描述
在这里插入图片描述

为了观察您的计算机发送和接收 ARP消息,我们需要清除 ARP缓存,否则您的计算机很可能在其缓存中找到所需的 IP-Ethernet地址转换关系,因此不会发送 ARP 消息。
在这里插入图片描述

抓取 ARP 消息

请进行以下操作:(很多都是和第一部分的实验差不多,有的截图没有贴出来)

  • 清除arp表的缓存,如上图。

  • 清除浏览器的缓存。

  • 启动 Wireshark捕捉封包。

  • 打开以下 URL,http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-lab-file3.html。你的浏览器应该再次显示相当长的美国权利法案。

  • 同样设置不显示 IP和更高层协议,请选择 Analyze-> Enabled Protocols(分析 -启用的协议)。 然后取消选中 IP框,之后窗口内容应该如下:
    在这里插入图片描述
    在这里插入图片描述


回答问题:

第二部分:地址解析协议

  1. 写下计算机 ARP缓存的内容。每个列值的含义是什么

答: 每个列值的含义其实都在上面说了,分别表示Internet地址(也就是IP地址)、物理地址(也就是MAC地址)、类型(动态,表示如果某个表项在一定的时间内没有被用到就被删除,静态则永久保存)
ARP动态与静态类型参考资料
在这里插入图片描述

  1. 包含 ARP请求消息的以太网帧中源和目标地址的十六进制值是什么

答:这里的arp请求消息就是广播消息,因为一开始的时候arp缓存被清空了,所以就会发出arp广播,但是好像要有无线路由器才能抓取arp广播消息Broadcast,所以这里直接使用官方抓取的数据包了
对应的源地址为: 00:d0:59:a9:3d:68,目的地址为: ff:ff:ff:ff:ff:ff
在这里插入图片描述

  1. 以太网帧上层协议 16进制值是什么?

答:如上图可知,以太网帧上层协议(以太网帧封装在ip数据包中,上层协议就是ip协议),对应的16进制值是:0x0806在这里插入图片描述

  1. 分析ARP请求
    在这里插入图片描述

a) ARP 操作码字段 开始从以太网帧的最开始有多少字节?

答:ARP协议报文的格式
在这里插入图片描述
这道题问的就是ARP操作码之前有多少个字节,ARP操作码就是 Opcode,找到即可,前面总共是16 + 5 = 21字节:

在这里插入图片描述

b) 在进行ARP请求的以太网帧的ARP负载部分中,操作码字段的值是多少?

答:如上图可以看到,字段的值为1。

c) ARP 消息是否包含发送方的 IP 地址?

答:包含,如下图所示
在这里插入图片描述

d) 在 ARP 请求中从哪里看出我们要查询相应 IP 的以太网地址?

答:操作码字段中有request,表示要请求,也就是查询响应IP的以太网地址。
在这里插入图片描述

  1. 分析ARP结果
    在这里插入图片描述

a) ARP 操作码字段开始从以太网帧的最开始有多少字节?

答:跟ARP请求其实是一样的,都是21个字节。

b) 在进行 ARP 响应的以太网帧的 ARP 负载部分中,操作码字段的值是多少?

答:上图可以看到,响应的值为2。

c) 在响应 ARP 中从哪里看出现早期 ARP 请求的答案?

答:从下面可以看出:
在这里插入图片描述

  1. 包含 ARP 回复消息的以太网帧中的源地址和目标地址的十六进制值是多少?

答:源地址:00:06:25:da:af:73,目的地址:00:d0:59:a9:3d:68
在这里插入图片描述

  1. 在作者抓包结果中,他有两台电脑,一台运行 wireshark 进行抓包,一台没有,那么为什么运行 wireshark 那台电脑发送 ARP 请求得到了应答,另外一台电脑的 ARP 请求没有得到应答?(没有相应第 6 帧的 ARP 的请求)

答:因为 ARP 广播信息是广播的,所有该网段内的电脑均可收到,而 ARP 广播回复是单播的,只有请求的那台电脑才能收到,因此抓不到另外一台电脑的 ARP 请求。 【参考自别人】


参考资料:

https://github.com/moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!