2008年(91)
分类: 系统运维
2008-03-30 21:17:29
ARP(Address Resolution Protocol)用于将IP 地址解析为MAC 地址。
IP 地址不能直接用来进行通信,因为网络设备只能识别MAC 地址。IP 地址只是主机在网络层中的地址,如果要将网络层中传送的数据报交给目的主机,必须知道该主机的MAC 地址。因此必须将IP 地址解析为MAC 地址。
2. 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 地址的解析,无需管理员的介入。