ARP基本原理
Posted 正在努力中的杨Sir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARP基本原理相关的知识,希望对你有一定的参考价值。
对于文章中出现的任何错误请大家批评指出,一定及时修改。
有任何想要讨论和学习的问题可联系我:944636892@qq.com
发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
ARP报文格式
ARP请求和应答报文格式:
主要字段解释如下:
•Hardware Type:硬件地址的类型。对于以太网,该类型的值为“1”。
•Protocol Type:映射的协议地址类型。对于IP地址,该值为0x0800。
•Hardware Length:硬件地址长度。对于ARP请求或应答来说,该值为6。
•Protocol Length:协议地址长度。对于ARP请求或应答来说,该值为4。
•OP:操作类型。1表示ARP请求,2表示ARP应答。
•Ethernet Address of sender:发送方MAC地址。
•IP Address of sender:发送方IP地址。
•Ethernet Address of destination:接收方MAC地址。
•IP Address of destination:接收方IP地址。
ARP地址解析过程
ARP通过ARP请求和ARP应答这两个过程完成地址解析
- ARP请求过程
HostA和HostB在同一个网段,HostA要向HostB发送信息。
首先,HostA查看自己的ARP表,确定其中包含有HostB对应的ARP表项。
如果找到了HostB对应的MAC地址,则HostA直接利用ARP表中的MAC地址,对IP数据包进行帧分钟,并将数据包 发送给HostB。
如果HostA在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为HostA的IP地址和MAC地址,目标IP地址为HostB的IP地址,目标MAC地址为全0的MAC地址。
由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即HostB)会对该请求进行处理 - ARP应答过程
HostB比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:
将ARP请求报文中的发送端(即HostA)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文发送给HostA,其中包含了自己的MAC地址。HostB向HostA发出一个包含其MAC地址和ARP响应报文
HostA收到ARP响应报文后,将HostB的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去
ARP老化机制
- 高速缓存
每台主机上都维护着一个高速缓存,这是ARP高效运行的一个关键。在这个高速缓存中,存放最近获得的IP地址和MAC的映射关系。
发送发在每次发送报文时,都先在缓存中查找目标IP地址所对应的MAC地址。如果ARP缓存中有对应的AMC地址,主机就不会在发送ARP请求报文,而是直接将报文发至这个MAC地址。如果ARP缓存中没有对应的AMC地址时,主机才会发送广播的ARP请求报文 - 动态ARP表项的老化超时时间
ARP告诉缓存中的表项一般都会设定一个定时器。当到达定时器的动态ARP表项的老化超时时间,设备进行老化探测,如果探测失败,删除该表项;否则,保留该表项 - 动态ARP表项的老化探测次数
一条动态ARP表项老化之前,系统先进行探测,如果超过设置的探测次数后探测的目标主机仍没有应答,则此ARP表项将被删除 - 动态ARP表项的老化探测模式
ARP表项老化之前,接口会发送ARP老化探测报文。老化探测报文可以是单播报文,也可以是广播报文。设备只在最后一次发送ARP老化探测报文是广播模式,其余均为单播模式发送
动态ARP
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口Down时会删除响应的动态ARP表项
静态ARP
静态ARP是指IP地址和MAC地址之间有固定的映射关系,由网络管理员手动配置生成。
以上是关于ARP基本原理的主要内容,如果未能解决你的问题,请参考以下文章