ARP协议

一台网络设备要发送数据给另一太网络设备时,必须要知道对方的IP地 址。但是,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通 过数据链路进行发送,而数据帧必须要包含目的MAC地址,因此发送端 还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取 下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议 来获取。ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目 的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性。

通过ARP协议,网络设备可以建立目标IP地址和MAC地址之间的映射。 网络设备通过网络层获取到目的IP地址之后,还要判断目的MAC地址是 否已知。

网络设备一般都有一个ARP缓存(ARP Cache)
arp 缓存表

ARP缓存用来存放IP 地址和MAC地址的关联信息。在发送数据前,设备会先查找ARP缓存表 。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来 封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发 送ARP request报文来获得它。学习到的IP地址和MAC地址的映射关系 会被放入ARP缓存表中存放一段时间。在有效期内,设备可以直接从这 个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了 这段有效期,ARP表项会被自动删除。 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的 MAC地址,然后将数据发送给网关,网关再把数据转发给目的设备。

本例中,主机A的ARP缓存表中不存在主机C的MAC地址,所以主机A会 发送ARP request来获取目的MAC地址。ARP request报文封装在以太 帧里。帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主 机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。ARP request报文中包含源IP地址、目的IP地址、源 MAC地址、目的MAC地址,其中目的MAC地址的值为0。ARP Request 报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此 ARP request报文。网关将会阻止该报文发送到其他网络上。

所有的主机接收到该ARP Request报文后,会检查它的目的协议地址字 段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源 IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行 响应。

主机C会向主机A回应ARP Reply报文。ARP Reply报文中的源协议地址 是主机C自己的IP地址,目标协议地址是主机A的IP地址,目的MAC地 址是主机A的MAC地址,源MAC地址是自己的MAC地址,同时 Operation Code被设置为reply。ARPReply报文通过单播传送。

主机A收到ARP Reply以后,会检查ARP报文中目的MAC地址是否与自 己的MAC匹配。如果匹配,ARP报文中的源MAC地址和源IP地址会被 记录到主机A的ARP缓存表中。ARP表项的老化超时时间缺省为1200秒。

主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的 IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP request报文来进行地址冲突检测。 主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地 址,该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经 被某一个主机或网关使用时,该主机或网关就会回应ARP reply报文。 通过这种方式,主机A就能探测到IP地址冲突了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值