ARP协议简介

article/2025/9/25 1:31:54

           
    ARP
,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。

数据链路如以太网或令牌环网都有自己的寻址机制,这是使用数据链路的任何网络层都必须遵守的,IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址(MAC地址)传输以太网数据包,设备驱动程序从不检查IP数据报中的目的IP地址。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为目的硬件地址(MAC地址),以保证通信的顺利进行。

1 ARP帧结构
  ARP帧的具体结构,如图1 ARP帧结构 所示。 
               

图1 ARP帧结构

以太网帧头中的前两个字段是以太网的目的地址和源地址。目的地址为全1时为广播地址。

两个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0X0806.
  硬件类型字段:指明了发送方想知道的硬件地址的类型,以太网的值为1;

协议类型字段:表示要映射的协议地址类型,IP为0X0800;
  硬件地址长度和协议地址长度:指明了硬件地址和高层协议地址的长度,这样ARP帧就可以在任意硬件和任意协议的网络中使用。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
  操作字段:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
  发送端的以太网地址:源主机硬件地址,6个字节;
  发送端IP地址:发送端的协议地址(IP地址),4个字节;
  目的以太网地址:目的端硬件地址,6个字节;
  目的IP地址:目的端的协议地址(IP地址),4个字节。

2 ARP的工作原理  

    在硬件层次上进行的数据帧交换必须有正确的接口地址(即硬件地址),但是,TCP/IP有自己的地址:32 bit的IP地址,知道主机的IP地址并不能让内核(如以太网驱动程序)发送一帧数据给主机,内核必须知道目的端的硬件地址才能发送数据,ARP的功能是在32 bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。从逻辑Internet地址到对应的物理硬件地址需要进行翻译,这就是ARP的功能。

ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项都有一个默认的生存时间,起始时间从被创建时开始算起。

ARP高速缓存中的表项一般都要设置超时值,完整的表项(如IP地址有相应的MAC地址对应的表项)设一个超时值(例如20分钟),不完整的表项(IP地址没有相应的MAC地址对应,即不存在此主机的表项)设置另外一个超时值(例如3分钟)。如果表项被再次使用时未超时,它的超时值会被重新设定为默认值;如果表项被再次使用时已超时,表明这个表项不可信,需要重新发送ARP请求更新此表项。

在Windows操作系统中,可以在:开始->运行,输入cmd,进入控制台,执行arp/?可以查看ARP的所有命令。
  ARP的工作原理如下:
  1、首先,每台主机都会在自己的ARP高速缓冲区 (ARP Cache)中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。
  2、当源主机需要将一个数据包发送到目的主机时,会首先检查自己 ARP列表中是否存在该IP地址对应的MAC地址,如果有﹐就直接使用此MAC地址;如果没有,主机就先将目标主机的IP地址与自己的子网掩码进行""操作,以判定目标主机与自己是否位于同一网段内。假如目标主机与自己在同一网段内,就向
本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址;如果目的主机在一个远程网络上,那么就通过路由器等路由设备转发此ARP请求到远程网络中广播。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。
  3、源主机和目的主机在一个网络内的情况下:网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP和自己的IP地址是否一致。如果不相同就不回应,但是该主机仍然会检查自己的ARP高速缓存,如果此请求的源IP地址已经在高速缓存中,那么就用ARP请求帧中的发送端硬件地址对高速缓存中相应的内容进行更新;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉它需要查找的MAC地址;

如果源主机和目的主机不在一个网络内, ARP请求将由路由器转发至其它网络。如果能找到目的主机,就将此路由器的MAC地址当作目的主机的网络地址发给源主机,以后源主机和目的主机之间的信息交换都要经过此路由器,这个路由器就被称作ARP代理;如果没有找到目的主机,在ARP高速缓存中会产生一条不完整的表项记录下来。
  4、源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。

免费ARP

    免费ARP是指主机发送ARP查找自己的MAC地址。这通常发生在系统引导期间进行接口配置的时候。

    免费ARP有两方面的作用:

1、 一个主机可以通过它来确定另一个主机是否设置了相同IP地址。主机并不希望对此请求有一个回答。但是,如果收到一个回答,它会在日志上产生一个错误消息。这样就可以警告系统管理员,某个系统配置有误。

2、 如果发送免费ARP的主机正好改变了硬件地址(例如:换了一块网卡)那么这个ARP请求可以使其它主机高速缓存中旧的硬件地址进行相应的更新。

4 ARP欺骗

    ARP欺骗是指通过一定的手段使自己拥有其它的身份,从而达到欺骗的目的。ARP协议的工作原理决定ARP欺骗只会存在于局域网内。

ARP欺骗主要分为二种,一种是对路由器ARP表的欺骗;另一种是对内网主机的网关欺骗。 
     
第一种ARP欺骗的原理是―――截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断通知路由器,使真实的地址信息无法保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常主机无法收到信息。

第二种ARP欺骗的原理是―――冒充网关。它的原理是冒充网关,不停的向网络中发送构造好的广播ARP帧,让其它主机的ARP高速缓存中保存的网关的IP地址对应的MAC地址是本机的MAC地址,让被欺骗的主机向本机发数据,本机就可以截获这些数据,如果本机向外转发这些数据,那些被欺骗的主机感觉一切正常,它们感觉不到数据已经被截获了;本机如果不转发这些数据,那些被欺骗的主机就无法对外进行通信了。

当然,还有其它欺骗方式:如欺骗某一台主机、用ARP进行泛洪攻击等。

5 ARP欺骗攻击的防范

1、建立MAC数据库,把局域网内所有网卡的MAC和对应的IP地址记录下来,以便及时查询备案。

2、用监控软件可以监控是否受到ARP攻击。例如网关监听:网关上面使用监控程序截取每个ARP帧,用分析软件分析这些ARP帧。ARP欺骗攻击的帧一般有以下两个特点,满足之一可视为攻击帧:(1)以太网数据包头的源地址、目标地址和ARP数据帧的协议地址不匹配;(2ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库 MAC>IP 不匹配。查看这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道哪台机器在发起攻击了。


http://chatgpt.dhexx.cn/article/uluHpAWO.shtml

相关文章

ARP协议详解,小白易懂

当网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址&am…

ARP 协议工作原理(同网段及跨网段)

目录 一、ARP简介 二、ARP的工作原理 三、ARP协议在同网段工作原理 四、ARP协议在不同网段工作原理 一、ARP简介 ARP全称是“Address Resolution Protocol”(地址解析协议),ARP作用于以太网的环境之中,以太网环境之中数据的传输依赖的是MAC地址并不是…

矩阵分析:特征值分解

矩阵分析:特征值分解 前置知识空间变换伸缩旋转 对称矩阵对称矩阵对角化 正交矩阵向量的基基变换不同基下的向量变换逆矩阵不同基下的空间变换 内积的几何意义 特征值、特征向量特征值分解代码 前置知识 空间变换 伸缩 一个矩阵其实就是一个线性变换,因…

关于矩阵特征值的理解

好久没看矩阵相关的东西,,,都忘光了,,,, 用运动来理解描述矩阵。 如何理解矩阵特征值? - 马同学的回答 - 知乎https://www.zhihu.com/question/21874816/answer/181864044 行列式是…

矩阵特征值求法实例

矩阵特征值 设 A 是n阶方阵,如果存在数m和非零n维 列向量 x,使得 Axmx 成立,则称 m 是矩阵A的一个特征值(characteristic value)或 本征值(eigenvalue)。 矩阵特征值方法 对于矩阵A,由AXλ 0X,λ…

MATLAB中有关矩阵特征值和特征向量的计算

在MATLAB语言中,求矩阵的特征值和特征向量需要用到两个函数:eig()、diag() diag():可生成一个对角矩阵 调用eig函数的格式为: [x,y]eig(A) 其中矩阵y的对角线元素存储的是A的所有特征值,且从小到大排列;而矩阵x的每一…

如何理解矩阵特征值的意义?

如何理解矩阵特征值的意义? 毕业多年,曾经有同事问我该如何理解特征值的意义? 当时,实在羞愧,我一学数学的,真不知该如何回答。 极力回想,也只能以“特征值的求法、步骤…bla…bla…”应付了事, 答非所问,简直了得! 这样的答案教科书里写得清清楚楚,网上Google…

线性代数及其应用:经典矩阵特征值证明

文章目录 前言实对称矩阵正交方阵实斜对称矩阵厄米矩阵正定矩阵相似矩阵投影矩阵反射矩阵Rank-1矩阵逆矩阵矩阵线性变换矩阵的n次方的稳定性e的矩阵次方的稳定性马尔科夫矩阵循环置换特征值分解谱定理Jordan标准型奇异值分解 前言 这里记录一下一些经典矩阵的特征值证明&#x…

数值分析 python_数值分析实验之矩阵特征值(Python代码)

一、实验目的 1.求矩阵的部分特征值问题具有十分重要的理论意义和应用价值; 2.掌握幂法、反幂法求矩阵的特征值和特征向量以及相应的程序设计; 3.掌握矩阵QR分解 二、实验原理 幂法是一种计算矩阵主特征值(矩阵按模最大的特征值)及对应特征向量的迭代方法, 特别是用于大型稀疏…

【机器学习中的数学基础】矩阵特征值、特征向量和特征值分解的几何意义

【机器学习中的数学基础】矩阵特征值、特征向量和特征值分解的几何意义 在《机器学习》西瓜书中的第十章提到了“多维缩放”(简称MDS)方法,该方法是一种经典的的降维方法。此方法的目标是获得样本在 d ′ d^{} d′维空间的表示,且…

python — numpy计算矩阵特征值,特征向量

文章目录 python — numpy计算矩阵特征值,特征向量一、数学演算二、numpy实现 转载请备注原文出处,谢谢:https://blog.csdn.net/pentiumCM/article/details/105652853 python — numpy计算矩阵特征值,特征向量 一、数学演算 示例…

利用矩阵特征值求解多项式的根

在PnL方法求相机位姿,Point—to—Line方法的点云匹配问题中,会将其中某一个参数的求解建模成求一个多项式的根。如下式所示: (1) 那么求解这样的一个多项式的根应该怎么做呢?参考文献1告诉我们可以利用矩阵特征值方法来求解&…

计算二阶矩阵特征值的技巧

1.计算二阶矩阵特征值的技巧 笔记来源:计算二阶矩阵特征值的妙计 1.1 平均特征值 1.2 特征值的积 1.3 求解特征值 根据以上两点,求出特征值 m m m 为平均特征值 λ 1 λ 2 2 \frac{\lambda_1\lambda_2}{2} 2λ1​λ2​​(两个特征值 λ…

矩阵特征值和特征向量详细计算过程

1.矩阵特征值和特征向量定义 A为n阶矩阵,若数λ和n维非0列向量x满足Axλx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。式Axλx也可写成( A-λE)x0,并且|λE-A|叫做A 的特征多项式。当特征多项式等于0的时候&#x…

从零开始学数据分析之——《线性代数》第五章 矩阵的的特征值

5.1 矩阵的特征值与特征向量 5.1.1 矩阵的特征值与特征向量 定义:设A是n阶方阵,若对于数,存在非零列向量,使得 则称为矩阵A的一个特征值,为矩阵A的对应于特征值的特征向量 定义:称为A的特征多项式&#x…

理解矩阵和特征向量的本质

理解矩阵和特征向量的本质 原文地址 最近复习矩阵论中,又是一堆定理和证明突然发现学了这么常时间的矩阵论、线性代数,记住的只是一堆莫名其妙的定理而已,一些本质的东西都没有搞清楚。 比如,为什么要有矩阵,它仅仅是…

机器学习(一):线性回归之最小二乘法

文章目录 专栏导读1、线性回归简介2、最小二乘法原理3、实战案例专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。 ✍ 本文录入于《机器学习案例》,本专栏精选了经典的机器学习算法进行讲解,针对大学生、初级数据分析工程师精心打造,对…

回归评价指标:均方误差根(RMSE)和R平方(R2)

转载自:http://blog.csdn.net/lsldd/article/details/41251583 做回归分析,常用的误差主要有均方误差根(RMSE)和R-平方(R2)。 RMSE是预测值与真实值的误差平方根的均值。这种度量方法很流行(N…

回归标准差和残差平方和的关系_用回归来理解方差分析(三):Ⅰ型平方和与Ⅲ型平方和...

阅读提示 为了更好理解这篇文章,你可能需要了解:两因素方差分析 平方和的分解 方差分析模型 虚拟变量 推荐先阅读 文中涉及到的代码只是为了验算,如果不熟悉代码的同学可以忽略,直接看结果就行。也可以自己动手尝试用SPSS验算。 1…

回归中的相关度和R平方值 学习笔记

回归中的相关度和R平方值 自变量x和因变量y的相关度 1.皮尔逊相关系数(Pearson Correlation Coefficient): 1.1衡量两个值线性相关强度的量 1.2取值范围[-1,1]: 正向相关: >0,负向相关: <0,无相关性: 0 公式&#xff1a;correlation&#xff0c; correlationvariance(Co…