资料编码 使用对象 编写部门
工程师/合作方工程师/用户 固网宽带技术支持部
产品名称 产品版本 资料版本
宽带产品 所有版本 V1.0
ARP专题学习指引
拟 制: 审 核: 审 核: 批 准:
肖啸 陈锐 任远
日 期: 日 期: 日 期: 日 期:
2002-05-15 2005-03-08
2005-03-08
华 为 技 术 有 限 公 司
版权所有 侵权必究
华为机密,未经许可不得扩散
ARP专题学习指引 文档密级:内部公开
修订记录
日期
修订版本
初稿完成
描述
肖啸
作者
2002-05-15 V1.0
华为机密,未经许可不得扩散
ARP专题学习指引 文档密级:内部公开
目 录
第1章 ARP基础........................................................................................................................1
1.1 ARP概述...............................................................................................................................1 1.2 ARP工作原理........................................................................................................................2 1.3 ARP分组格式........................................................................................................................4 1.4 ARP的封装............................................................................................................................5 1.5 ARP的操作............................................................................................................................5
1.5.1 ARP操作步骤..............................................................................................................5 1.6 ARP的使用情况.....................................................................................................................6
第2章 代理ARP........................................................................................................................7 第3章 RARP原理......................................................................................................................8
3.1 RARP概述.............................................................................................................................8 3.2 RARP分组格式......................................................................................................................8 3.3 RARP分组封装......................................................................................................................9 3.4 其他解决方法........................................................................................................................9
华为机密,未经许可不得扩散
ARP专题学习指引 文档密级:内部公开
关键词:
ARP、ProxyARP、RARP
摘 要:
简述了ARP ,ProxyARP,RARP协议的工作原理和操作。讲述了有关物理地址和逻辑地址之间的内在关系,可以帮助工程师更好的理解网络运行中的内在进程。
缩略语清单:
参考资料清单:
华为机密,未经许可不得扩散
ARP专题学习指引 文档密级:内部公开
第1章 ARP基础
1.1 ARP概述
互联网是由许多物理网络和一些如路由器和网关的国际互联设备所组成,从源主机发出的分组在到达目的主机之前可能要经过许多不同的物理网络。 在网络级上,主机和路由器用它们的逻辑来标识,逻辑地址就是一个互联网上的地址。它的管辖范围是全局的,逻辑地址在全局上是唯一的,之所以叫做逻辑地址是因为逻辑地址是用软件实现的。每一个与互联网络打交道的协议都需要逻辑地址,在TCP/IP协议族中逻辑地址也叫做IP地址,它的长度是32位。
但是,分组都要通过物理网络才能到达这些主机和路由器。在物理级上,主机和路由器用它们的物理地址来标识。物理地址就是本地地址,它的管辖范围是本地网络。物理地址在本地范围必须是唯一的,但在全局上并不是如此,之所以叫做物理地址是因为物理地址通常(并非永远)是用硬件实现的。物理地址的例子就是以太网和令牌环中的48位的MAC地址,它被写入在主机或路由器中的网卡上。
物理地址和逻辑地址是两种不同的标识符。这个我们都需要,因为一个物理网络(如以太网)可以在同一时间在网络层使用两个不同的协议,两如IP和IPX(Novell)。同样的,在网络层的分组,如IP,也可以通过不同的物理网络,如以太网和LocalTalk。
这就表示将分组交付到一个主机或路由器都需要两级地址:逻辑地址和物理地址。我们需要能够将一个逻辑地址映射成为它相应的物理地址,反过来的映射也是需要的,这可以使用静态和动态映射。
静态映射是创建一个表,它将一个逻辑地址与物理地址关联起来,这个表就存储在网络上的每一个机器上。例如,每一个机器,知道其他机器的IP地址但却不知道其物理地址,可通过查表得知该物理地址。这样做有某些局限性,因为物理地址可能会因以下原因而发生变化:一个机器可能会更换其网卡,结果得到了一个新的物理地址。在某些局域网中,如LocalTalk,每当计算机加电时,其物理地址都要改变一次。移动的计算机可以从一个物理网络转移到另一个物理网络,这就引起物理地址的改变。要完成这些变化,静态映射表必须周期性改变,这给网络增加了非常大的开销。
2003-01-25
华为机密,未经许可不得扩散
第1页, 共13页
ARP专题学习指引 文档密级:内部公开
逻辑地址逻辑地址ARP物理地址图1-1 ARP和RARP
RARP物理地址
在动态映射中,每当一个机器知道两个地址(逻辑地址或物理地址)中的一个时,就可以使用协议将另一个地址找出来。
已设计出两个协议来完成动态映射:地址解析协议(ARP)和逆地址解析协议(RARP)。第一个协议将逻辑地址映射为物理地址,而第二个协议将物理地址映射为逻辑地址。图1-1表示了这一思想。
ARP和RARP使用单播和广播物理地址。例如在以太网,全1地址作为广播地址。
1.2 ARP工作原理
在任何时候,当主机或路由器有数据报要发送给另一个主机或路由器时,它必须有接收站的逻辑(IP)地址。但是IP数据报必须封装成帧才能通过物理网络。这就表示,发送站必须有接收站的物理地址。因此需要一个从逻辑地址到物理地址的映射。
如我们在前面讲过的,使用静态映射和动态映射都可以做到这点。逻辑地址和物理地址之间的关联可以静态的存储在一个表中,发送站可在表中查找出对应于逻辑地址的物理地址,但我们在前面已讨论过,这不是一个很好的解决方法。每当物理地址发生变化时,这个表就必须更新。频繁的在所有机器上对表进行更新是非常麻烦的任务。
但这种映射可以做成为动态的,即发送站在需要时可以请求接收站宣布其物理地址。ARP就是为此目的而设计的。
ARP将一个IP地址与其物理地址关连起来。在典型的物理网络上,如局域网,链路上的每一个设备通常是用写在NIC(网络接口卡)中的物理地址来标识。 任何时候当主机或路由器需要找出另一个主机或路由器在此网络上的物理地址时,它就发送一个ARP查询分组。这个分组包括发送站的物理地址和IP
2003-01-25
华为机密,未经许可不得扩散
第2页, 共13页
ARP专题学习指引 文档密级:内部公开
地址,以及接收站的IP地址。因为发送站不知道接收站的物理地址,查询就在网络上广播。
每一个在网络上的主机或路由器都接收和处理这个ARP查询分组,但只有目的接受者才识别其IP地址,并发回ARP响应分组。这个分组直接用单播发送给查询者,并使用接收到的查询分组中所用的物理地址(见图1-2)。 这里有一点要注意:每个ARP广播中都包含发送方的IP地址到物理地址的绑定;接收方在处理ARP分组之前,先更新它们缓存中的IP到物理地址的绑定信息。
在图1-2 a中,左边的系统(A)有一个分组要交付给IP地址为141.23.56.23的另一个系统(B)。系统A需要将分组传递给它的数据链路层进行实际的交付,但它不知道接收者的物理地址。它使用ARP的服务,请求ARP协议发送一个广播ARP请求分组,以查询IP地址为141.23.56.23的系统的物理地址。
在该物理网络上的每一个系统都接收到此分组,但只有系统B才回答,如图1-2 b所示。现在系统A就可以使用接收到的物理地址来发送所有的到此目的地的分组。
我要查找一个结点的物理地址,其IP地址为141.23.56.23请 求系统A系统Ba.ARP请求用广播发送我是你要找的结点,我的物理地址是:A46EF45983AB请 求系统A系统Bb.回答用单播发送
图1-2 ARP工作原理
2003-01-25
华为机密,未经许可不得扩散
第3页, 共13页
ARP专题学习指引 文档密级:内部公开
1.3 ARP分组格式
图1-3画出了一个ARP分组的格式。
图1-3 ARP分组
ARP分组具有如下的一些字段:
HTYPE(硬件类型)。这是一个16比特字段,用来定义运行ARP的网络的类型。每一个局域网基于其类型被指派给一个整数。例如,以太网是类型1。ARP可使用在任何网络上。
PTYPE(协议类型)。这是一个16比特字段,用来定义协议的类型。例如,对IPv4协议,这个字段的值是0800。ARP可用于任何高层协议。 HLEN(硬件长度)。这是一个8比特字段,用来定义以字节为单位的物理地址的长度。例如,对以太网这个值是6。
PLEN(协议长度)。这是一个8比特字段,用来定义以字节为单位的逻辑地址的长度。例如,对IPv4协议这个值是4。
OPER(操作)。这是一个16比特字段,用来定义分组的类型。已定义了两种类型:ARP请求(1),ARP回答(2)。
SHA(发送站硬件地址)。这是一个可变长度字段,用来定义发送站的物理地址的长度。例如,对以太网这个字段是6字节长。
SPA(发送站协议地址)。这是一个可变长度字段,用来定义发送站的逻辑(例如,IP)地址的长度。对于IP协议,这个字段是4字节长。
2003-01-25
华为机密,未经许可不得扩散
第4页, 共13页
ARP专题学习指引 文档密级:内部公开
THA(目标硬件地址)。这是一个可变长度字段,用来定义目标的物理地址的长度。例如,对以太网这个字段是6字节长。对于ARP请求报文,这个字段是全0,因为发送站不知道目标的物理地址。
TPA(目标协议地址)。这是一个可变长度字段,用来定义目标的逻辑地址(例如,IP地址)的长度。对于IPv4协议,这个字段是4字节长。
1.4 ARP的封装
ARP分组是直接封装在数据链路帧中。例如,在图4中,ARP分组封装在以太网的帧中。应注意:类型字段指出了此帧所携带的数据是ARP分组。
前同步码和SFD
目的地址
源地址
类型
数据
CRC
表1-1 ARP分组的封装
1.5 ARP的操作
让我们来讨论在一个典型的互联网上ARP是怎样工作的。首先我们要描述几个步骤,然后讨论主机或路由器需要使用ARP的四种情况。
1.5.1 ARP操作步骤
在ARP过程中需要进行以下几个步骤:
发送站知道目标的IP地址 ,我们将简要地讨论发送站如何得到这个地址。 IP请求ARP产生一个请求ARP报文,填入发送站地物理地址、发送站的IP地址以及目标IP地址。目标物理地址字段则填入0。
这个报文发送给数据链路层,在这一层它被封装成帧,使用发送站的物理地址作为源地址,而将物理广播地址作为目的地址。
每一个主机或路由器都收到这个帧。因为这个帧包含了广播目的地址,所有的站都将此报文送交ARP。除了目标机器外,所有的机器都丢弃这个分组。目标机器识别这个IP地址。
目标机器用ARP报文进行回答,此报文包含它的物理地址。报文使用单播。 发送站收到这个回答报文。它现在知道了目标机器的物理地址。 携带数据发给目标机器的IP数据报现在封装成帧,用单播发送给目站。
2003-01-25
华为机密,未经许可不得扩散
第5页, 共13页
ARP专题学习指引 文档密级:内部公开
1.6 ARP的使用情况
下面是可以使用ARP服务的四种不同情况。
发送站是一个主机,希望将分组发送给同一个网络上的另一个主机。在这种情况下,必须映射为物理地址的逻辑地址是数报首据部中的目的IP地址。 发送站是一个主机,希望将分组发送给另一个网络上的另一个主机。在这种情况下,该主机要查找它的路由表,要找出对于这个目的地的下一跳(路由器)的IP地址。若该主机没有路由表,它就要查找默认路由器的IP地址。这个路由器的IP地址就是必须映射为物理地址的那个逻辑地址。
发送站是一个路由器,它已经接收到了一个数据报,要发送给另一个网络上的一个主机。它先检查它的路由表,找出下一个路由器的IP地址。这个下一个路由器的IP地址就是必须映射为物理地址的那个逻辑地址。
发送站是一个路由器,它已经收到了一个数据报,要发送给同一个网络上的一个主机。数据报的目的IP地址就是必须映射为物理地址的那个逻辑地址。
2003-01-25
华为机密,未经许可不得扩散
第6页, 共13页
ARP专题学习指引 文档密级:内部公开
第2章 代理ARP
有一种技术叫做代理ARP可用来产生子网构成效应。代理ARP是可以代表一组主机的ARP。当运行代理ARP的路由器收到一个ARP请求要找出这些主机中的一个主机的IP地址时,路由器就发送一个ARP回答,宣布它自己的物理地址。以后当这个路由器收到真正的IP分组时,它就将这分组发送给相应的主机或路由器。
ARP请求是广播发送,ARP回答是单播发送。
但是,管理员可能需要创建一个子网而不用改变整个系统来重新标识划分子网的地址。解决这个问题的一种方法就是增加一个运行代理ARP的路由器。在这种情况下,这个路由器就代表所有安装在子网上的主机。当路由器收到一个ARP请求时,若其目标IP地址与它所代表的主机之一的地址匹配(如141.23.56.21,141.23.56.22,141.23.56.23),则发送一个ARP回答,并宣布其硬件地址作为目标硬件地址。当路由器收到IP分组,就将此分组发送到相应的主机。如图2-5所示:
图2-5 代理ARP
2003-01-25
华为机密,未经许可不得扩散
第7页, 共13页
ARP专题学习指引 文档密级:内部公开
第3章 RARP原理
3.1 RARP概述
RARP是设计用来解析地址映射问题,当一个机器知道它的物理地址但不知道其逻辑地址。
每一个主机或路由器都被指派一个或多个逻辑(IP)地址,这些地址是唯一的,且与机器的物理地址无关。要创建一个IP数据报主机或路由器就要知道它自己的IP地址。一个机器的IP地址通常可从存贮在磁盘文件中的配置文件读出。 但通常一个无盘机器是从ROM来引导的。ROM只有最少的引导信息,它不包括IP地址,因为它在网络上的IP地址是由管理员指派的。
机器可以得到其物理地址,(例如:读它的NIC),这在本地是唯一的。然后就可以使用RARP协议从物理地址得到逻辑地址。先是创建一个RARP请求,并在本地网络上广播。在本地网络上的另一个机器知道所有的IP地址就用响应以RARP回答。请求的机器必须运行RARP客户程序,而响应的机器必须运行RARP服务器程序。
RARP请求分组是广播发送,RARP回答分组是单播发送。
3.2 RARP分组格式
除了操作字段或者是3(RARP请求),或者是4(RARP回答)以为,RARP分组格式与ARP分组的完全一样。 图3-6画出了一个RARP分组的格式。
2003-01-25
华为机密,未经许可不得扩散
第8页, 共13页
ARP专题学习指引 文档密级:内部公开
图3-6 RARP分组的格式
3.3 RARP分组封装
RARP分组直接封装到数据链路帧中。
图3-7画出了RARP分组封装成以太网帧。注意:类型字段指出该携带的数据是RARP分组。
前同步码和SFD
目的地址
源地址
类型
数据
CRC
图3-7 RARP分组封装
3.4 其他解决方法
当一个无盘计算机被引导时,除了它的IP地址外,它还需要更多的信息。它需要知道它的子网掩码,路由器的IP地址,以及名字服务器的IP地址。已经有协议可以提高这些信息。如:BOOTP和DHCP
2003-01-25
华为机密,未经许可不得扩散
第9页, 共13页
因篇幅问题不能全部显示,请点此查看更多更全内容