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

2023-05-16

实验描述:

在本实验中,我们将研究以太网协议和 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何使用交叉编译将大量源文件生成动态库

    今天要把算法包生成一个动态库放在ARM上调用运行 xff0c 特此记录一下给大家参考 1 首先将算法文件夹中的源程序生成 o文件 arm span class token operator span linux span class tok
  • 结构体赋值运行时出现段错误(核心已转储)

    今天给嵌套结构体赋值的时候编译没问题 xff0c 但是运行总是段错误 xff0c 后来发现是忘了分配动态内存 xff0c 记得用calloc分配 xff0c 实际结构体嵌套比较复杂 xff0c 在这里举个简单的例子给大家看看 xff0c 引
  • 如何将一段字符串在word中,自动删除换行,两两之间增加空格键

    我们在拉取十六进制数据分析时 xff0c 经常遇到对方只给一条长长的字符串 xff0c 当然 xff0c 我们可以通过代码的方式进行空格添加 xff0c 方便阅读 xff0c 但是有时候身边没有编译工具或者流程复杂 xff0c 介绍一个用w
  • Python学习第5天——洛谷刷题(顺序结构)、循环

    Python学习第5天 1 洛谷刷题1 1 顺序结构1 2 高精度 2 循环2 1 while循环2 2 for循环2 3 range xff08 xff09 函数2 4 用for循环绘图练习2 4 1 绘制同心圆2 4 2 绘制棋盘格 1
  • 如何定义字符串

    如何定义字符串 一维和二维的都可以 xff1b 一维的情况如下 xff1a 1 xff0c char string0 10 2 xff0c char string1 61 34 prison break 34 3 xff0c char st
  • static全局变量与普通的全局变量的区别?

    1 static全局变量与普通的全局变量有什么区别 xff1f static局部变量和普通局部变量有什么区别 xff1f static函数与普通函数有什么区别 xff1f 答 xff1a 全局变量 外部变量 的说明之前再冠以static 就
  • 动态存储方式和静态存储方式

    从变量的作用域的角度来观察 xff0c 变量可以分为全局变量 和局部变量 xff1b 全局变量都是存放在静态存储区中的 因此它们的生存期是固定的 xff0c 存在于程序的整个运行过程 局部变量 xff0c 如果不专门声明存储类别 xff0c
  • c语言中的return 0有什么用?

    return 0是正常退出 xff0c return 非零是异常退出 xff0c 这是返回给控制台的 xff0c 不在编的程序的控制范围内 xff0c 是给操作系统识别的 xff0c 对你的程序无影响 如果是C中 xff0c 定义void
  • JAVA代码实现字符串匹配(一)——BF、KMP

    话不多说 xff0c 直接进入主题 xff1a 题目描述 xff1a 给定两个字符串text和pattern xff0c 请你在text字符串中找出pattern字符串出现的第一个位置 xff08 下标从0开始 xff09 xff0c 如果
  • pwntools, terminal =‘tmux‘ 报错

    pwntools terminal 61 tmux 报错 Traceback most recent call last File exp py line 4 in gdb attach File home pwn pwn lib pyth
  • 更改手动导入的wsl的默认登录用户

    导入了一个wsl后 xff0c 每次登录都是root用户 xff0c 这个就有点不太好 网上的教程都是说在ps里用分发版的对应exe文件来设置默认用户 xff0c 但是导入的这个wsl我没找到这个exe 找了半天然后看了微软官方的教程 xf
  • v8安装fetch不上

    大佬方案 xff1a 白嫖github action 感谢大佬
  • pwnabletw-babystack

    BabyStack 思路 危险函数 xff0c strcpy 在copy的时候strcpy看似没有问题 xff0c 但是由于src的内容并没有清空 xff0c 还保存着被销毁栈的原有数据 xff0c 而strcpy是根据 34 x00 34
  • vmware win7虚拟机安装vmtools坑

    win7镜像下载 要下带SP1这个记号的 xff0c 表示有service pack 1这个补丁的 一定一定记得 xff0c 不然vmtools装不上 补丁 vmtools安装期间有很多驱动安不上的话 xff0c 首先 xff0c 安装一个
  • Python学习第10天——GUI初步

    Python学习第10天 1 多个库2 所写的代码 1 多个库 图形开发界面的库 Tkinter xff1a Tkinter 模块 Tk 接口 是 Python 的标准 Tk GUI 工具包的接口 Tk 和 Tkinter 可以在大多数的
  • IO扩展芯片PCF8574的中断引脚的理解

    The PCF8574 device provides an open drain output INT that can be connected to the interrupt input of a microcontroller A
  • java中的字符转换为数字 十进制转为二进制

    java中的字符转整数 span class token comment 方式1 span span class token keyword char span c span class token operator 61 span spa
  • xshell登录 安卓手机

    局域网远程连接手机 通过ssh登录到手机 Termux安装Termux安装openssh启动sshd服务配置登录密钥方法1方法2 手机查看当前用户名手机查看当前ip电脑cmd ssh到手机电脑xshell连接到ssh手机 通过ssh登录到手
  • vscode插件之Linux相关插件

    Linux相关插件 1 Remote SSH 远程连接插件2 shell format 代码格式化工具3 shellman 代码语法提示4 Linux ansible 语法提示5 皮肤设置5 1 Dracula Official5 2 ta
  • linux-优化 PS1

    PS1 记录 span class token builtin class name export span span class token assign left variable span class token environmen

随机推荐