计算机网络实验: 使用Wireshark抓包工具进行网络层和链路层网络协议分析(Ethernet & ARP部分)
2022/1/19 23:26:07
本文主要是介绍计算机网络实验: 使用Wireshark抓包工具进行网络层和链路层网络协议分析(Ethernet & ARP部分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在这一部分中,我们将抓取并分析 Ethernet 数据帧的内容,观察 ARP 协议在现实网络中如何工作。
- 抓取Ethernet 数据帧并进行分析:
a) 启动web浏览器,清空浏览器的缓存,启动 Wireshark 程序
b) 键入:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-lab-file3.html
c) 停止 Wireshark 程序,选择显示 IP 协议以下的协议,如下图:
d) 分析包含了 Http GET 数据的 Ethernet frame 的内容。
由上图可知,我所在主机的以太网地址是 TendaTec_e1:26:b0,即d8:32:14:e1:26:b0。以太网 Frame 中目标主机48位地址是:TendaTec_e1:26:b0(d8:32:14:e1:26:b0)。它不是
gaia.cs.umass.edu服务器的以太网地址,而是路由器的以太网地址。
然后我们可以看到 Frame 头部 Type 字段的值为IPv4(0x0800),字段的值的含义是帧类型/长度,当该字段的值大于或等于 0x0800 时,表示上层数据使用的协议类型,8 表示以太网。 - ARP协议分析
a) Windows 操作系统进入 CMD 下,使用 ARP 命令,分析 ARPcache 内容。上面给出了ARP命令的详细用法。结合上面的用法:
下面显示ARP表
尝试添加静态项,遇到错误:
ARP项的添加/删除等权限需要管理员身份。以管理员身份运行cmd,重新尝试:
尝试添加静态项:
显示ARP表:
可以观察到已经成功添加静态项。下面尝试删除该项:
可以观察到,已经成功删除该项。
b) 键入 arp -d *命令,清除 ARPcache内容。
之后,再清除浏览器缓存。
c) 打开 Wireshark,打开浏览器。
d) 键入:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-lab-file3.html
e) 停止 Wireshark,更改 Wireshark 的“listing of captured packets”窗口为 arp:
这里遇到了问题,输入arp之后没有数据包。解决方法是,更换浏览器,并在网页加载完成之后,继续等待比较长的时间再结束捕获,过早结束回到是捕获不到arp数据包。
问题解决之后,捕获结果如下:
f) 下面分析arp数据包。
ARP报文可以表示为:
Who has target IP address? Tell sender IP address.
具体格式如下图所示:
具体地:
硬件类型:16位字段,用来定义运行ARP的网络类型。每个局域网基于其类型被指派一个整数。例如:以太网的类型为1。ARP可用在任何物理网络上。
协议类型:16位字段,用来定义使用的协议。例如:对IPv4协议这个字段是0800。ARP可用于任何高层协议。
硬件长度:8位字段,用来定义物理地址的长度,以字节为单位。例如:对于以太网的值为6。
协议长度:8位字段,用来定义逻辑地址的长度,以字节为单位。例如:对于IPv4协议的值为4。
操作码:16位字段,用来定义报文的类型。已定义的分组类型有两种:ARP请求(1),ARP响应(2)。
源硬件地址:这是一个可变长度字段,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。
源逻辑地址:这是一个可变长度字段,用来定义发送方的逻辑(IP)地址。例如:对于IP协议这个字段的长度是4字节。
目的硬件地址:这是一个可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。
目的逻辑地址:这是一个可变长度字段,用来定义目标的逻辑(IP)地址,对于IPv4协议这个字段的长度为4个字节。
对上面捕获到的的ARP报文,硬件类型为Ethernet(1),协议类型为IPv4,硬件长度为6,协议长度为4,操作码为1代表请求,同时可以找到源Mac地址与IP地址、目标MAC地址与目标IP地址。
如果这篇文章对你有帮助,请给博主点个赞鼓励一下吧!
这篇关于计算机网络实验: 使用Wireshark抓包工具进行网络层和链路层网络协议分析(Ethernet & ARP部分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南