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

【网络协议】ARP协议

为什么网络需要同时借助MAC地址这种物理地址和IP地址这种逻辑地址进行通信?

尽管目前MAC地址可以通过逻辑的方式进行修改,但它最初是被设计为不可人为更改的硬件地址。虽然MAC地址也可以满足唯一性的要求,但由于它不可由管理员根据需求通过逻辑方式进行管理,因此它只能进行局部寻址,无法实现全局范围内的寻址。而IP地址则不是硬件本身自带的地址,它是一种由管理员按需为设备分配的逻辑地址。通过子网划分展示了IP地址的可管理性,因此逻辑地址更适合执行全局范围内的寻址。

然而,因为IPV4协议定义的IP地址最多只能有2^32个,并不能为网络中所有设备都设置一个唯一的IP地址。再加之NAT协议的缘故,所以选择了IP地址+MAC地址结合的寻址方式。结果就是一个局域网中的通信都是用MAC地址,与局域网外进行通信则需要通过网关(NAT路由器)。因为交换机的出现,从开始的总线型局域网变成了现在的星型局域网络结构,即所有主机都与交换机的某个端口相连,交换机内部自学习并维护一个MAC地址表,将端口与MAC地址映射起来。所以在局域网中的通信就变得高效且便捷。

这时候通信就需要有一种协议能够根据目的设备的IP地址查询它的MAC地址,这就是ARP(地址解析协议)。

交换机中存在MAC地址表,主机中则存有ARP高速缓存。ARP高速缓存是IP地址与MAC地址的映射,也可以通过学习获得,它存在某种生命周期。

ARP的工作方式是,当一台设备由于不知道目的设备的MAC地址,而无法封装以目的设备的MAC地址为以太网数据帧的目的MAC时,他会先以广播MAC地址(FF-FF-FF-FF-FF-FF)作为目的MAC地址封装广播数据帧,向整个局域网请求目的IP(私网IP)对应的MAC地址。当目的设备通过目的IP地址识别出这是请求自己的MAC地址的ARP请求包时,就会以自己的MAC地址作为源MAC地址,向ARP请求包的始发设备发送单播的ARP响应包。在接收到ARP响应包后,请求设备就获得了目的设备的MAC地址。

所以两个不同局域网中的主机进行网络通信,只需要知道对方的IP地址(这里的IP地址指网关IP地址,即公网IP)、端口号(这里的端口号指NAT路由器的端口号,因为NAT路由器把私网IP替换成自己的公网IP,并且把局域网中需要通信的主机端口替换成自己的),MAC地址也是双方网关的MAC地址(所以源MAC是一路被替换的,只有目的MAC不变)。

ARP欺骗原理

设备将ARP响应中的地址对应关系保存到自己的ARP高速缓存中,并不考虑这是否是自己请求的ARP响应,也不会验证响应方的真实身份。这就让攻击者可以在网络中散布错误的IP-MAC对应关系。攻击者主动向网络中发送包含错误IP-MAC对应关系的ARP响应,这种做法称为ARP欺骗。

所以一个局域网中主机A可以响应网关的ARP请求(想要得到主机BMAC地址)冒充主机B,并响应主机B的ARP请求(想要得到网关MAC地址),这种攻击者将自己插入受害者的通信路径中盗取通信数据的方式,称为中间人攻击。

相关文章:

【网络协议】ARP协议

为什么网络需要同时借助MAC地址这种物理地址和IP地址这种逻辑地址进行通信? 尽管目前MAC地址可以通过逻辑的方式进行修改,但它最初是被设计为不可人为更改的硬件地址。虽然MAC地址也可以满足唯一性的要求,但由于它不可由管理员根据需求通过逻…...

安防视频/集中云存储平台EasyCVR(V3.3)部分通道显示离线该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

软件测试经典面试题:如何进行支付功能的测试?

非现金支付时代&#xff0c;非现金支付已经成为了生活不可或缺的一部分&#xff0c;我们只需要一台手机便可走遍全国各地&#xff08;前提是支付宝&#xff0c;微信有钱<00>&#xff09;,那么作为测试人员&#xff0c;支付测试也是非常重要的一环&#xff0c;那么下面我就…...

SolidWorks 入门笔记03:生成工程图和一键标注

默认情况下&#xff0c;SOLIDWORKS系统在工程图和零件或装配体三维模型之间提供全相关的功能&#xff0c;全相关意味着无论什么时候修改零件或装配体的三维模型&#xff0c;所有相关的工程视图将自动更新&#xff0c;以反映零件或装配体的形状和尺寸变化&#xff1b;反之&#…...

【Java】对象内存图多个对象同一内存地址

目录 学生类 单个对象内存图 多个对象指向同一个内存地址 学生类 Student.java如下&#xff1a; package com.面向对象;public class Student {String name;int age;public void work() {System.out.println("开始敲代码...");} }StudentDemo.java如下&#xff…...

Python 笔记05(装饰器的使用)

一 装饰器的使用 (property) property 是 Python 中用于创建属性的装饰器。它的作用是将一个类方法转换为类属性&#xff0c;从而可以像 访问属性一样访问该方法&#xff0c;而不需要使用函数调用的语法。使用 property 主要有以下好处&#xff1a; 封装性和隐藏实现细节&…...

记忆化搜索,901. 滑雪

901. 滑雪 - AcWing题库 给定一个 R 行 C 列的矩阵&#xff0c;表示一个矩形网格滑雪场。 矩阵中第 i行第 j 列的点表示滑雪场的第 i 行第 j列区域的高度。 一个人从滑雪场中的某个区域内出发&#xff0c;每次可以向上下左右任意一个方向滑动一个单位距离。 当然&#xff0…...

计算机网络:连接世界的纽带

计算机网络的基础概念 计算机网络是一组相互连接的计算机&#xff0c;它们通过通信链路和协议进行数据交换和资源共享。以下是一些关键概念&#xff1a; 1. 节点和主机 网络中的计算机设备称为节点&#xff0c;通常是主机或服务器。主机是普通用户或终端设备&#xff0c;而服…...

SpringMVC 学习(三)注解开发

4. 注解开发 4.1 环境搭建 (1) 新建 maven 模块 springmvc-03-annotation (2) 确认依赖 确认方法同 3(2)&#xff0c;手动导入发布依赖见3(11) <!--资源过滤--> <build><resources><resource><directory>src/main/java</directory>&…...

0x84加密数据传输服务

为了在安全模式下实现一些诊断服务&#xff0c;在服务端和客户端应用程序之间添加了Security sub-layer。在客户端与服务端之间进行诊断服务数据传输有两种方法&#xff1a; 1、非安全模式下数据传输   应用程序使用诊断服务(diagnostic Services)和应用层服务原语(Applicati…...

Vue.js快速入门:构建现代Web应用

Vue Vue.js是一款流行的JavaScript框架&#xff0c;用于构建现代的、交互式的Web应用程序。它具有简单易学的特点&#xff0c;同时也非常强大&#xff0c;能够帮助开发者构建高效、可维护的前端应用。本篇博客将带你快速入门Vue.js&#xff0c;并演示如何构建一个简单的Vue应用…...

Scala第五章节

Scala第五章节 scala总目录 章节目标 掌握方法的格式和用法掌握函数的格式和用法掌握九九乘法表案例 1. 方法 1.1 概述 实际开发中, 我们需要编写大量的逻辑代码, 这就势必会涉及到重复的需求. 例如: 求10和20的最大值, 求11和22的最大值, 像这样的需求, 用来进行比较的逻…...

erlang练习题(三)

题目一 查询列表A是否为列表B的前缀 解答 isPrefix([], List2) -> io:format("A is prefix of B ~n");isPrefix([H1 | ListA], [H2 | ListB]) ->case H1 H2 oftrue -> isPrefix(ListA, ListB);false -> io:format("A is not prefix of B ~n&quo…...

What Is A DNS Amplification DDoS Attack?

什么是 DNS 放大攻击&#xff1f; 域名系统 &#xff08;DNS&#xff09; 是用于在网站的机器可读地址&#xff08;例如 191.168.0.1&#xff1a;80&#xff09;和人类可读名称&#xff08;例如 radware.com&#xff09;之间进行解析的目录在 DNS 放大攻击中&#xff0c;攻击者…...

jvm笔记

好处&#xff1a; 跨平台 内存管理机制&#xff0c;垃圾回收功能 数组下标越界检查 多态 名词解释&#xff1a; jvm java虚拟机&#xff0c;是java程序的运行环境 jre jvm基础类库 jdk jre编译工具 javase jdkide工具 javaee javase应用服务器 jvm的内存结构&#xff1a; 程序…...

WPF中的控件

内容控件&#xff1a;label、border Window控件 Label控件 Border控件 内容控件 Button控件 点击取消按钮关闭程序&#xff1b;点击登录按钮打开BorderWindow窗口。 TextBox控件 PasswordBox控件 TextBlock控件 加载窗口时显示TextBlock中的内容 RadioButton控件 CheckBox控件…...

Java下对象的序列化和反序列化(写出和读入)

代码如下&#xff1a; public class MyWork {public static void main(String[] args) throws IOException, ClassNotFoundException {//序列化File f new File("testFile/testObject.txt");ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(…...

基于springboot的洗衣店订单管理系统

目录 前言 一、技术栈 二、系统功能介绍 顾客信息管理 店家信息管理 店铺信息管理 洗衣信息管理 预约功能 洗衣信息 交流区 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网信息的飞速发展&#xff0c;无纸化作业变成了一种趋势&#x…...

Llama2部署踩坑

1、权重是.bin&#xff0c;但是报错找不到.safetensors 明明权重文件是.bin&#xff0c;但是却提示我缺少.safetensors。最后发现好像是 llama2-7b这个模型文件不行&#xff0c;必须要llama2-7b-chat这个模型才能读取的通&#xff0c;具体原因还暂不明确。...

Adams齿轮副

1.运动副 添加旋转副的时候&#xff0c;必须先物体后公共part(即此处的ground&#xff09;&#xff0c;最后再选择质心点 2.啮合点 啮合点marker的z轴必须是齿轮分度圆的切线方向 3.啮合点 两齿轮的旋转副&#xff0c;和啮合点&#xff0c;即cv marker &#xff0c;必须属…...

Kubescape终极跨平台安装指南:Windows/Linux/macOS一键部署与实用技巧

Kubescape终极跨平台安装指南&#xff1a;Windows/Linux/macOS一键部署与实用技巧 Kubescape是一款开源的Kubernetes安全平台&#xff0c;专为IDE、CI/CD管道和集群设计&#xff0c;提供风险分析、安全合规检查和错误配置扫描功能&#xff0c;帮助Kubernetes用户和管理员节省宝…...

ARM HCR_EL2寄存器解析与虚拟化控制

1. ARM HCR_EL2寄存器架构解析HCR_EL2&#xff08;Hypervisor Configuration Register&#xff09;是ARMv8/v9架构中用于控制虚拟化行为的关键系统寄存器。作为Hypervisor的主要控制接口&#xff0c;它定义了EL2对低特权级&#xff08;EL1/EL0&#xff09;执行环境的监控策略。…...

OpenManus-RL:基于强化学习优化大语言模型智能体决策的完整框架

1. 项目概述与核心价值如果你正在关注大语言模型智能体领域&#xff0c;尤其是如何让模型从“会聊天”进化到“会做事”&#xff0c;那么OpenManus-RL这个项目绝对值得你投入时间研究。它不是一个简单的工具库&#xff0c;而是一个由UIUC-Ulab和MetaGPT团队联合发起的、以直播形…...

VSCode写Verilog效率翻倍:除了语法检查,再教你用Python插件自动生成模块例化

VSCode写Verilog效率翻倍&#xff1a;Python插件自动化实战指南 在FPGA开发中&#xff0c;Verilog代码的重复性劳动往往消耗工程师大量时间。我曾在一个图像处理项目中被模块例化折磨得焦头烂额——手动编写30多个相同结构的FIFO例化代码&#xff0c;不仅容易出错&#xff0c;后…...

Go语言构建高效命令行工具集:从设计到工程化实践

1. 项目概述&#xff1a;一个“好用的”开源工具集最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的仓库&#xff0c;叫ImGoodBai/goodable。光看这个名字&#xff0c;就透着一股子“实用主义”的气息——“好用的”。作为一名常年混迹于开源社区&#xff0c;喜欢折腾各种工…...

BetterGI自动化工具:每天为原神玩家节省2小时

BetterGI自动化工具&#xff1a;每天为原神玩家节省2小时 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 …...

PixelAnnotationTool:破解语义分割标注效率瓶颈的智能解决方案

PixelAnnotationTool&#xff1a;破解语义分割标注效率瓶颈的智能解决方案 【免费下载链接】PixelAnnotationTool Annotate quickly images. 项目地址: https://gitcode.com/gh_mirrors/pi/PixelAnnotationTool 在计算机视觉领域&#xff0c;高质量的语义分割数据标注是…...

为OpenClaw智能体工作流配置持久化的大模型服务支持

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw智能体工作流配置持久化的大模型服务支持 在构建基于OpenClaw的智能体工作流时&#xff0c;一个稳定、可靠的后端大模型…...

如何快速找回压缩包密码:ArchivePasswordTestTool完整使用指南

如何快速找回压缩包密码&#xff1a;ArchivePasswordTestTool完整使用指南 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经遇到过…...

DeFi预测市场套利机器人:延迟套利与结构性对冲策略详解

1. 项目概述&#xff1a;在2.7秒的缝隙中寻找确定性如果你在DeFi世界里寻找一种“低风险、高确定性”的套利机会&#xff0c;那么Polymarket这类预测市场可能是一个被低估的宝藏。这个项目&#xff0c;genoshide/polymarket-arbitrage-trading-bot&#xff0c;本质上是一个高度…...