理论教育 ARP地址解析过程详解

ARP地址解析过程详解

时间:2023-11-22 理论教育 版权反馈
【摘要】:而ARP地址解析协议完成的就是从IP网络地址到物理地址的映射,即从IP地址得到MAC地址。IP地址的职责是找到目的主机。这个ARP应答包含IP地址及其对应的硬件地址。假设想获得主机10.117.6.46的MAC地址。可以采用编程的方式,通过自己的主机向10.117.6.46这台主机发送ARP请求,以获得该主机的MAC地址。2号包是收到的ARP响应报文。

ARP地址解析过程详解

在前面的IP路由中,放过了一个细节。提到当路由器发现IP数据报的目的地址在与该路由器直接相连的子网中时,路由器直接将IP数据报发送给目的主机。而实际上,这个“直接”仅仅是对高层而言。因为设计IP地址的目的是屏蔽低层的物理网络,使得高层程序只用逻辑的IP地址工作。但是,最终的信息通信仍然是靠物理网络实现的,所以底层的数据链路如以太网令牌环网的数据传递是需要物理地址的。而ARP地址解析协议完成的就是从IP网络地址到物理地址的映射,即从IP地址得到MAC地址。

现在,来看一下ARP的地址解析过程。

首先,高层(TCP或UDP)使用IP地址发送了一个IP数据报,如果目的主机不在本地网络(根据子网掩码判断),那么IP数据报将被发送到与本地网络相连的路由器上。即使目的主机不与本地网络相连,最终IP数据报都会逐跳转发到目的主机。IP地址的职责是找到目的主机。在实际传输中,IP数据报要放在MAC帧中,那么该路由器或主机必须知道传输路径中下一跳路由器或目的主机的MAC地址。ARP的功能就是从逻辑网络地址获得对应的物理硬件地址。如果是在以太网上,ARP的功能就是根据32bit的IP地址获得其对应的48bit以太网地址。

ARP首先搜索ARP高速缓存表,缓存表存放了IP地址与物理地址的最近映射记录。如果找到相匹配的表项,ARP就把物理地址返回,如果没有找到,ARP就发送一份ARP请求报文,广播给本地网络上的每个主机。在ARP请求报文中,包含有目的主机的IP地址,意思是说“如果你是这个IP地址的拥有者,就请回答你的硬件地址吧。”目的主机的ARP层收到这份广播报文后,识别出这是发送端在寻问它的物理地址,于是发送一个ARP应答。这个ARP应答包含IP地址及其对应的硬件地址。收到ARP应答后,就得到了目的主机的物理地址,更新自己的ARP高速缓存表。这样,IP数据报就可以封装进MAC帧中发送了,经过逐跳路由选择,最终发送到目的主机。路径中的每一跳都会使用ARP协议得到下一跳的物理地址(下一跳路由器的IP地址是通过路由选择协议获得的)。

下面举例说明ARP的解析过程。假设想获得主机10.117.6.46的MAC地址。可以采用编程的方式,通过自己的主机向10.117.6.46这台主机发送ARP请求,以获得该主机的MAC地址。通过网络抓包软件得到如图5-8所示的结果。

978-7-111-31053-2-Chapter05-19.jpg

图5-8 ARP请求报文和响应报文实例

图中的1号包是ARP请求报文,该请求报文的目的MAC地址为全F的广播地址,也就是说,这个ARP请求要广播给同网段内所有的主机。源IP则为主机自己的IP(图中显示的是主机名),而IP目的地址字段是目的主机IP地址10.117.6.46,想要得到其对应的MAC地址。(www.daowen.com)

2号包是收到的ARP响应报文。从该包的源地址可以看到,这个包是从用户想要得到的目的主机10.117.6.46发送过来的,目的IP是自己主机的IP地址。最关键的部分,也就是想要的目的主机的MAC地址,被填写在源MAC地址处,而目的MAC地址则是自己主机的MAC地址。如此便获得了该目的主机的MAC地址。

从这个例子中也可以发现,除了目的主机外,其他同网段的主机虽然收到了广播的ARP请求,但因为发现目的IP地址与自己并不一致,所以并没有发回任何的响应包。

以上就是ARP地址解析的大致过程。用户可以看到ARP能否高速运转的关键在于对ARP高速缓存表的维护。ARP缓存表采用了老化机制,每一个表项的生存时间为20min,如果这段时间没有被使用过,表项将被删除。这样可以大大减少ARP缓存表的长度,加快查询速度,更主要的是,当某台计算机更换网卡后,其他计算机不至于一直使用其旧的MAC地址。

在Windows XP下,运行“arp-a”命令,就可以看到本机的ARP高速缓存表,如下所示。

978-7-111-31053-2-Chapter05-20.jpg

表项类型分为动态和静态两种,动态类型采用ARP协议获得,随时间推移自动添加和删除。静态类型由用户自己手动建立,直到人为删除。静态类型可有效地防止ARP病毒,例如,在南开大学12宿舍楼输入以下命令:“arp-s10.10.112.000-e0-fc-0f-7a-4e”就能绑定该楼默认网关的IP地址(10.10.112.0)及其MAC地址(00-e0-fc-0f-7a-4e),防止ARP病毒的干扰。后面讲述ARP病毒的机制。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈