Linux 网络基础之数据链路层(十四)ARP协议及原理,ARP欺骗

目录

一、ARP协议

ARP协议定位

ARP基本原理

ARP数据报格式

二、ARP欺骗

步骤一:正常通信状态

步骤二:恶意主机发起双向

步骤三:恶意主机成为通信中间人

三、总结


上一篇文章我们详细讲解了以太网,包括局域网和 MAC 地址的相关内容,本片文章将讲解 ARP 协议,完成网络通信的最后一个闭环。

一、ARP协议

所有跨网段的网络通信,拆成每一段/每一跳,到最后都是同一个局域网内的通信

在网络通信中,数据需要从上到下逐层封装传输,最终在数据链路层必须依靠 MAC 地址完成局域网内的交付,而我们只能在网络层拿到 IP 地址,这里就出现了一个关键缺口。

第一种场景:当通信目标主机 IP 和本机不在同一网段时,我们没法直接发给目标主机,只能先查路由表,找到下一跳路由器的 IP 。但即便知道了下一跳 IP,要在局域网里把数据发过去,还是必须拿到这台路由器的MAC 地址,否则无法封装 MAC 帧、无法交付。

第二种场景:报文经过多跳路由,终于到达目标主机所在的局域网,此时路由器只知道目标主机的 IP,却不知道它的 MAC 地址,同样没法在局域网里精准找到这台主机、完成最后一跳交付。

整条传输链路都是如此:每经过一台路由器,都要先查路由表得到下一跳 IP,再确认双方是否在同一网段,接着必须把 IP 转成 MAC,才能封装数据继续转发。如果没有 IP 到 MAC 的转换,数据链路层就无法识别接收方,整个传输链条就会断掉。

所以,局域网内必须有一种协议,专门负责把已知的 IP 地址解析成对应的 MAC 地址 ,用来完成逐跳转发和最后交付,这个协议就是ARP 地址解析协议

我们已经通过路由表查到了下一个路由器的 IP 地址,为什么不能把报文直接发给路由器,而是先要知道它的 MAC 地址呢?

原因很简单,路由表管的是网络 IP 层,真正在局域网里传送数据的是数据链路层 (以太网/MAC),两层分工不一样。路由表查到下一跳 IP,只是告诉我们 "逻辑上要发给这个 IP";但报文最终要在局域网里传输,必须封装成以太网帧,而以太网帧只认 MAC 地址,不认 IP 地址。

同样数据链路层也看不懂 IP 地址,它只能识别源 MAC、目的 MAC,只能靠 MAC 地址判断这个帧该发给谁。所以就算我们知道了下一跳路由器的 IP 地址,也没法直接发,必须先通过 ARP 地址解析查到这个路由器 IP 地址对应的 MAC 地址,把 MAC 填进帧头,链路层才能把数据真正送到下一跳路由器的网卡上。

我们再重新梳理一下 : 也就是最开始在网络 IP 层 ,我们已经拿到数据报文了,也通过当前主机的路由表查到了下一跳路由器的 IP 地址 ,知道逻辑上要发给谁。但网络层往下交付,必须交给数据链路层并封装成MAC 帧 ,而以太网 MAC 帧只认 MAC 地址、不认 IP 地址,因为它需要物理上的目标地址才能在局域网里传输。

所以我们必须把我们已经知道的下一跳路由器的 IP 地址转化成对应 MAC 地址 ,这个转换就是 ARP 协议做的事。拿到 MAC 地址后,数据链路层把源 MAC、目的 MAC封装进帧头,再把 IP 报文包在里面。这时我们就同时拥有:

  • 网络层:下一跳 IP(用来路由选路)
  • 数据链路层:下一跳 MAC(用来局域网实际投递)

之后就能把封装好的 MAC 帧,在局域网里精准转发给下一跳路由器了。


这里再补充一下路由表的相关知识:

我们日常使用的电脑、手机等主机,和路由器一样,内部同样拥有路由表 ,并不是只有路由器才具备路由功能。主机的路由表全程只记录网络层 IP 地址相关的路由信息,不会存储 MAC 地址,它的核心任务就是判断:收到的报文该从本机哪个网卡发出、下一跳该转发给哪个 IP 地址。

主机判断目标主机是否与自己同网段、确定下一跳 IP 的逻辑是依靠本机 IP 地址 + 子网掩码 进行计算比对:当主机要发送报文时,会先用子网掩码,分别对自身 IP 和目标 IP 做运算,判断二者是否处于同一局域网网段。如果目标主机和本机处于同一个网段 ,路由表会匹配到直连路由,报文直接在当前局域网内交付,主机通过 ARP 查询目标 IP 对应的 MAC 地址,封装成 MAC 帧后,直接发给局域网内的目标主机。如果目标 IP不在同一网段 ,主机路由表会匹配默认路由,也就是当前发送主机所在局域网的出入口路由器(网关)。当本机路由表里所有网段规则都匹配不到目标 IP 时,就会把报文统一发给这个默认网关(出入口路由器),由出入口路由器继续向外转发,去外网寻找目标主机。因此这个默认路由里记录的 IP,就是局域网网关、也就是出入口路由器的内网 IP。

路由表只完成网络层的 IP 选路,确定报文该交给哪一个 IP,而不会处理数据链路层的地址。至于这个下一跳 IP 对应的物理 MAC 地址,路由表并不负责记录,会交给 ARP 协议完成 IP 到 MAC 的地址解析,拿到 MAC 地址后,主机再封装成完整以太网帧,通过网卡真正把数据发送出去。

电脑路由表里记录的是目标网段、下一跳 IP、本机出口网卡,只处理网络层 IP 信息,不存 MAC 地址。路由表来源分为三类:第一,直连路由:电脑配置本机 IP + 子网掩码后,系统自动算出本机所在局域网网段,生成直连路由,表示该网段内所有 IP 都在本地局域网,可直接发送。第二,默认路由:目标网段记为0.0.0.0/0,代表所有路由表中匹配不到的目标 IP,统一交给网关 (出入口路由器内网 IP) 转发,由路由器去往其他网段寻找目标主机。第三,手动静态路由或动态路由协议学习,家用电脑很少用到。整个发包流程是:主机先发数据包查询路由表,确定下一跳 IP;再通过ARP 协议把下一跳 IP 解析成 MAC 地址;最后封装成 MAC 帧交给数据链路层发送。

首先我们来明确一下路由表中 目标网段、下一跳 IP、本机出口网卡 这三个部分的作用:

  1. 目标网段的作用

目标网段用来匹配你要发的目标 IP,判断这条路由规则管不管它。比如你的直连路由目标网段是 192.168.2.0/24,意思就是:凡是目标 IP 属于这个网段,都走这条规则,直接在局域网发;默认路由目标网段是 0.0.0.0/0,意思是:前面所有网段都匹配不上时,所有剩下的 IP 都走这条规则,发给网关。它就是路由表的「筛选条件」,用来决定用哪一条路由。

  1. 下一跳 IP 怎么来的

下一跳 IP不是拆报文现找,是路由表规则里预先写死的:

直连路由:没有下一跳 IP,直接局域网投递;

默认路由:下一跳 IP 固定写出入口路由器内网 IP(如 192.168.2.1);

静态路由:你手动填、或 DHCP / 动态协议下发好的。

你发包时,先拿目标 IP去匹配目标网段,匹配成功后,路由表直接告诉你:下一跳发往这个 IP、从本机这个网卡出去。下一跳 IP 是规则自带的,不是拆包现算。

  1. 本机出口网卡

就是你电脑往外发数据走哪个硬件接口:比如你电脑有有线网卡、无线网卡,路由表会写明:这条路由,从有线网卡发或从无线网卡发。数据最终从这个网卡出去,再封装 MAC 帧、发给下一跳 IP 对应的 MAC 地址。


我们在来看这幅图,用户 A(192.168.2.2)要给用户 B(172.168.2.2)发数据时,会先查自己的路由表。它发现目标 IP 和自己不在同一网段,于是匹配到默认路由,下一跳就是局域网的出入口路由器(192.168.2.1)。接下来,用户 A 通过 ARP 协议,拿到出入口路由器左侧网口的 MAC 地址(macLeft),把数据封装成 MAC 帧,源 MAC 是自己的 macA,目的 MAC 是 macLeft,再把这个帧发送给出入口路由器。

出入口路由器收到数据帧后,会先解封装,拆掉 MAC 帧头,拿到里面的 IP 数据包,再读取其中的目标 IP(172.168.2.2)。出入口路由器再查自己的路由表,判断目标 IP 不在左侧局域网,需要转发到右侧网段。于是,路由器通过 ARP 协议,拿到下一跳设备(或目标主机所在局域网的路由器)的 MAC 地址(这里就是右侧网口 macRight 对应的目标 MAC),把 IP 数据包重新封装成新的 MAC 帧:源 MAC 变成路由器右侧网口的 macRight,目的 MAC 变成目标设备的 MAC,再把这个新帧发往下一跳。

这个过程会在每一台路由器上重复:每到一台设备,都先解封装 MAC 帧,拿到 IP 报文中的目的 IP 地址,再查路由表找到下一跳 IP,然后通过 ARP 拿到对应的 MAC 地址,重新封装 MAC 帧再发送,一站一站接力传递。

直到数据到达用户 B 所在局域网的最后一台出入口路由器。这台路由器查路由表,发现目标 IP (172.168.2.2)和自己的右侧网口(172.168.2.1)在同一网段,于是它直接通过 ARP 协议,查到用户 B 的 MAC 地址(macB),把 IP 数据包封装成源 MAC 为 macRight、目的 MAC 为 macB 的 MAC 帧,直接发送给用户 B。用户 B 收到后,逐层解封装,最终把数据交付给应用层,完成通信。

真正的路由器拥有多个独立网口 ,每个网口可以单独配置不同网段的 IP 地址,分别对接不同的局域网,这也是路由器能够实现跨网段转发的核心前提。路由器不会像交换机一样,对未知数据向所有端口泛洪发送,它的转发逻辑极其精准:当数据包从某一个网口进入路由器后,路由器会解封装数据帧,读取报文的目标 IP 地址,再查询自身路由表。路由表会明确匹配出该目标 IP 对应的唯一出口网口,路由器只会在这个指定网口,通过 ARP 解析对应设备的 MAC 地址、重新封装数据帧并转发数据,绝对不会向自身其他闲置网口发送数据。简单来说,路由器多个网口各司其职,每个网口对应一个独立网段,依靠路由表精准选路,实现不同局域网之间的数据隔离与定向转发。


ARP协议定位

首先我们来明确一下 ARP 协议的定位:

ARP协议是用于局域网通信的协议,它不属于网络IP层,而是属于数据链路层。

虽然属于数据链路层,但是是在MAC帧之上的那一层。因为在数据自上而下封装传输时,我们需要先在网络层确定IP地址,再通过ARP协议完成IP地址到MAC地址的解析转换,拿到目标MAC地址后才能在数据链路层将其封装进MAC帧,继续完成后续的发送流程。

ARP基本原理

我们用下面这个例子来说明 ARP 的基本原理,假设此时主机 A 想知道主机 D 的 MAC 地址。

此时主机 A 只知道主机 D 的 IP 地址,想要获取主机 D 的 MAC 地址,会先在整个以太网中进行广播,全 F(FF:FF:FF:FF:FF:FF)代表广播地址。广播报文里,源 MAC 地址是 macA,目的 MAC 地址为全 F,数据内容询问 "谁是 IP_D",类型字段为 0806(代表 ARP 协议)。这份报文从 macA 发出后,主机 B、C、D 都能收到;所有主机看到目的 MAC 是全 F,识别为广播报文,都会解包并向上交付到上层 ARP 协议处理。

ARP 协议会比对报文中要查询的 IP_D 和本机 IP,若不一致则直接丢弃报文;只有主机 D 识别到查询的 IP_D 正是自己的 IP,知道主机 A 在请求自己的 MAC 地址,于是构建应答报文:目的 MAC 设为 macA,源 MAC 为 macD,类型同样是 0806,数据内容为 "我就是 IP_D,我的 MAC 地址是 macD"。

该应答报文在以太网中发送后,其他主机发现目的 MAC 不是自身地址便直接丢弃,只有主机 A 接收报文;主机 A 解包后,根据类型 0806 向上交付给 ARP 层,提取数据里的 macD 地址,至此主机 A 就获取到了主机 D 的 MAC 地址。

因此 ARP 的基本过程,就是在局域网中先广播查询、后单播应答的过程。

ARP数据报格式

ARP 数据包整体封装在以太网帧中,最前面三个字段属于以太网帧头部,分别是 6 字节以太网目的地址、6 字节以太网源地址、2 字节帧类型;中间承载的是28 字节固定长度的 ARP 请求 / 应答报文,ARP 报文整体作为 MAC 帧的数据有效载荷,向下封装时需要完整加上 MAC 帧的头部与尾部。

ARP 报文固定为 28 字节,而以太网 MAC 帧对有效载荷的最小长度要求是 46 字节,长度不足的部分会通过 PAD 填充补齐。设备识别报文是否为 ARP,依靠以太网帧头部里2 字节的类型字段;接收端分离有效载荷时,依靠 MAC 帧固定的头部(6+6+2 字节)和尾部 4 字节 CRC 校验位完成拆分,再根据帧类型判断协议类型,如果识别为 ARP 协议,就将报文交付给上层 ARP 协议处理。

下面我们来看 28 字节 ARP 请求/应答报文的各个具体字段:

  1. 第一个字段是 2 字节的硬件类型,默认值为 1,代表以太网;

  2. 第二个字段是 2 字节的协议类型,代表要转换的网络地址类型,以太网中一般填 0x0800,表示 IP 地址;

  3. 第三个字段是 1 字节的硬件地址长度,默认值为 6,代表 MAC 地址的长度;

  4. 第四个字段是 1 字节的协议地址长度,默认值为 4,代表 IP 地址的长度,我们可以认为前四个字段是固定不变的。

  5. 第五个是 2 字节的 op 操作字段,op 为 1 时代表 ARP 请求报文,op 为 2 时代表 ARP 应答报文。

  6. 最后四个字段依次是:发送端以太网地址(6 字节)、发送端 IP 地址(4 字节)、目的以太网地址(6 字节)、目的 IP 地址(4 字节)。其中前两个字段是发送方的 MAC 地址与 IP 地址,在发送时就已经提前填写完成,方便接收方应答时识别;后两个是目标主机的 MAC 地址与 IP 地址,发送方在发送 ARP 请求时只知道目标主机的 IP 地址,还不知道它的 MAC 地址,因此目的以太网地址默认填充为全 F。另外需要注意,目的 MAC 地址在以太网首部和 ARP 报文中会各出现一次,在以太网链路中存在冗余,但适配其他类型网络时是必要的。


现在我们把整个通信过程完整梳理:主机 A 要和主机 E 进行通信,但主机 A 只知道主机 E 的 IP 地址 IPE,同时仅清楚自身的 IPA、macA,局域网中每一台主机都具备完整协议栈,并且都拥有独立的 ARP 层。

构建ARP请求:

通信的第一步,是由主机 A 的 ARP 层发起 ARP 请求并构建对应的请求报文。首先按照规范固定填写 ARP 报文的前四个基础字段,然后将 op 操作字段设置为 1,用来标识这是一条 ARP 请求报文;随后填写发送端以太网地址为 macA、发送端 IP 地址为 IPA;由于主机 A 此时还不知道主机 E 的 MAC 地址,因此目的以太网地址填充为全 F,代表待查询,最后将目的 IP 地址填写为主机 E 的 IPE,至此 ARP 请求报文正式构建完成。

虽然 ARP 协议和 MAC 帧同属于数据链路层,但二者存在上下层级关系,接下来需要将 ARP 请求向下交付,进行 MAC 帧的封装。封装时,要在 ARP 请求报文的前方依次添加以太网目的地址、以太网源地址、帧类型这三个字段,在报文末尾添加 CRC 校验字段。其中以太网目的地址依旧填写全 F,代表广播发送;以太网源地址填写为主机 A 的 macA;帧类型设置为 0806,用来标识该帧的数据部分来自上层 ARP 协议。完成以上步骤后,完整的 MAC 帧封装完毕,主机 A 就会将这个 MAC 帧正式在整个局域网中广播发送,以此查询主机 E 对应的 MAC 地址。

进行广播:

主机 A 广播发送的 MAC 帧在局域网中传输后,会被包括主机 B、C、D、E 在内的所有主机接收。以主机 B 为例,它收到 MAC 帧后,会先分离帧的头尾,提取出其中的 ARP 请求报文,再根据帧类型字段 0806,将报文交付给上层的 ARP 层处理。此时主机 B 的 ARP 层会检查 ARP 请求中的目的 IP 地址,发现请求的是 IPE,而非自身的 IPB,便会直接丢弃该请求报文。同理,主机 C、D 等所有非目标主机,都会在自己的 ARP 层丢弃这条 ARP 请求。

当主机 E 收到 MAC 帧时,同样会先解析报头、提取出 ARP 请求并交付给自己的 ARP 层处理。主机 E 的 ARP 层拿到报文后,首先会检查 op 字段,确认这是一个 ARP 请求报文

构建应答:

主机 E 确认请求的 IP 与自身匹配后,就会在自己的 ARP 层构建 ARP 应答报文。首先,ARP 应答报文的前四个字段按规范固定填写,op 字段设置为 2,代表这是 ARP 应答报文;接下来,发送端以太网地址填写主机 E 自身的 macE,发送端 IP 地址填写主机 E 自身的 IPE,因为此时主机 E 是应答的发送方;目的以太网地址填写主机 A 的 macA,目的 IP 地址填写主机 A 的 IPA,这两个信息主机 E 在收到 ARP 请求时,已经从请求报文中获取到了。

构建好 ARP 应答报文后,主机 E 需要将其向下交付给数据链路层,封装成完整的 MAC 帧。封装时,在 ARP 应答报文的前方添加以太网目的地址、以太网源地址、帧类型字段,在报文末尾添加 CRC 校验字段。其中,以太网目的地址为主机 A 的 macA,以太网源地址为主机 E 自身的 macE,帧类型设置为 0806,标识上层数据为 ARP 协议。完成封装后,主机 E 将这个单播 MAC 帧发送到局域网中,直接回复给主机 A。

进行广播:

主机 E 发送的 ARP 应答 MAC 帧在局域网中传输时,局域网内的其他主机也会收到这个帧。当主机 B 收到该 MAC 帧时,会解析帧头和有效载荷,发现帧头中的以太网目的地址是 macA,而不是自己的 macB,便会判断出这不是发给自己的帧,于是直接在 MAC 帧层丢弃这个数据帧,不会再向上交付到 ARP 层。以此类推,除主机 A 外的其他主机,都会在 MAC 帧层直接丢弃该应答帧,和之前 ARP 请求在 ARP 层丢弃的层级不同。

当主机 A 收到这个 MAC 帧后,会先分离报头和有效载荷,发现以太网目的地址正是自己的 macA,确认这是发给自己的帧;接着通过帧类型字段 0806,将数据交付给上层的 ARP 层处理。此时主机 A 的 ARP 层拿到报文后,依旧会先查看 op 字段,发现 op 值为 2,便知道这是一个 ARP 应答报文,对应自己之前发出的 ARP 请求;随后读取 ARP 应答里的发送端以太网地址和发送端 IP 地址,就成功获取到了主机 E 的 macE 和 IPE。至此,主机 A 就完整拿到了主机 E 的 MAC 地址,后续就可以封装普通数据的 MAC 帧,正式向主机 E 发送数据了。

首先,局域网内的任何一台主机,都可能面临两种 ARP 场景:它既可能被其他主机发起 ARP 请求(比如之前例子里被主机 A 查询的主机 E),也可能主动向别人发起 ARP 请求 (比如发起查询的主机 A),并在之后收到对应的 ARP 应答。无论是 ARP 请求还是 ARP 应答,都可以通过报文中的op字段来明确区分,op=1代表请求,op=2代表应答。也正是因为这个原因,主机收到 ARP 报文后,会优先查看op字段,以此判断这是一条请求报文还是应答报文,再决定后续的处理逻辑。

另外需要特别注意的是,ARP 协议的工作对象不只是目标主机,也可以是下一跳路由器。也就是说,我们前面讲的 ARP 流程,在网络传输的每一段局域网链路上都会重复执行 ------ 主机和网关之间、路由器和路由器之间,只要是需要跨网段转发数据,就会通过 ARP 来解析下一跳设备的 MAC 地址,这也是 ARP 协议在整个网络通信链路中无处不在的原因。


ARP 的工作是不是在各自的局域网中是一直发生的?

是的,ARP 协议会在通信路径上的每一段局域网链路中反复执行,每一次跨网段转发都需要重新解析下一跳设备的 MAC 地址,如果每次通信都要完整走一遍 "广播请求 - 单播应答" 的流程,会给整个网络带来不必要的开销,降低传输效率。

为了解决这个问题,**ARP 协议会将解析得到的 IP 与 MAC 地址映射关系,缓存到主机本地的 ARP 缓存表中。**这样,后续需要通信时,主机可以直接从缓存中读取对应的 MAC 地址,无需再发起 ARP 请求,大幅提升了通信效率。不过,ARP 缓存条目并非永久有效,它有固定的超时时间,会定期更新,这是因为 IP 地址和 MAC 地址的映射关系并非一成不变:主机在不同时间、不同顺序接入网络时,路由器分配的 IP 地址可能发生变化,设备的网卡也可能更换,因此需要定时刷新缓存,避免使用过期的映射关系导致通信失败。

不同操作系统的 ARP 缓存超时时间也存在差异,且都不是固定值,会采用动态调整或随机取值的机制:

  • Windows 系统:默认超时时间在 15-45 秒之间,且会根据使用频率动态调整,频繁使用的条目可保留约 10 分钟,不常用的条目约 2 分钟。
  • Linux 系统:默认基准超时时间为 30 秒,实际超时时间会在 15-45 秒的范围内随机取值,同时该超时时间支持手动配置修改。

上图展示了 ARP 缓存表的实际查看方式,同时引出了 RARP 协议的概念。在 Linux 和 Windows 系统中,都可以通过 arp -a命令查看本机的 ARP 缓存表,表中记录了 IP 地址与对应 MAC 地址的映射关系,还会标注该条目的类型是动态还是静态。其中,动态条目是 ARP 协议自动学习并更新的,会随着超时时间被刷新;静态条目则是手动配置或系统预留的固定映射,不会自动过期。

而 ARP 协议的本质是通过 IP 地址查询对应的 MAC 地址 ,如果反过来,需要通过 MAC 地址查询对应的 IP 地址,对应的就是逆地址解析协议 RARP。不过 RARP 协议现在已经几乎被淘汰,很少在现代网络中使用,只需要简单了解它的存在和作用即可。

二、ARP欺骗

ARP 欺骗的核心原理,是利用ARP 缓存只会保留最新 IP-MAC 映射 的漏洞,由恶意主机伪造 ARP 应答报文,篡改目标设备的 ARP 缓存表,从而实现中间人攻击。结合图中主机 A、路由器 R、恶意主机 M 的场景,完整过程分为三步:

步骤一:正常通信状态

正常通信状态在攻击发起前,整个网络处于正常通信状态。主机 A 的 ARP 缓存中,记录着网关路由器 R 的 IP 地址ipR与真实 MAC 地址macR的映射关系;同时路由器 R 的 ARP 缓存中,也正确记录着主机 A 的 IP 地址ipA与真实 MAC 地址macA的对应关系。此时主机 A 访问外部网络的所有流量,都会正常发送给路由器 R,路由器也会将回包正常转发给主机 A,二者通信完全不受干扰。

步骤二:恶意主机发起双向

伪造 ARP 应答恶意主机 M 开始执行攻击,它向主机 A 和路由器 R大量伪造发送虚假 ARP 应答报文。一方面,恶意主机 M 向主机 A 发送伪造 ARP 应答,谎称 "我是网关 ipR,我的 MAC 地址是 macM";另一方面,它又向路由器 R 发送伪造 ARP 应答,谎称 "我是主机 ipA,我的 MAC 地址是 macM"。主机 A 收到虚假应答后,会更新自身 ARP 缓存,将网关 ipR 对应的 MAC 地址从真实的macR改为恶意主机的macM;路由器 R 收到虚假应答后,也同步更新 ARP 缓存,将主机 ipA 对应的 MAC 地址从真实的macA改为macM。至此,主机 A 和路由器 R 的 ARP 缓存均被篡改。

步骤三:恶意主机成为通信中间人

完成缓存篡改后,主机 A 发给路由器 R 的所有流量,都会被错误发送至恶意主机 M;而路由器 R 回传给主机 A 的所有流量,也会被错误转发到恶意主机 M。恶意主机 M 会接收双方全部通信数据,可查看、篡改流量内容,再将数据转发给真实目标设备,主机 A 与路由器 R 完全察觉不到异常。原本主机 A 与路由器 R 的直接通信,全程被恶意主机 M 监听、控制,恶意主机成功成为二者之间的中间人,完成 ARP 欺骗攻击。

三、总结

ARP协议是解决IP地址到MAC地址转换的关键技术。当主机需要跨网段通信时,路由表只能提供下一跳IP地址,而实际数据传输需要MAC地址。ARP通过广播查询和单播应答机制完成地址解析:发送方广播ARP请求,目标主机单播回应,从而建立IP-MAC映射关系。这个映射会被缓存以提高效率,但会定期更新以防地址变更。值得注意的是,ARP协议存在安全漏洞,可能遭受ARP欺骗攻击,恶意主机通过伪造ARP应答篡改ARP缓存,实现中间人攻击。理解ARP协议的工作原理对网络通信和网络安全都至关重要。

谢谢大家的观看!

相关推荐
小狮子&3 小时前
ubuntu2604无法共享文件夹问题解决
linux·运维·服务器
biter down3 小时前
3:VMware Workstation 安装 Ubuntu 22.04 超详细教程
linux·运维·ubuntu
TechWayfarer3 小时前
查IP归属地接入实战:保险理赔如何做动态风险监控与预警
网络·python·tcp/ip·安全·flask
曾阿伦3 小时前
netcat / ncat / socat 用法详解与示例
linux·http·信息与通信
Benszen3 小时前
Secret详解
linux·运维·服务器
Resurgence_zc4 小时前
openGauss 资源池化主备页面交互流程梳理
网络·交互·数据库开发
Dlrb12114 小时前
Linux网络编程-网络基础概念(IP, UDP协议)
linux·服务器·网络·网络基础·端口号·ip协议·udp协议
shushangyun_4 小时前
汽车服务行业B2B平台+AI解决方案哪家专业:2026年最新测评
java·运维·网络·数据库·人工智能·汽车
一RTOS一4 小时前
东土科技:智能制造系统高性能工业网络解决方案揭榜挂帅项目正式验收达标
网络·科技·制造
森G4 小时前
64、完善聊天室程序(TLV拓展)---------网络编程
网络·c++·tcp/ip