ARP与RARP协议详解 (三)

(参考文献)TCP/IP详解,卷1:协议

当一台主机把以太网数据帧发送到位于同一个局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的。设备驱动程序重来不检查IP数据报中的目的地址。ARP地址解析协议就是为IP地址和48位的硬件地址提供映射的功能,如下图:



ARP背后有一个基本概念,那就是网络接口有一个硬件地址(一个48位的bit值,标识不同的以太网或令牌环网接口)。在硬件层次上进行的数据交帧交换必须有正确的接口地址。但是TCP/IP又有自己的地址(32bit的IP地址)。知道IP地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能就是在32位的IP地址和采用不同网络技术的硬件地址之间提供动态映射。

ARP地址解析过程

假设这里有一主机A向主机B发送一份IP数据报。如果B主机在本地网络上,那么IP数据报可以直接到达B主机。如果B主机在一个远程网络上,那么就通过IP选路函数来确定位于绷得网络上的下一站路由器地址,并转发IP数据报。在这两种情况下,IP数据报都是被送到位于本地网络上的一台主机或路由器。

假定是一个以太网,那么A主机必须把32位的IP地址转换成48位的以太网地址。从逻辑Internet地址到对应的物理硬件地址需要进行翻译,这就是ARP的功能。

ARP发送一份称作ARP请求的以太网数据帧给以太网上的每一个主机。这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址,意思是“如果你是这个IP地址的持有者,请回答你的硬件地址”。

目的主机的ARP层收到这份广播之后,识别出这是发送端在询问他的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。

A主机收到ARP应答后,就知道了目的主机的硬件地址,那么此时就可以进行数据报的交换了。

于是发送IP数据报给指定的B主机

ARP高速缓存

ARP高效运行的关键是由于每个主机上都有一个高速缓存。这个高速缓存存放了最经Internet地址到硬件地址之间的映射记录。我们可以通过  arp –a 来显示高速缓存中所有的内容。

ARP的分组格式

在以太网上解析IP地址是,ARP的分组格式(即ARP数据报)如下:


op(操作字段)指出了4种操作类型,他们分别是ARP请求(值为1),ARP应答(值为2),RARP(值为3)请求和RARP应答(值为4)。以太网的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址(是广播地址)。电缆上的所有以太网接口都要接收广播数据帧。

对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统受到一份目的端为本机的ARP请求报文后,他就把硬件地址填进去然后用两个目的短地址分别替换掉两个发送端地址,并把操作字段(op)置为2,最后把他发送出去。

 

 RARP:逆地址解析协议(主要被那些没有磁盘驱动器的系统使用,如无盘工作站等)

具有本地磁盘的系统引导时,一般是从磁盘中的配置文件读取IP地址。但是无盘机,如无盘工作站,则需要采用其他方法获取ip地址。

网络上的每个系统都具有唯一的硬件地址,他是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上的数据),请求某个主机在无盘系统的IP地址。

RARP的分组格式

RARP的分组格式与ARP分组基本一致。


他们之间主要的差别是RARP的op(操作字段)请求操作代码为3,应答操作代码为4。

ARP与RARP的请求都以广播方式传送,而他们的应答一般都是单播传送的。

RARP服务器

RARP服务器的复杂性在于。服务器一般要为多个主机提供硬件地址到IP地址的映射。更为复杂的是,RARP请求作为一个特殊类型的以太网数据帧来传送。这说明RARP服务器必须能够发送和接收这种类型的以太网数据帧。

RARP协议的应用

RARP是许多无盘系统在引导时用来获取IP地址的。RARP实现起来要比ARP复杂,因为RARP请求实在硬件层上广播的。这意味着他们不经过路由器进行转发。为了能让无盘系统在RARP关机的情况下也能引导,通常要在一个网络上(一根电缆)提供多个RARP服务器。

你可能感兴趣的:(网络,通信)