地址解析协议(ARP)
????????因为存在网络层地址(因特网的IP地址)和链路层地址(即MAC地址),所以需要在它们之间进行转换。对于因特网而言,这是地址解析协议(Address Resolution Protocol, ARP)[RFC 826]的任务。该协议提供了将IP地址转换为链路层地址的机制。
?????????ARP将一个IP地址解析为一个MAC地址。在很多方面它和DNS类似,DNS将主机名解析为IP地址。然而,这两种解析器之间的一个重要区别是,DNS为在因特网中任何地方的主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址每台主机或路由器在其内存中具有一个ARP表(ARP table),这张表包含IP地址到MAC地址的映射关系。ARP表也包含一个寿命(TTL)值,它指示了从表中删除每个映射的时间。注意到这张表不必为该子网上的每台主机和路由器都包含一个表项;某些可能从来没有进入到该表中,某些可能已经过期。从一个表项放置到某ARP表中开始,一个表项通常的过期时间是20分钟。
ARP协议获取MAC地址方式
????????现在假设主机要发送一个数据报,该数据报要IP寻址到本子网上另一台主机或路由器。发送主机需要获得给定IP地址的目的主机的MAC地址。如果发送方的ARP表具有该目的节点的表项,这个任务是很容易完成的。但如果ARP表中当前没有该目的主机的表项,又该怎么办呢 在这种情况下,发送方用ARP协议来解析这个地址。首先,发送方构造一个称为ARP分组(ARP packet)的特殊分组。一个ARP分组有几个字段,包括发送和接收IP地址及MAC地址。ARP查询分组和响应分组都具有相同的格式。ARP查询分组的目的是询问子网上所有其他主机和路由器,以确定对应于要解析的IP地址的那个MAC地址。
?关于ARP协议有两件事情需要注意
??????首先,查询ARP报文是在广播帧中发送的,而响应ARP报文在一个标准帧中发送。其次,ARP是即插即用的,这就是说,一个ARP表是自动建立的,即它不需要系统管理员来配置。并且如果某主机与子网断开连接,它的表项最终会从留在子网中的节点的表中删除掉。
ARP是一个链路层协议还是一个网络层协议?
????????ARP是一个链路层协议还是一个网络层协议。如我们所看到的那样,一个ARP分组封装在链路层帧中,因而在体系结构上位于链路层之上。然而,一个ARP分组具有包含链路层地址的字段,因而可认为是链路层协议,但它也包含网络层地址,因而也可认为是为网络层协议。所以,可能最好把ARP看成是跨越链路层和网络层边界两边的协议。
|