ARP协议


前言:当网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址),IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路层进行发送,数据帧必须要包含目的MAC地址,因此发送端必须获得目的端的MAC地址。通过目的IP地址来获取目的MAC地址的过程是由ARP协议来实现的。本篇文章主要介绍了一下ARP的相关概念。
在这里插入图片描述

1. 工作原理

(任何一个网络节点计算机)主机A缓存中存在一个ARP缓存表(映射关系表),纪录的是某一个IP地址和某一个MAC地址的映射关系(需要去往哪个IP地址时找出对应的MAC地址,再将MAC地址放到帧头中进行封装).ARP缓存表默认为空,若arp缓存表为空,网卡驱动就会自动发送一个arp请求报文(广播报文),对端主机收到报文后就会回应一个arp报文(单播报文),里面包含了源目IP地址,源目MAC地址

静态映射:创建一个表,存储逻辑地址和物理地址的关联,然后将网络上的每个主机都存储在这个表,缺点是映射表必须周期的更新,这样就增加了网络的开销

动态映射:地址解析协议ARP和逆向地址解析协议RARP
ARP: 32Bit —> 48Bit
RARP: IP地址<— MAC地址

ARP负责完成逻辑地址向物理地址的动态映射,将32位逻辑地址(IP地址)转化为48位的物理地址(MAC地址)

2. ARP数据包格式

ARP封装在以太网帧中

在这里插入图片描述
在这里插入图片描述
路由器不会转发ARP报文,MAC地址只能在同一个网段内获得
IP和MAC的映射关系不会永久存在,超时之后就会删除

其中,每个字段的含义如下。
• 硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为 1。
• 协议类型:表示要映射的协议地址类型。它的值为 0x0800,表示 IP 地址。
• 硬件地址长度和协议长度:分别指出硬件地址和协议的长度,以字节为单位。对于以太网上 IP 地址的ARP请求或应答来说,它们的值分别为 6 和 4。
• 操作类型:用来表示这个报文的类型,ARP 请求为 1,ARP 响应为 2,RARP 请求为 3,RARP 响应为 4。
• 发送方 MAC 地址:发送方设备的硬件地址。
• 发送方 IP 地址:发送方设备的 IP 地址。
• 目标 MAC 地址:接收方设备的硬件地址。
• 目标 IP 地址:接收方设备的IP地址

3. 代理ARP(Proxy ARP)

简单解释就是找一个中间的代理来转发arp请求报文,用路由器的网关来做一个ARP代理,arp请求报文发送给代理arp再发送到其它网段的主机,同样其它网段的arp响应报文再由代理arp发送给主机(源目主机认为发过来的MAC地址就是对方的而不是网关的)

代理ARP功能屏蔽了分离的物理网络这一事实,使用户使用起来,好像在同一个物理网络上。
代理ARP分为普通代理ARP和本地代理ARP,二者的应用场景有所区别:
普通理ARP的应用环境为:想要互通的主机分别连接到设备的不同三层接口上,且这些主机不在同一个广播域中。
本地代理ARP的应用环境为:想要互通的主机连接到设备的同一个三层接口上,且这些主机不在同一个广播域中

代理ARP的前提条件(源目双方IP地址在同一网段才能执行代理):
①:没有配置网关
②:需要一个特定的条件将两个不同网段的IP地址理解成同一网段的IP地址

4. 免费ARP

用来检测IP地址是否冲突,源目IP地址都是自己本身的(请求自己IP地址的MAC地址)
当IP地址改变时就会产生免费ARP(连续发三个,每秒一个)

设备通过对外发送免费ARP报文来实现以下功能:
确定其它设备的IP地址是否与本机的IP地址冲突。当其它设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址相同,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
设备改变了硬件地址,通过发送免费ARP报文通知其它设备更新ARP表项。

5. ARP相关命令

arp-a:查看缓存表
arp-d:清理缓存表
display mac-address:路由器上查看arp缓存表
display mac-address aging-time:查看老化时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值