... ... ....
下载
第21章 ARP:地址解析协议
介绍
地址解析协议( A R P )用于实现I P地址到网络接口硬件地址的映射。常见的以太网网络接口
硬件地址长度为48 bit。A R P同时也可以工作在其他类型的数据链路下,但在本章中,我们只
考虑将I P地址映射到48 bit的以太网地址。A R P在RFC 826[Plummer 1982]中定义。
当某主机要向以太网中另一台主机发送 I P数据时,它首先根据目的主机的 I P地址在A R P高
速缓存中查询相应的以太网地址, A R P高速缓存是主机维护的一个 I P地址到相应以太网地址
的映射表。如果查到匹配的结点,则相应的以太网地址被写入以太网帧首部,数据报被加入
到输出队列等候发送。如果查询失败, A R P会先保留待发送的 I P数据报,然后广播一个询问
目的主机硬件地址的A R P报文,等收到回答后再将 I P数据报发送出去。
以上只是简要描述了 A R P协议的基本工作过程,下面我们将结合 N e t / 3中的A R P实现来详
细描述其具体细节。卷 1的第4章包含了A R P的例子。
ARP和路由表
N e t / 3中A R P的实现是和路由表紧密关联的,这也是为什么我们要在描述路由表结构之后
再来讲解A R P的原因。图 2 1 - 1显示了本章中我们描述 A R P要用到的一个例子。整个图是与本
书中用到的网络实例相对应的,它显示了 b s d i主机上当前A R P缓存的相关结构。其中I f n e t、
i f a d d r和i n _ i f a d d r结构是由图3 - 3 2和图6 - 5简化而来的,所以在这里忽略了在第 3章和第6
章中描述过的这三个结构中的某些细节。例如,图中没有画出在两个 i f a d d r结构之后的
s o c k a d d r _ d l结构—而仅仅是概述了这两个结构中的相应信息。同样,我们也仅仅是概
述了三个i n _ i f a d d r结构中的信息。
下面,我们简要概述图中的有关要点。细节部分将随着本章的进行而详细展开。
1) l l i n f o _ a r p结构的双向链表包含了每一个 A R P已知的硬件地址的少量信息。同名全
局变量l l i n f o _ a r p是该链表的头结点,图中没有画出第一位的 l a _ p r e v指针指向最后一项,
最后一项的l a _ n e x t指针指向第一项。该链表由 A R P时钟函数每隔5分钟处理一次。
2) 每一个已知硬件地址的 I P地址都对应一个路由表结点(r t e n t r y结构)。l l i n f o _ a r p
结构的 l a _ r t 指针成员用来指向相应的 r t e n t r y 结构,同样地, r t e n t r y 结构的
r t _ l l i n f o 指针成员指向 l l i n f o _ a r p 结构。图中对应主机 s u n ( 1 4 0 . 2 5 2 . 1 3 . 3 3 ) 、
s v r 4( 1 4 0 . 2 5 2 . 1 3 . 3 4 )和b s d i( 1 4 0 . 2 5 2 . 1 3 . 3 5 )的三个路由表结点各自具有相应的 l l i n f o _ a r p
结构。如图1 8 - 2所示。
3) 而在图的最左边第四个路由表结点则没有对应的 l l i n f o _ a r p结构,该结点对应于本
地以太网( 1 4 0 . 2 5 2 . 1 3 . 3 2 )的路由项。该结点的 r t _ f l a g s中设置了C比特,表明该结点是被用
来复制形成其他结点的。设置接口 IP 地址功能的i n _ i f i n i t函数(图6 - 1 9 )通过调用r t i n i t
函数来创建该结点。其他三个结点是主机路由结点( H标志),并由 b s d i向其他机器发送数据
... ... ....
第 21章 A R P:地址解析协议计计543
下载
时通过A R P间接调用路由相关函数产生的( L标志)。
4) r t e n t r y结构中的r t _ g a t e w a y指针成员指向一个s o c k a d d r _ d l结构变量。如果保存
物理地址长度的结构s d l _ a l e n成员为6,那么s o c k a d d r _ d l结构就包含相应的硬件地址信息。
5) 路由结点变量的 r t _ i f p成员的相应指针成员指向对应网络设备接口的 i f
ARP:地址解析协议 来自淘豆网m.daumloan.com转载请标明出处.