首页 理论教育地址转换:下一代计算机网络技术

地址转换:下一代计算机网络技术

【摘要】:图2.12还表示出从IP地址209.0.0.6通过ARP得出了目的主机48bit的物理地址08002B00EE0A(现在假设此主机连接在某个局域网上。可见,在计算机中应当存放一个从IP地址到物理地址的转换表,并且能够经常动态更新。地址转换协议ARP很好地解决了这些问题。也有可能查不到主机B的IP地址的项目。

上面讲的IP地址还不能直接用来进行通信。这是因为:IP地址中的主机地址只是主机在网络层中的地址,若要将网络层中传送的数据报交给目的主机,必须知道该主机的物理地址。因此,必须在IP地址和主机的物理地址之间进行转换。

IP地址到物理地址的转换由地址转换协议ARP来完成。图2.12还表示出从IP地址209.0.0.6通过ARP得出了目的主机48bit的物理地址08002B00EE0A(现在假设此主机连接在某个局域网上。如网络是广域网,则转换出主机在广域网上的物理地址)。

图2.12 主机名字、主机物理地址与IP地址的转换图

由于IP地址有32bit,而局域网的物理地址(即MAC地址)是48bit,因此它们之间不是一个简单的转换关系。此外,在一个网络上可能经常会有新的计算机加入进来,或撤走一些计算机。更换计算机的网卡也会使其物理地址改变。可见,在计算机中应当存放一个从IP地址到物理地址的转换表,并且能够经常动态更新。地址转换协议ARP很好地解决了这些问题。

每一个主机都有一个ARP高速缓存(ARP cache),里面有IP地址到物理地址的映射表,这些都是该主机目前知道的一些地址。当主机A欲向本局域网上的主机B发送一个IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如果有,就可查出其对应的物理地址,然后将该数据报发往此物理地址。

也有可能查不到主机B的IP地址的项目。这可能是主机B才入网,也可能是主机A刚刚加电,其高速缓存还是空的。在这种情况下,主机A就自动运行ARP,按以下步骤找出主机B的物理地址。

(1)ARP进程在本局域网上广播发送一个ARP请求分组,上面有主机B的IP地址。

(2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。(www.chuimin.cn)

(3)主机B在ARP请求分住中见到自己的IP地址,就向主机A发送一个ARP响应分组,上面写入自己的物理映射。

(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到物理地址的映射。

在很多情况下,当主机A向主机B发送数据报时,很可能以后不久主机B还要向主机A发送数据报,因而主机B也可能要向主机A发送ARP请求分组。为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到物理地址的映射写入ARP请求分组。当主机B收到主机A的ARP请求分组时,主机B就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。这对主机B以后向主机A发送数据报时就更方便了。

在进行地址转换时,有时还要用到反向地址转换协议RARP。RARP使只知道自己物理地址的主机能够知道其IP地址。这种主机往往是无盘工作站。这种无盘工作站一般只要运行其ROM中的文件传送代码,就可用下行装载方法,从局域网上其他主机得到所需的操作系统和TCP/IP通信软件,但这些软件中并没有IP地址。无盘工作站要运行ROM中的RARP来获得其IP地址。

RARP的工作过程分两方面:

(1)为了使RARP能工作,在局域网上至少有一个主机要充当RARP服务器,无盘工作站先向局域网发出RARP请求分组(在格式上与ARP请求分组相似),并在此分组中给出自己的物理地址。

(2)RARP服务器有一个事先做好的从无盘工作站的物理地址到IP地址的映射表,当收到RARP请求分组后,RARP服务器就从这映射表查出该无盘工作站的IP地址。然后,写入RARP响音分组,发回给无盘工作站。无盘工作站用这样的方法获得自己的IP地址。