当前位置: 首页 > news >正文

Wireshark数据抓包分析之ARP协议

一、实验目的:

        通过wireshark的数据抓包了解这个ARP协议的具体内容

二、预备知识:

        1.Address Resolution Protocol协议,就是通过目标IP的值,获取到目标的mac地址的一个协议

        2.ARP协议的详细工作过程,下面描述得非常清晰:

         3.关于上面提到的ARP缓存表这个东西:

(1)首先,这里的ARP缓存表就是利用的计组里面的Cache的那个局部性原理,这样更快

(2)其次,在windows的cmd中可以使用对应的命令查看这个ARP缓存表,

 关于arp -s 这条命令的特别说明

         3.不知道netsh这个东西是干啥的,接着看就好了:

        Netsh(网络 Shell)命令是在 Windows 系统中用于管理和配置网络设置的命令行工具。它提供了对网络接口、IP 地址、防火墙、路由、DNS、WLAN 等网络组件的控制和配置功能


三、实验环境和主要步骤

1. 通过使用Netsh和ARP命令来绑定IP和MAC地址。
2. 在测试环境使用Wireshark抓取ARP数据包。
3. 详细分析ARP请求包和ARP应答包。

 四、实验过程:

part1:分别使用netsh 命令 和 arp命令对 arp缓存表进行相关的操作

1.首先使用netsh i i  show in 命令查看idx为16

 2.然后用netsh -c "i i" add neighbors  16 "10.1.1.11" "01-xx-xx-xx-xx-xx"实现arp数据的添加,并用arp -a查看

 3.用arp -s添加,用arp -d删除:

 

 part2:利用wireshark对由ping命令产生的数据包进行抓取

先打开wireshark,然后在cmd中使用ping 10.1.1.166命令,之后再wireshark中停止捕获,

找到对应含有字符串的"who has 10.1.1.166"这2条过滤出来的arp数据包

 这个不对,因为我之前不小心ping过了一次,这里已经直到了10.1.1.166的mac地址,dst_mac不是ff-ff-ff-ff-ff,用arp -a查看一下

 所以,下面我考虑使用arp -d先删除这一条记录,然后重新进行wireshark的捕获

 这一次才是成功的进行了捕获

part3:对过滤出来的arp请求和应答数据包进行分析:

1.首先,我们看一下arp的请求报文:

先只是单看标题,Frame这一行说明一共有42个字节

以太网那一行,说明了源mac地址是fa-16-3e-fe-c7-f8,目标mac地址是广播地址ff-ff-ff-ff-ff-ff因为只知道目标的ip地址,而不知道目标mac地址,所以只能采用广播的形式,具体打开:

还格外提到了之后那一层协议的类型是ARP

 下面,我们具体看一下这个ARP里面的内容吧:

首先,它说明了自己是request请求报文

以太网的类型,使用ip协议以及对应部分的长度

发送端的mac地址、ip地址 和 未知的目标mac地址 和 已知的目标ip地址

2.再来看一下arp的响应报文:

 先看标题吧,第一行Frame说明有60个字节的数据

第二行,就可以看出这是10.1.1.166这个台机器已经知道了双方的mac地址了

arp的具体内容如下:

 首先,它说明了是一个reply响应报文

然后,就是以太网类型的和ip协议类型等

之后,就是发送和接受双方的mac和ip地址数据

http://www.lryc.cn/news/137008.html

相关文章:

  • 6个比较火的AI绘画生成工具
  • 静力水准仪说明介绍
  • HAProxy 高级功能与配置
  • cuda编程002—流
  • 2023年国赛 高教社杯数学建模思路 - 案例:粒子群算法
  • 【C#学习笔记】数据类中常用委托及接口——以List<T>为例
  • idea的断点调试
  • vue和react学哪一个比较有助于以后发展?
  • 【SkyWalking】分布式服务追踪与调用链系统
  • Python“牵手”速卖通商品详情API接口运用场景及功能介绍
  • java调用python脚本的示例
  • 【C语言】柔性数组(可边长数组)
  • C++信息学奥赛1131:基因相关性
  • 如何保证分布式系统中服务的高可用性:应对 ZooKeeper Leader 节点故障的注册处理策略
  • SQL注入之延时注入
  • 运维高级学习--Docker(二)
  • QT的核心——信号与槽
  • 【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化
  • MyCAT命令行监控
  • 【python】正则表达式匹配数据
  • 【C++】用Windows API在控制台实现选择选项
  • Golang 批量执行/并发执行
  • 使用go语言、Python脚本搭建一个简单的chatgpt服务网站。
  • 基于java会议室预约系统设计与实现
  • Ubuntu18.04 交叉编译curl-7.61.0
  • Android相机-HAL子系统
  • PostgreSQL-研究学习-介绍与安装
  • 【Unity细节】Unity制作汽车时,为什么汽车会被弹飞?为什么汽车会一直抖动?
  • Android初学之android studio运行java/kotlin程序
  • 使用自定义 C ++类扩展 TorchScript