arp是什么(arp中文)

第一次从网络分层的角度认识ARP,我们知道在第二层网络中,使用MAC地址进行传输,MAC地址作为数据链路层的设备标识 。
双层网络
在三层网络中,IP地址用于传输,IP地址作为网络层的设备标识 。
三层网络
我们也知道,容易记忆的域名通过DNS解析成IP地址,有了IP地址,你就可以在网络上找到你的目的地 。
域名服务器(Domain Name Server)
IP地址通过ARP,得到MAC地址 。有了MAC地址,数据就可以在物理网络上传输 。
空袭预防措施
什么是ARP?
ARP是地址解析协议 。根据设备的IP地址,查询MAC地址对应的协议 。主机通过ARP找到MAC地址后,会在ARP缓存表中添加映射表项,即IP地址和MAC地址的映射表项 。
ARP表
举个栗子:想去腾讯总部(IP地址),不知道具体位置(MAC地址) 。这时候我可以通过导航软件(ARP)找到腾讯塔 。
腾讯大厦
ARP 原理ARP是怎么知道MAC地址的?简单来说,ARP通过ARP请求和ARP响应报文确定MAC地址 。
ARP消息
假设主机A向同一网段上的主机B发送数据 。主机A的IP地址是10.0.0.1,主机B的IP地址是10.0.0.2,主机C的IP地址是10.0.0.3 。他们不知道彼此的MAC地址 。ARP地址解析过程如下:
ARP解析过程
主机 A 首先查看自己的 ARP 表(即 ARP 缓存表),确定是否有主机 B 的 IP 地址对应表项 。如果有,则直接使用表项中的 MAC 地址进行封装,封装成帧后发送给主机 B。
主机查看ARP表
如果主机 A 的 ARP 表没有对应的表项,就发送一个广播帧,源 IP 和源 MAC 地址是主机 A ,目的 IP 地址是主机 B ,目的 MAC 地址是广播 MAC 地址,即 FFFF-FFFF-FFFF。这就是 ARP 请求报文 。
ARP请求
ARP 请求是广播报文,同一个网段的所有主机都能收到 。只有主机 B 发现报文中的目的 IP 地址是自己,于是主机 B 发送响应报文给主机 A ,源 MAC 地址和源 IP 地址是主机 B ,目的 MAC 地址和目的 IP 地址是主机 A ,这个报文就叫 ARP 响应报文 。同时,主机 B 的 ARP 表记录主机 A 的映射关系,即主机 A 的 IP 地址和 MAC 地址的对应关系 。
ARP响应
主机 C 也收到了 ARP 请求报文,但目的 IP 地址不是自己,所以不会进行响应 。于是主机 C 添加主机 A 的映射关系到 ARP 表,并丢弃 ARP 请求报文 。
ARP表
主机 A 收到 ARP 响应报文后,添加主机 B 的映射关系,同时用主机 B 的 MAC 地址做为目的地址封装成帧,并发送给主机 B。
获取ARP MAC地址
如果发送每一条IP消息,都会发出ARP请求来确定MAC地址,这会造成不必要的网络流量 。通常的做法是用ARP表记录ip地址和MAC地址的映射关系 。当主机发送消息时,它将首先检查其ARP表,以确定它是否是设备的已知MAC地址 。如果有,直接用;如果没有,发起ARP请求获取 。然而,缓存有一个特定的术语 。ARP条目在老化时间内有效,如果在老化时间内未使用,该条目将被删除 。
ARP缓存
ARP条目分为动态ARP条目和静态ARP条目:
动态 ARP 表项由 ARP 动态获取,因此在网络通信中,无需事先知道 MAC 地址,只要有 IP 地址即可 。如果老化时间内未被使用,表项就会被自动删除 。静态 ARP 表项是手工配置,不会老化 。静态 ARP 表项的优先级高于动态 ARP 表项,可以将相应的动态 ARP 表项覆盖 。
ARP条目类型
代理 ARPARP广播消息将被路由器隔离 。当没有默认网关,不同网段的主机互相通信时,连接这两个网络的路由器可以响应这个ARP请求 。这个过程称为代理ARP 。
代理arp
主机A和另一个网段的主机B通信,主机A直接发送ARP请求解析主机B的MAC地址 。运行代理ARP的路由器收到ARP请求后,在20.0.0.0网段而不是主机A上发送ARP请求,解析出主机b的地址 。
代理ARP请求
主机B收到路由器的ARP请求,发出ARP响应报文,通知自己其MAC地址为2222-2222-2222 。路由器收到ARP响应后,也向主机A发送ARP响应,但目的MAC地址是10.0.0.0网段连接的端口MAC地址是1010-1010-1010 。主机A收到报文后,会在ARP表中添加一个IP地址为20.0.0.1、MAC地址为1010-1010-1010的映射表条目 。
代理ARP响应
因此,主机A会将主机B的所有数据发送到路由器,路由器会将其转发到主机B 。反之亦然,达拉斯到礼堂
代理ARP功能屏蔽了分离的网络,主机无需修改IP地址和子网掩码即可与现有网络通信 。让用户像在同一个网络上一样使用它 。ARP用在主机没有默认网络或任何路由的网络上,通常是不支持设置子网掩码的老设备 。但是代理ARP会转发ARP广播报文,导致网络效率低,不适合大规模网络 。


推荐阅读