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.hqwc.cn/news/84177.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【安卓】自定义View实现画板涂鸦等功能

一、实现效果 二、代码 1、MainActivity.class package com.lsl.mydrawingboarddemo;import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.ContextCompat;import android.os.Bundle; import android.os.Handler; import android.view.View; impo…

redis实战-项目集成git及redis实现短信验证码登录

目录 IDEA集成git 传统session存在的问题 redis方案 业务流程 选用的数据结构 整体访问流程 发送短信验证码 获取校验验证码 配置登录拦截器 拦截器注册配置类 拦截器 用户状态刷新问题 刷新问题解决方案 IDEA集成git 远程仓库采用码云,创建好仓库&…

RH1288V3 - 初识物理服务器

如果你拥有一台物理服务器(不是云服务器) 个人比较推荐你用物理服务器,虽然性能会比云要来的差,但是不用每月交钱上。云服务固然方便,但是几个核的性能和一点存储,想做一个动漫网站固然要很多mp4这种影视资源,云服务器…

UG\NX二次开发 使用录制功能录制操作记录时,如何设置默认的开发语言?

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,C\C,Qt-CSDN博客 简介: NX二次开发使用BlockUI设计对话框时,如何设置默认的代码语言? 效果: 方法: 依次打开“文件”->“实用…

数据库结构差异对比工具

简介 前几年写了一个数据库对比工具,但是由于实现方式的原因,数据库支持有限,所以重新设计了一下,便于支持多种数据库,并且更新了UI。 新版地址:https://gitee.com/xgpxg/db-diff 旧版地址:h…

Hightopo 使用心得(6)- 3D场景环境配置(天空球,雾化,辉光,景深)

在前一篇文章《Hightopo 使用心得(5)- 动画的实现》中,我们将一个直升机模型放到了3D场景中。同时,还利用动画实现了让该直升机围绕山体巡逻。在这篇文章中,我们将对上一篇的场景进行一些环境上的丰富与美化。让场景更…

SpringCloud学习笔记(三)_服务提供者集群与服务发现Discovery

服务提供者集群 既然SpringCloud的是微服务结构,那么对于同一种服务,当然不可能只有一个节点,需要部署多个节点 架构图如下: 由上可以看出存在多个同一种服务提供者(Service Provider) 搭建服务提供者集…

picGo+gitee+typora设置图床

picGogiteetypora设置图床 picGogitee设置图床下载picGo软件安装picGo软件gitee操作在gitee中创建仓库在gitee中配置私人令牌 配置picGo在插件设置中搜索gitee插件并进行下载 TyporapicGo设置Typora 下载Typora进行图像设置 picGogitee设置图床 当我了解picGogitee可以设置图床…

Cpp学习——编译链接

目录 ​编辑 一,两种环境 二,编译环境下四个部分的 1.预处理 2.编译 3.汇编 4.链接 三,执行环境 一,两种环境 在程序运行时会有两种环境。第一种便是编译环境,第二种则是执行环境。如下图: 在程序运…

Win11安装VMware中的镜像的下载

首先,下载好VMware之后需要许可证,在VMware选择许可证填上即可(可以解决一部分VMware创建虚拟机过程中出现的问题)。 百度网盘自取: 链接:https://pan.baidu.com/s/17gBySqoPi2HeGJJlalp-VQ 提取码&…

opencv 案例实战01-停车场车牌识别实战

需求分析: 车牌识别技术主要应用领域有停车场收费管理,交通流量控制指标测量,车辆定位,汽车防盗,高速公路超速自动化监管、闯红灯电子警察、公路收费站等等功能。对于维护交通安全和城市治安,防止交通堵塞…

list使用

list的使用于string的使用都类似,首先通过查阅来看list有哪些函数: 可以看到函数还是蛮多的,我们值重点一些常用的和常见的: 1.关于push_back,push_front,和对应迭代器的使用 //关于push_back和push_front void test_list1() {l…

G. The Morning Star - 思维

分析: 直接暴力就会tle,不知道怎么下手,可以统计八个方向一条线上的所有坐标,这些坐标一定可以放在一起满足,分析都有哪些线,当横坐标相同时会有竖着的一条线都可以,也就是x c,当纵…

sql server 、mysql CTE 公用表表达式

sql server 详细 mysql CTE CTE 是一个命名的临时结果集,作用范围是当前语句。CTE可以理解成一个可以复用的子查询,当然跟子查询还是有点区别的,CTE可以引用其他CTE,但子查询不能引用其它子查询。所以,开发中建议…

mysql 、sql server 游标 cursor

游标 声明的位置 游标必须在声明处理程序之前被声明,并且变量和条件还必须在声明游标或处理程序之前被声明 游标的使用步骤 声明游标打开游标使用游标关闭游标 (sql server 关闭游标和释放游标) sql server 游标 declare my_cursor curs…

Java10(异常处理)

0.复习面向对象 1.异常的体系结构 异常:在Java语言中,将程序执行中发生的不正常情况.(开发中的语法错误和逻辑错误不是异常) 异常事件分两类(它们上一级为java.lang.Throwable): Error Java虚拟机无法解决的严重问…

MyBatis与Spring整合以及AOP和PageHelper分页插件整合

目录 前言 一、MyBatis与Spring整合的好处以及两者之间的关系 1.好处 2.关系 二、MyBatis和Spring集成 1.导入pom.xml 2.编写配置文件 3.利用mybatis逆向工程生成模型层代码 三、常用注解 四、AOP整合pageHelper分页插件 创建一个切面 测试 前言 MyBatis是一个开源的…

使用kubeadm方式快速部署一个K8S集群

目录 一、环境准备 二、环境初始化 三、在所有主机上安装相关软件 1、安装docker 2、配置k8s的yum源 3、安装kubelet、kubeadm、kubectl 四、部署Kubernetes Master 五、加入Kubernets Node 六、部署CNI网络插件 七、测试k8s集群 一、环境准备 我的是CentOS7系统&am…

[管理与领导-51]:IT基层管理者 - 8项核心技能 - 6 - 流程

前言: 管理者存在的价值就是制定目标,即目标管理、通过团队(他人)拿到结果。 要想通过他人拿到结果: (1)目标:制定符合SMART原则的符合业务需求的目标,团队跳一跳就可以…

微人事 部门管理 模块 (十五)

部门管理的树展示和搜索 数据展示页是个树,我们一次性把数据加载出来也可以通过点一次id加载查询出来出来子部门,我们用一次拿到说有json数据加载出来 数据不多可以用递归,数据很多就用懒加载的方式 由于子部门比较深就不适合,权…