原创 复习一下Douglas E. Comer 书的前6章:(第三篇)

2008-3-11 22:44 2492 7 7 分类: 通信

地址解析协议ARP(Address Resolution Protocal):

    网络层通信用的是IP地址,而实际是通过现实的物理网络,通过物理地址来通信的。IP地址是如何映射到物理地址的呢?
   
    从源站到目的站的路径上,每一步都要进行地址映射。TCP/IP协议所采用的地址解析技术有两种:通过直接映射进行解析、通过动态绑定进行解析。主要用到的是第二种,因为第一种的适用面很窄。

    第一种:直接映射。当网络硬件地址是小整数时,或可以自己编制时,可以采用这种方法。原理就是让IP地址的主机号中包含硬件地址。假定有一个网络的前缀是192.5.48.0,我们可以配置一个硬件地址为1,IP地址为192.5.48.1;可以配置另一个硬件地址为2,IP地址为192.5.48.2;这样,IP地址中本身就包含硬件地址,只需IP协议软件将此硬件地址取出映射为物理地址就行了。

    但这种方法不适用于像以太网这样的网络。以太网的硬件地址MAC是出厂就既定的,而且是48位的地址,而IP地址只有32位,不可能直接映射。

    第二种:动态绑定。以太网是具有广播能力的网络。设计人员利用这种特点创造了一种方法,称为动态绑定。其实是使用了一个低层协议来动态绑定地址,这个协议称为地址解析协议ARP
    其基本思路很简单:当主机A要解析IP地址IB时,它广播一个特殊的分组,请求IP地址为IB的主机用其物理地址PB做出相应。包括B在内的所有主机都接收到这个请求,但只有主机B识别出它的IP地址,然后发出一个含有自己的物理地址的回答。这样A就能收到IP地址为IB的主机的物理地址PB了。并把它关联成表放在高速缓存中。其实在A广播请求IB的主机回答时,A的广播中已经包含了A的IP地址IA和物理地址PA,以使其他机器将A的IP地址物理地址关联表存入高速缓存。
    这个过程就像是一群学生在一起,这时小强问:学号是1号的同学叫什么?我叫小强,学号3号。 所有人都知道了小强对应1号。而这时小红回答:我是1号,我叫小红。以后,小强在接到老师交待的事情转达给1号同学时,就可以直接找小红了。
    这个例子里的人名就是MAC地址,学号就是IP地址。


ARP高速缓存超时:


    这是所谓软状态soft state的一个例子,这种技术常用在网络协议中。软状态描述了这样的情况:信息可能在没有任何警告的情况下变得陈旧。对于ARP的情况,假设A与B都连到一个以太网上,A已经发送了一个ARP请求,B已做了回答。但之后B可能出现故障,而A不知道B出现了故障,继续向B发送分组。以太网硬件没有提供B不在线的指示,因为以太网并不能保证交付。因此,A无法知道自己的ARP缓存中的信息何时变得不正确。


    解决的软状态的办法是使用计时器,对每个绑定分别使用计时器。计时器超时后,将删除原来缓存中信息。若再想呼叫,则还要再发送ARP请求。当然,一旦某个含有绑定信息的ARP广播到达,高速缓存中相应表项的计时器就要复位。因为知道该绑定地址还没有出现问题。


    若某一主机网络接口更换了硬件怎么办?它的物理地址改变了,其他计算机的缓存表项中还是旧的物理地址。地址变更的计算机可以在启动时,通过广播一个无回报的ARP请求,把新地址通知给其他主机。


ARP的封装:


    ARP报文必须放在物理帧中运送,且通过物理帧能识别ARP。帧首部的类型字段用来识别ARP报文。比如以太网中,携带ARP报文的帧类型字段值是0806。其他网络硬件技术使用的是其他值。


                                  911c640f-997a-449f-9dd7-ef32c3757419.JPG


ARP协议格式:


    ARP分组中的地址字段长度取决于网络类型,因此没有固定的长度。比如以太网的ARP报文格式:


                    6ed24b8b-ddde-4a09-b94d-f909da446f5a.JPG


    注意以太网硬件是6八位组长。


    硬件类型指明发送方想要知道的硬件接口类型;对于以太网该字段为“1”。


    协议类型指明发送方提供的高层协议地址类型;对于IP地址该字段为0800。


    操作字段指明:ARP请求(1);ARP响应(2);RARP请求(3);RARP响应(4);


    硬件地址长度和协议地址长度允许ARP在任意网络中使用,因为它们分别指出了硬件地址和高层协议地址长度。


ARP缓存自动重新确认:


    当某个地址的ARP定时器超时,发送给那个地址的下一个数据报就经历额外的延迟,数据报在队列中等待,直到ARP软件发送一个请求并收到一个响应。这种延迟称作抖动现象。如果目的站没有问题,抖动的频繁发生使效率较低。


    提早重新确认技术可以用来避免抖动。其把ARP缓存中的每个表项与两个计数器关联起来:传统的定时器和一个重新确认计时器。当重新确认计时器超时时,软件对表项进行检查,如果一些数据最近还要使用该表项,软件将发送一个ARP请求并继续使用该表项。当目标站收到请求并回答后,这两个计时器都被复位。如果没有收到回答,传统的定时器将会超时,而数据报在ARP尝试获得一个响应期间将保持等待。

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条