【计算机网络】ARP的作用及原理

ARP协议是网络通信中用于将IP地址转换为硬件地址的关键机制。当主机需要通信时,它首先查看ARP缓存,存在则直接发送,否则广播ARP请求。若目标在同一网段,直接获取MAC地址;不同网段则通过网关转发。ARP表包括动态和静态表项,前者可更新、可老化,后者手动配置且不可老化,增强了网络安全性。
摘要由CSDN通过智能技术生成

1. ARP的作用

在网络 通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。

APR 就是实现这个功能的协议。

地址解析协议 ARP 作用:在主机 ARP 高速缓存中存放一个从 IP 地址到硬件地址的映射表,并且这个映射表经常动态更新。每一台主机都设有一个 ARP 高速缓存(ARP Cache),里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表(并且每一个映射地址都设置有生存时间)。

2. ARP 地址解析过程

使用 ARP 的四种典型情况:

在这里插入图片描述

(1)发送方是主机(如H1),要把 IP 数据报发送到同一个网络上的另一台主机(如H2)。这时H1先查看自身 ARP 缓存表是否有 H2 硬件地址,有的话则直接发送。若没有则发送 ARP 请求分组(在网1上广播),找到目的主机 H2 的硬件地址。
(2)发送方是主机(如H1),要把 IP 数据报发送到另一个网络上的一台主机(如H3或H4)。这时发送 ARP 请求分组(在网1上广播),找到网1上的一个路由器 R1 的硬件地址。剩下的工作由路由器 R1 来完成。R1 要做的事情是下面的(3)或(4)。
(3)发送方是路由器(如R1),要把 IP 数据报转发到与 R1 连接在同一个网络(网2)上的主机(如H3)。这时 R1 发送 ARP 请求分组(在网2上广播),找到目的主机 H3 的硬件地址。

注意:发送给R1的是报文,不是arp查询请求

(4)发送方是路由器(如R1),要把 IP 数据报转发到网3上的一台主机(如H4)。H4与 R1 不是连接在同一个网络上。这时 R1 发送 ARP 请求分组(在网2上广播),找到连接在网 2 上的一个路由器 R2 的硬件地址。剩下的工作由这个路由器 R2来完成

上面是如何查找MAC 地址,下面结合消息发送,完整的场景如下。

2.1 同一个网段下发送信息

简单来说,先从缓存中查找mac,有就直接+mac并发送消息;没有就查找mac,找到后再+mac并发送消息。

假设主机A和B在同一个网段,主机A要向主机B发送信息。如 图 1-2 所示,具体的地址解析过程如下:

  • (1) 主机 A 首先查看自己的 ARP 表,确定其中是否包含有主机 B 对应的 ARP 表项。如果找到了对应的 MAC 地址,则主机 A 直接利用 ARP 表中的 MAC 地址,对 IP 数据包进行帧封装,并将数据包发送给主机 B。

  • (2) 如果主机 A 在 ARP 表中找不到对应的 MAC 地址,则将缓存该数据报文,然后以广播方式发送一个 ARP 请求报文。 ARP 请求报文中的发送端 IP 地址和发送端 MAC 地址为主机 A 的 IP地址和 MAC 地址,目标 IP 地址和目标 MAC 地址为主机 B 的 IP 地址和全 0 的 MAC 地址。由于 ARP 请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机 B)会对该请求进行处理。

  • (3) 主机 B 比较自己的 IP 地址和 ARP 请求报文中的目标 IP 地址,当两者相同时进行如下处理:将 ARP 请求报文中的发送端(即主机 A)的 IP 地址和 MAC 地址存入自己的 ARP 表中。之后以单播方式发送 ARP 响应报文给主机 A,其中包含了自己的 MAC 地址。

  • (4) 主机 A 收到 ARP 响应报文后,将主机 B 的 MAC 地址加入到自己的 ARP 表中以用于后续报文的转发,同时将 IP 数据包进行封装后发送出去。

在这里插入图片描述

2.2 不在同一网段

当主机 A 和主机 B 不在同一网段时,主机 A 就会先向网关发出 ARP 请求, ARP 请求报文中的目标IP 地址为网关的 IP 地址。当主机 A 从收到的响应报文中获得网关的 MAC 地址后,将报文封装并发给网关。如果网关没有主机 B 的 ARP 表项,网关会广播 ARP 请求,目标 IP 地址为主机 B 的 IP地址,当网关从收到的响应报文中获得主机 B 的 MAC 地址后,就可以将报文发给主机 B;如果网关已经有主机 B 的 ARP 表项,网关直接把报文发给主机 B。

注意:发送给网关的是报文,不是arp查询请求。

3.ARP 表

设备通过 ARP 解析到目的 MAC 地址后,将会在自己的 ARP 表中增加 IP 地址到 MAC 地址的映射表项,以用于后续到同一目的地报文的转发。

ARP 表项分为动态 ARP 表项和静态 ARP 表项。

3.1 动态 ARP 表项

动态 ARP 表项由 ARP 协议通过 ARP 报文自动生成和维护,可以被老化,可以被新的 ARP 报文更新,可以被静态 ARP 表项覆盖。当到达老化时间、接口 down 时会删除相应的动态 ARP 表项。

3.2 静态 ARP 表项

静态 ARP 表项通过手工配置和维护,不会被老化,不会被动态 ARP 表项覆盖。

配置静态 ARP 表项可以增加通信的安全性。静态 ARP 表项可以限制和指定 IP 地址的设备通信时只使用指定的 MAC 地址,此时攻击报文无法修改此表项的 IP 地址和 MAC 地址的映射关系,从而保护了本设备和指定设备间的正常通信。

静态 ARP 表项分为短静态 ARP 表项和长静态 ARP 表项:

  • 在配置长静态 ARP 表项时,除了配置 IP 地址和 MAC 地址项外,还必须配置该 ARP 表项所在 VLAN 和出接口。长静态 ARP 表项可以直接用于报文转发。

  • 在配置短静态 ARP 表项时,只需要配置 IP 地址和 MAC 地址项。如果出接口是三层以太网接口,短静态 ARP 表项可以直接用于报文转发;如果出接口是 VLAN 虚接口,短静态 ARP 表项不能直接用于报文转发,当要发送 IP 数据包时,先发送 ARP 请求报文,如果收到的响应报文中的源 IP 地址和源 MAC 地址与所配置的 IP 地址和 MAC 地址相同, 则将接收 ARP 响应报文的接口加入该静态 ARP 表项中,之后就可以用于 IP 数据包的转发。

说明:

  • 一般情况下, ARP 动态执行并自动寻求 IP 地址到以太网 MAC 地址的解析, 无需管理员的介入。

  • 当希望设备和指定用户只能使用某个固定的 IP 地址和 MAC 地址通信时, 可以配置短静态 ARP表项,当进一步希望限定这个用户只在某 VLAN 内的某个特定接口上连接时就可以配置长静态ARP 表项。

参考

ARP的作用及原理 参考主体
计算机网络学习
如何根据IP获取对方的MAC地址?ARP协议了解一下 给出ARP消息抓包样例以及包结构的分析

ARP(Address Resolution Protocol)是一种计算机网络协议,用于将网络层的IP地址映射到物理层的MAC地址。它的主要功能是在局域网中根据IP地址获取对应的MAC地址,以便数据的正常传输。 ARP协议的工作原理如下: 当一个主机发送数据到另一台主机时,首先会检查自己的ARP缓存,如果已经有目标主机的IP地址和MAC地址的映射关系,则直接将数据封装成数据帧发送给目标主机。 如果ARP缓存中没有目标主机的映射关系,发送主机就会在局域网内广播一个ARP请求报文,包含目标主机的IP地址。所有的主机都会收到这个请求报文,但只有目标主机会响应。目标主机收到这个ARP请求后,会发送一个ARP响应报文给发送主机,包含自己的IP地址和MAC地址。 当发送主机收到目标主机的ARP响应报文后,就会将这个映射关系添加到自己的ARP缓存中,并将数据封装成数据帧发送给目标主机。 如果在一段时间内没有数据传输,ARP缓存中的映射关系会过期,发送主机再次发送数据时会重新进行ARP请求。 ARP协议的重要性在于它提供了网络层和物理层之间的映射关系,使得IP地址能够正常转换为MAC地址,实现数据的准确传输。但同时也存在一些安全隐患,比如ARP欺骗攻击,攻击者可以伪造IP地址和MAC地址的映射关系,导致数据被发送到错误的目标主机。 综上所述,ARP协议在计算机网络中起着至关重要的作用,通过IP地址和MAC地址的映射关系,实现了网络通信的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值