计算机网络-Wireshark探索ARP
使用工具
- Wireshark
- arp: To inspect and clear the cache used by the ARP protocol on your computer.
- curl(MacOS)
- ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.
- route/netstat: To inspect the routes used by your computer.
- Browser.
Network Setup
ARP is used to find the Ethernet address that corresponds to a local IP address to which your computer wants to send a packet.
Capture a Trace
运行下面的命令,获取自己的`Ethernet address
ifconfig
Find the IP address of the local router or default gateway that your computer uses to reach the rest of the Internet.
netstat -r # or use `route -n get default`
Wireshark设置:
- Interface: Wi-Fi: en0(MacOS+WiFi)
- filter:
arp
- Uncheck
capture packets in promiscuous mode
: This mode is useful to overhear packets sent to/from other computers on broadcast networks
设置完成后,开启抓包。
在命令行窗口运行以下命令:
arp -a # 查看arp缓存
sudo arp -d -a # Mac, 清除arp缓存
arp -a # 再次查看arp缓存
我们将本机的缓存删除之后,再次使用arp -a
查看缓存信息发现还有一条信息,这是为什么呢?下面这一段话是对于这一现象的解释。
计算机在需要和某个远程 IP 地址通信时,会自动发送新的 ARP 请求来重新获取该 IP 地址对应的 MAC 地址。这种请求通常是由系统后台的网络活动触发的,例如定时检测网络状态、后台程序通信等。因此,清除条目后,即使在短时间内查看 ARP 表(通过 arp -a),也可能发现该条目已经重新出现在 ARP 表中。
Note that the command should run without error but the ARP entry may not appear to be cleared if you check with “arp –a”. This is because your computer will send ARP packets to repopulate this entry as soon as you need to send a packet to a remote IP address, and that can happen very quickly due to background activity on the computer.
然后打开浏览器,这时Wireshark会捕获到一些分组,实际上我没打开浏览器时就捕获到了一些,可能是后台应用太多了。捕获到了之后就停止捕获,然后进入下一步的探究👀。
Inspect the Trace
我们首先分析发往我们自己电脑的和从我们电脑发出的分组,所以需要先过滤一下。
# 填入自己的 MAC 地址
eth.addr==10:b5:88:57:d8:0d
Find and select an ARP request for the default gateway and examine its fields. There are two kinds of ARP packets, a request and a reply, and we will look at each one in turn.
字段含义:
Hardware type
和Protocol type
分别用来指定底层的网络硬件类型和上层协议的类型。This matches the ARP translation from IP to Ethernet address.- Hardware and Protocol size are set to 6 and 4, respectively. These are the sizes of Ethernet and IP addresses in bytes.
opcode
标识这是一个Request,根据IP查找MAC的请求。- 最后四个字段分别是发送者的MAC和IP以及目标的MAC和IP,但这是我们发送出去的request,此时我们还不知道目标的MAC,所以这一字段是没有被填的。
字段含义:
- The Hardware and Protocol type and sizes are as set as before.
- The opcode field has a different value that tells us that this is a reply.
- Next come the four key fields, the sender MAC (Ethernet) and IP and the target MAC (Ethernet) and IP just as before. These fields are reversed from the corresponding request, since the old target is the new sender (and vice versa). The fields should now be all filled in since both computers have supplied their addresses
APR request and reply
根据下图绘制:
Details of ARP over Ethernet
-
What opcode is used to indicate a request? What about a reply?
01
表示request,02
表示reply。 -
How large is the ARP header for a request? What about for a reply?
reply: 28 bytes, request: 28 bytes(or 24 bytes 减去没填的Target MAC address)
-
What value is carried on a request for the unknown target MAC address?
Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)
-
What Ethernet Type value which indicates that ARP is the higher layer protocol?
-
Is the ARP reply broadcast (like the ARP request) or not?
返回时因为已经知道了双方的IP和MAC,所以不是通过广播,而是直接根据MAC返回。
下面讲述了ARP的工作原理:
ARP packets are carried in Ethernet frames, and the values of the Ethernet header fields are chosen to support ARP. For instance, you may wonder how an ARP request packet is delivered to the target computer so that it can reply and tell the requestor its MAC address. The answer is that the ARP request is (normally) broadcast at the Ethernet layer so that it is received by all computers on the local network including the target. Look specifically at the destination Ethernet address of a request: it is set to ff:ff:ff:ff:ff:ff, the broadcast address. So the target receives the request and recognizes that it is the intended recipient of the message; other computers that receive the request know that it is not meant for them. Only the target responds with a reply. However, anyone who receives an ARP packet can learn a mapping from it: the sender MAC and sender IP pair.
相关文章:
计算机网络-Wireshark探索ARP
使用工具 Wiresharkarp: To inspect and clear the cache used by the ARP protocol on your computer.curl(MacOS)ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.route/netstat: To inspect the routes used by your computer.Brows…...
减少30%人工处理时间,AI OCR与表格识别助力医疗化验单快速处理
在医疗行业,化验单作为重要的诊断依据和数据来源,涉及大量的文字和表格信息,传统的手工输入和数据处理方式不仅繁琐,而且容易出错,给医院的运营效率和数据准确性带来较大挑战。随着人工智能技术的快速发展,…...
1.2.3计算机软件
一个完整的计算机系统由硬件和软件组成,用户使用软件,而软件运行在硬件之上,软件进一步的划分为两类:应用软件和系统软件。普通用户通常只会跟应用软件打交道。应用软件是为了解决用户的某种特定的需求而研发出来的。除了每个人都…...
二、uni-forms
避坑指南:uni-forms表单在uni-app中的实践经验-CSDN博客...
Android13开机向导
文章目录 前言需求-场景第三方资料说明需求思路按照平台 思路 从配置上去 feature换个思路,去feature。SimMissingActivity 判断跳过逻辑SetupWizardUtils 判断SIM 、 hasSystemFeature FEATURE_TELEPHONYPackageManager.FEATURE_TELEPHONYApplicationPackageManage…...
软件测试丨Appium 源码分析与定制
在本文中,我们将深入Appium的源码,探索它的底层架构、定制化使用方法和给软件测试带来的优势。我们将详细介绍这些技术如何解决实际问题,并与大家分享一些实用的案例,以帮助读者更好地理解和应用这一技术。 Appium简介 什么是App…...
1.网络知识-IP与子网掩码的关系及计算实例
IP与子网掩码 说实话,之前没有注意过,今天我打开自己的办公地电脑,看到我的网络配置如下: 我看到我的子网掩码是255.255.254.0,我就奇怪了,我经常见到的子网掩码都是255.255.255.0啊?难道公司配…...
Android中Gradle常用配置
前言 本文记录了一些常用的gradle配置,基本上都是平时开发中可能会使用到的,如果有新内容会不定时更新,附官网 1.依赖库版本写法 不推荐写法: dependencies {compile com.example.code.abc:def:2. // 不推荐的写法 }这样写虽然可…...
Linux操作系统3-文件与IO操作2(文件描述符fd与文件重定向)
上篇文章:Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)-CSDN博客 本篇代码Gitee仓库:myLerningCode 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点:文件描述符fd与文件重定向 目录 一. 文件描述…...
k8s调度策略
调度策略 binpack(装箱策略) Binpacking策略(又称装箱问题)是一种优化算法,用于将物品有效地放入容器(或“箱子”)中,使得所使用的容器数量最少,Kubernetes等集群管理系…...
uniapp中父组件传参到子组件页面渲染不生效问题处理实战记录
上篇文件介绍了,父组件数据更新正常但是页面渲染不生效的问题,详情可以看下:uniapp中父组件数组更新后与页面渲染数组不一致实战记录 本文在此基础上由于新增需求衍生出新的问题.本文只记录一下解决思路. 下面说下新增需求方便理解场景: 商品信息设置中添加抽奖概率设置…...
螺丝螺帽缺陷检测识别数据集,支持yolo,coco,voc三种格式的标记,一共3081张图片
螺丝螺帽缺陷检测识别数据集,支持yolo,coco,voc三种格式的标记,一共3081张图片 3081总图像数 数据集分割 训练组90% 2781图片 有效集7% 220图片 测试集3% 80图片 预处理…...
一个简单带颜色的Map
越简单 越实用。越少设计,越易懂。 需求背景: 创建方法,声明一个hashset, 元素为 {“#DE3200”, “#FA8C00”, “#027B00”, “#27B600”, “#5EB600”} 。 对应的key为 key1 、key2、key3、key4、key5。 封装该方法,…...
kubeadm安装K8s集群之基础环境配置
系列文章目录 1.kubeadm安装K8s集群之基础环境配置 2.kubeadm安装K8s集群之高可用组件keepalivednginx 3.kubeadm安装K8s集群之master节点加入 4.kubeadm安装K8s集群之worker1节点加入 kubeadm安装K8s集群基础环境配置 1.首先确保所有机器可以通信,然后配置主机host…...
前端实现在线预览excel文件
在前端开发中,经常会遇到需要在线预览各种文件的需求。本文将介绍如何使用前端技术实现在线预览 Excel 文件的功能。 一、基于微软office服务的excel预览 获取要预览的 Excel 文件的 URL(例如存储在 OneDrive 或 SharePoint 上的文件)。 使…...
关于idea-Java-servlet-Tomcat-Web开发中出现404NOT FOUND问题的解决
在做web项目时,第一次使用servlet开发链接前端和后端的操作,果不其然,遇到了诸多问题,而遇到最多的就是运行项目打开页面时出现404NOT FOUND的情况。因为这个问题我也是鼓捣了好久,上网查了许多资料才最终解决…...
SCRM私域流量管理工具助力企业微信电商转型升级
内容概要 在当今数字化时代,SCRM(社交客户关系管理)私域流量管理工具正逐渐成为企业转型的重要助力。尤其是在电商领域,企业微信的兴起为许多公司打开了新的销售渠道,通过SCRM系统的高效整合,企业能够更加…...
三相异步电动机为什么能够旋转?
三相异步电动机,作为一种广泛应用于工业、农业及其他领域的电动机,其工作原理的理解对于工程技术人员以及相关从业者来说至关重要。 一、三相异步电动机的基本结构 三相异步电动机主要由定子、转子和机壳组成。定子是电动机的静止部分,包含…...
优化移动端H5:常见问题与解决方案
移动端H5开发中的“坑”与解决方案 本文介绍了开发中遇到的几个关于移动端H5开发中的小问题,以及解决的方法。 一、iOS滑动不流畅问题 在iOS设备上,H5页面的滑动效果有时会出现不流畅的情况,特别是在页面高度超过一屏时。这通常是由于iOS的…...
TM1不藏私系列——#10. TM1快速运算的秘密武器-Feeder
与其他BI产品对比,TM1的快速运算能力一骑绝尘。 但是在多维度的数据组合下,TM1是依据什么进行运算的呢? 今天将和大家一同了解TM1快速运算的秘密武器-Feeder。 上期我们提到通过配置维度中的元素权重,可以在合并层级加总计算。除…...
【Python】【Conda 】Conda vs venv:Python开发者的虚拟环境选择指南
目录 引言一、概述1.1 Conda 虚拟环境1.2 Python venv 虚拟环境 二、安装与设置2.1 安装 Conda 虚拟环境2.2 安装 Python venv 虚拟环境 三、依赖管理3.1 Conda 依赖管理3.2 Python venv 依赖管理 四、适用场景五、性能与资源占用5.1 Conda 性能与资源占用5.2 Python venv 性能…...
【从0学英语】06.时态 - 一般过去时
一般过去时(Past Simple Tense)是表达过去发生的动作、状态或事实的核心时态。这一时态都扮演着不可或缺的角色,本篇文章将全面讲解一般过去时的定义、结构、用法以及常见的动词变化,通过例句和详细的解释帮你理解这一时态。 文章…...
获取cpu序列号-python实现
DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…...
文献分享: PLAID——为ColBERT架构设计的后期交互驱动器
👉前情提要: 神经网络自然语言模型概述 Transformer \text{Transformer} Transformer与注意力机制概述 📚相关论文: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding \text{BERT: Pre-train…...
IMX6ULL开发板、PC机上的USB网卡、VMware中的Ubuntu的桥接网卡三者互Ping设置及设置
连上PC机上的USB网卡配置 首先打开Windows设备管理器,截图记录下当前的网络适配器,作为插上USB网卡后的对比: 然后打开“更改适配器选项”,也截张图,作为插上USB网卡后的对比: 插上USB网口࿰…...
孚盟云 MailAjax.ashx SQL漏洞复现
0x01 产品描述: 孚盟云是由...
前端 mp4 视频改成 m3u8 流模式
前端 mp4 视频改成 m3u8 流模式 mp4 视频的问题 1、mp4 视频通常对应一个文件,播放时需要加载全部文件,消耗网络资源。如果用户从中间某个时间访问,也会从头开始下载,浪费服务器性能。 2、mp4 视频文件容易被用户下载到本地。有…...
聚焦港口智能接处警,开启平安海运之门
一、概述 港口作为海运的关键枢纽,安全保障至关重要。港口智能接处警系统凭借智能化、数字化、信息化手段,融合 AI 与大数据等前沿技术,旨在实现对港口各类警情的快速、精准处理,有效提升港口应急响应能力,开启平安海…...
`yarn list --pattern element-ui` 是一个 Yarn 命令,用于列出项目中符合指定模式(`element-ui`)的依赖包信息
文章目录 命令解析:功能说明:示例输出:使用场景: yarn list --pattern element-ui 是一个 Yarn 命令,用于列出项目中符合指定模式( element-ui)的依赖包信息。 命令解析: yarn list…...
ElementEye,网页分析器
介绍 我们经常使用Python写爬虫,爬到网页数据之后,就需要用beautifulSoup进行解析。因为写爬虫并不是我的主营工作,大多数只是用来分析一下想要的数据而已,所以经常会忘记beautifulSoup的用法。 同时,我们总是分析页面…...
企业可以做哪些网站有哪些/郑州网络营销推广公司
小编精心收集:为金三银四准备,以下面试题先过一遍,为即将到了的面试做好准备,也过一遍基础知识点。一、RabbitMQ1.rabbitmq 的使用场景有哪些?2.rabbitmq 有哪些重要的角色?3.rabbitmq 有哪些重要的组件&am…...
要修改wordpress目录下的文件权限/北京百度竞价托管公司
问题如题:安装方法参考 http://www.cnblogs.com/shengulong/p/7887586.html ,安装完后,使用时出现如题的错误 解决办法: 1、zerorpc本身依赖很多三方包,请注意版本的兼容性,因此最佳方案是,把这…...
wordpress 卸载插件/广东清远今天疫情实时动态防控
目录 冯诺依曼体系 程序(program) 指令(instruction) 数据(data) CPU的基本工作原理 逻辑门:二级的电子开关 非门 与门 或门 异或门 算术逻辑单元 ALU(Arithmetic & Logic Unit) 算术单元(Arithmetic Unit) 逻辑单元(Logic Unit) ALU符号 控制单元 CU(Con…...
沈阳公司建站/武汉大学人民医院怎么样
一直困惑于vlan的link问题,access link还稍微可以理解,而trunk link和hybrid link 怎么让untagged frame通过,我却一直很迷惑,终于在老师的指点下,知道了部分原理(首先得谢谢老师)废话少说&…...
化妆品 营销型网站/济南做网站比较好的公司
我是尾巴: 入职有一段时间了,现在结合工作后的经验来说一下面试时自己认为的重点吧。 首先我觉得一定要清晰的是业务准备一定是大于技术的。 要清楚数据分析特别是初级分析师是对技术要求不高的职位。如果你面试时公司表现出来的是技术要求高,…...
英文版wordpress安装/seo超级外链工具
欢迎关注头条号:老顾聊技术精品技术文章分享,知识的组装工目录前言先更新数据库,再更新缓存先更新缓存,再更新数据库先删除缓存,再更新数据库先更新数据库,再删除缓存删除缓存失败,导致不一致读…...