ARP 地址解析的实现过程


以太网上的两台主机需要通信时,双方必须知道对方的MAC 地址。每台主机都要维护IP 地址到MAC 地址的转换表,称为ARP 映射表。ARP 映射表中存放着最近用到的一系列与本主机通信的其他主机的IP 地址和MAC 地址的映射。在主机启动时,ARP 映射表为空;当一条动态ARP 映射表项规定时间没有使用时,主机将其从ARP 映射表中删除掉,以便节省内存空间和ARP 映射表的查找时间。

假设主机A 和主机B 在同一个网段,主机A 的IP 地址为IP_A,B 的IP 地址为IP_B,主机A 要向主机B 发送信息。主机A 首先查看自己的ARP 映射表,确定其中是否包含有IP_B 对应的ARP 映射表项。如果找到了对应的MAC 地址,则主机A 直接利用ARP 映射表中的MAC 地址,对IP 数据包进行帧封装,并将数据发送给主机B;

如果在ARP 映射表中找不到对应的MAC 地址,则主机A 将该数据包放入ARP 发送等待队列,然后创建一个ARP request,并以广播方式在以太网上发送。ARPrequest 数据包中包含有主机B 的IP 地址,以及主机A 的IP 地址和MAC 地址。由于ARP request 数据包以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

主机B 首先把ARP request数据包中的请求发起者(即主机A)的IP 地址和MAC 地址存入自己的ARP 映射表中。然后主机B 组织ARP 响应数据包,在数据包中填入主机B 的MAC 地址,发送给主机A。这个响应不再以广播形式发送,而是直接发送给主机A。主机A 收到响应数据包后,提取出主机B 的IP 地址及其对应的MAC 地址,加入到自己的ARP映射表中,并把放在发送等待队列中的发往主机B 的所有数据包都发送出去。一般情况下,ARP 动态执行并自动寻求IP 地址到以太网MAC 地址的解析,无需管理员的介入。

当主机A要与主机B通信时,首先需要知道主机B的MAC地址,因为以太网是基于MAC地址的。主机A通过ARP协议来获取主机B的MAC地址假设主机A和主机B在不同的VLAN中,它们之间的通信需要通过路由器进行转发。 1. 当主机A发送ARP请求时,它会将ARP请求广播到本地网络中的所有设备,包括路由器。由于主机B在另一个VLAN中,因此路由器会收到ARP请求。 2. 路由器收到ARP请求后,会根据请求中的目标IP地址判断该请求是否是发往另一个VLAN中的主机。如果是,则路由器会将ARP请求转发到另一个VLAN中,并将源MAC地址替换为路由器接口的MAC地址。此时,主机B并不会收到ARP请求,因为它不在同一个VLAN中。 3. 在另一个VLAN中,路由器的接口会收到ARP请求。由于请求中的目标IP地址是主机B的IP地址,因此路由器会转发ARP请求到主机B所在的子网中。此时,路由器的源MAC地址是路由器接口的MAC地址,目标MAC地址是广播地址FF:FF:FF:FF:FF:FF。 4. 在主机B所在的子网中,所有设备都会收到ARP请求。但由于ARP请求中的目标IP地址与主机B的IP地址匹配,因此主机B会响应ARP请求,并将自己的MAC地址发送给主机A。 5. 主机A收到主机B的MAC地址后,就可以向主机B发送数据了。如果主机B要回复数据,则需要先获取主机A的MAC地址,这个过程与上述过程类似。 总之,VLAN间的ARP地址解析过程需要借助路由器来实现,路由器需要将ARP请求转发到不同的VLAN中,以获取目标主机的MAC地址
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值