用于网际协议版本六的任意播寻址的方法和装置转让专利

申请号 : CN200480039383.8

文献号 : CN1947399B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : K·埃蒂坎

申请人 : 英特尔公司

摘要 :

一种与在网络分组内所包括的网际协议版本六(IPv6)网络地址相关联的协议提供了单播和任意播寻址,同时所述单播和任意播地址对于具有与顶级聚集标识符、下一级聚集标识符和站点级聚集标识符相关联的相同位的位置和位功能。与网络地址的三个最高有效位相关联的前缀把网络地址识别为单播地址、任意播地址或兼是单播和任意播地址。用于把网络地址识别为兼是单播和任意播地址的前缀使路由器能够具有更小的路由表。

权利要求 :

1.一种包括一个或多个路由表的网络路由器,所述路由表具有一个或多个条目,所述条目包括:前缀位,被编码用来把网络地址识别为单播网络地址、任意播网络地址以及兼为单播和任意播网络地址两者中所选择的一个;

任意播范围标识符位,用于识别任意播范围,其中所述任意播范围对应于在其中识别所述任意播网络地址的网络范围;和任意播组标识符位,用于识别具有一个或多个任意播成员的任意播组,其中所述一个或多个任意播成员中的每个与相同的任意播网络地址相关联。

2.如权利要求1所述的网络路由器,其中所述前缀位包括作为所述网络地址的三个最高有效位的至少两个前缀位,并且所述任意播组标识符位包括作为所述网络地址的最低有效位的至少三十二位。

3.如权利要求1所述的网络路由器,其中所述任意播范围标识符位包括至少两位,所述至少两位适于识别节点本地范围、链路本地范围、站点本地范围和全局范围中所选择的一个。

4.如权利要求1所述的网络路由器,其中所述网络地址具有一百二十八位的网络地址长度,并且所述网络地址与网际协议版本六(IPv6)兼容。

5.如权利要求4所述的网络路由器,其中所述一百二十八个网络地址位的顶级聚集标识符、下一级聚集标识符和站点级聚集标识符部分对于所述任意播网络地址和单播网络地址来说处于相同位的位置,并且具有相同的作用。

6.一种用于路由具有网络地址的网络分组的方法,包括:

接收所述网络分组;并且

解码与所述网络地址相关联的前缀位,以便把所述网络地址识别为单播网络地址、任意播网络地址以及兼为单播网络地址和任意播网络地址两者中所选择的一个。

7.如权利要求6所述的方法,其中所述前缀位包括至少两位,所述两位被编码来表明所述单播网络地址、任意播网络地址以及兼为单播网络地址和任意播网络地址两者中所选择的一个。

8.如权利要求6所述的方法,还包括:

在一个或多个路由表中执行与所述网络地址相关联的查找;

根据连续的查找来识别输出端口;

如果识别了所述输出端口并且如果所述网络地址是单播网络地址,那么向所识别的输出端口发送所述网络分组;并且如果识别了所述输出端口并且如果所述网络地址是任意播网络地址,那么向所识别的输出端口发送所述网络分组。

9.如权利要求8所述的方法,还包括:

如果所述输出端口被识别为一个以上输出端口并且如果所述网络地址是任意播网络地址:那么检查与所述一个以上输出端口相关联的端口量度;

根据所述量度从所述一个以上输出端口中识别一个输出端口;并且向所识别的输出端口发送所述网络分组。

10.如权利要求8所述的方法,其中一个或多个路由表之一与IPv6网络地址的十六个最高有效位相关联。

11.如权利要求8所述的方法,其中一个或多个路由表之一与IPv6网络地址的十六个最高有效位相关联,并且一个或多个路由表中的其它路由表与所述网络地址的相应的八位组相关联。

12.一种用于产生与具有网络地址的网络分组相关联的路由表的方法,包括:接收所述网络分组;

解码与所述网络地址相关联的前缀位,以便把所述网络地址识别为单播网络地址和任意播网络地址中所选择的一个;

在一个或多个路由表中执行与所选择的网络地址的位相关联的查找,以便识别在所述一个或多个路由表中所存储的匹配路由;

如果识别了所述匹配路由并且如果所述匹配路由对应于所述单播网络地址以及如果所述网络地址是所述任意播网络地址,那么改变与在所述一个或多个路由表中所存储的匹配路由相关联的前缀位,以便表明所述匹配路由对应于单播网络地址和任意播网络地址两者;并且如果识别了所述匹配路由并且如果所述匹配路由对应于任意播网络地址以及如果所述网络地址是所述单播网络地址,那么改变与在所述一个或多个路由表中所存储的匹配路由相关联的前缀位,以便表明所述匹配路由对应于单播网络地址和任意播网络地址两者。

13.如权利要求12所述的方法,其中所述所选择的网络地址的位对应于六十一位。

14.如权利要求12所述的方法,其中所述前缀位包括至少两位,所述两位被编码来表明所述单播网络地址、任意播网络地址以及兼为单播网络地址和任意播网络地址两者中所选择的一个。

15.如权利要求12所述的方法,其中一个或多个路由表之一与IPv6网络地址的十六个最高有效位相关联。

16.如权利要求12所述的方法,其中一个或多个路由表之一与IPv6网络地址的十六个最高有效位相关联,并且一个或多个路由表中的其它路由表与所述网络地址的相应的八位组相关联。

17.一种用于路由具有网络地址的网络分组的产品,包括:用于接收所述网络分组的装置;和

用于解码与所述网络地址相关联的前缀位以便把所述网络地址识别为单播网络地址和任意播网络地址中所选择的一个的装置。

18.如权利要求17所述的产品,其中所述前缀位包括至少两位,所述两位被编码来表明所述单播网络地址、任意播网络地址以及兼为单播网络地址和任意播网络地址两者中所选择的一个。

19.如权利要求17所述的产品,还包括:

用于在一个或多个路由表中执行与所述网络地址相关联的查找的装置;

用于根据连续的查找来识别输出端口的装置;

用于判定是否识别了输出端口以及所述网络地址是否是单播网络地址的装置,以及响应于此,用于向所识别的输出端口发送所述网络分组的装置;和用于判定是否识别了输出端口以及所述网络地址是否是任意播网络地址的装置,以及响应于此,用于向所识别的输出端口发送所述网络分组的装置。

20.如权利要求19所述的产品,还包括:

用于判定所述输出端口是否被识别为一个以上的输出端口并且所述网络地址是否是任意播网络地址的装置,并且响应于此:用于检查与所述一个以上输出端口相关联的端口量度的装置,用于根据所述量度从所述一个以上输出端口中识别一个输出端口的装置;和用于向所识别的输出端口发送所述网络分组的装置。

21.如权利要求19所述的产品,其中一个或多个路由表之一与IPv6网络地址的十六个最高有效位相关联。

22.如权利要求19所述的产品,其中一个或多个路由表之一与IPv6网络地址的十六个最高有效位相关联,并且一个或多个路由表中的其它路由表与所述网络地址的相应的八位组相关联。

23.一种用于产生与具有网络地址的网络分组相关联的路由表的产品,包括:用于接收所述网络分组的装置;

用于解码与所述网络地址相关联的前缀位以便把所述网络地址识别为单播网络地址和任意播网络地址中所选择的一个的装置;

用于在一个或多个路由表中执行与所选择的网络地址位相关联的查找以便识别在所述一个或多个路由表中所存储的匹配路由的装置;

用于判定是否识别了所述匹配路由并且是否所述匹配路由对应于所述单播网络地址并且是否所述网络地址是所述任意播网络地址的装置,以及响应于此改变与在所述一个或多个路由表中所存储的匹配路由相关联的前缀位以便表明所述匹配路由对应于单播网络地址和任意播网络地址两者的装置;和用于判定是否识别了所述匹配路由并且是否所述匹配路由对应于所述任意播网络地址并且是否所述网络地址是所述单播网络地址的装置,以及响应于此改变与在所述一个或多个路由表中所存储的匹配路由相关联的前缀位以便表明所述匹配路由对应于单播网络地址和任意播网络地址两者的装置。

24.如权利要求23所述的产品,其中所选择的网络地址位对应于六十一位。

25.如权利要求23所述的产品,其中所述前缀位包括至少两位,所述两位被编码来表明所述单播网络地址、任意播网络地址以及兼为单播网络地址和任意播网络地址两者中所选择的一个。

26.如权利要求23所述的产品,其中一个或多个路由表之一与IPV6网络地址的十六个最高有效位相关联。

27.如权利要求23所述的产品,其中一个或多个路由表之一与IPV6网络地址的十六个最高有效位相关联,并且一个或多个路由表中的其它路由表与所述网络地址的相应的八位组相关联。

说明书 :

用于网际协议版本六的任意播寻址的方法和装置

[0001] 相关申请的交叉引用
[0002] 不适用
[0003] 关于联邦主办的研究的声明
[0004] 不适用或
[0005] 技术领域
[0006] 本发明总体上涉及网络寻址,并且尤其涉及用于网际协议版本六(IPv6)的任意播寻址。
[0007] 背景技术
[0008] 因特网通信格式由Internet工程任务组(Internet EngineeringTask Force IETF)决定。网际协议(IP)版本四(IPv4)自从其于20世纪70年代开始就提供了全球因特网的基本通信机制。如所知道的那样,因特网上的通信由在网络分组内所包含的因特网数据报组成,每个数据报具有数据报首部和数据报数据区域。所述数据报首部包括源IP地址和目的IP地址,上述两个IP地址在IPv4中长度都是三十二位。IPv4地址包括“netid(网络ID)”和“hostid(主机ID)”,其中所述netid指定网络而hostid指定主机,例如所述网络上的个体计算机。
[0009] 存在可以使用目的地址的各种方式。例如,在“单播”寻址中,目的地址把网络分组指向一个目的地。因此,单播是点到点通信。IPv4还支持“多播”寻址,其中数据报被指向所选择的接收方主机组,而不是单个主机。因此,多播是点到多点通信。例如在同时向一组接收方发送视频和音频流时使用多播。IPv4还支持“广播”寻址,其中数据报被指向连接到网络的所有接收方。由在IPv4分组首部开始附近的几个首部位来识别寻址的类型,单播、多播或广播。
[0010] 网际协议版本六(IPv6)由IETF在20世纪90年代中期产生。各种因素迫使产生IPv6。值得注意地,网络和连接到因特网的设备异常增长导致在IPv4的32位寻址技术下可用的因特网地址存在预期缺陷。因此,在各种变化中重要的是IPv6采用128位寻址技术。 [0011] IPv6保留了与IPv4相关联的单播和多播寻址和通信机制,但是去除了广播能力。IPv6还包括被称为“任意播(anycast)”的新的寻址方式。任意播是意在传送到所指定的任意播成员组中最近一个的寻址方式。任意播成员组中的每个具有相同的任意播地址。然而,对任意播组的通信只被发送到最近的任意播成员,如下面所更详细地描述那样。 [0012] 请求注解(Request for Comments RFC)3513或简写为RFC3513,把“任意播”地址识别为被分配给一个以上网络接口的地址,其具有以下属性,依照路由协议的距离量度把被发送到任意播地址的数据分组(即,数据报)路由到具有该地址的“最近的”网络接口。
最近的主机可以依照各种方式来确定,例如通过网络分组到达所选择的任意播组成员所必须经过的最少的路由器跳数,或者对于另一例子来说通过与路由器端口选择相关联的最小时间延迟来确定。
[0013] 在一个特定的实施例中,任意播组可以包括具有冗余数据和功能性的服务器。当主机与任意播服务器组通信时,最近的服务器接收网络分组并据此作出响应。 [0014] 当前(例如在RFC3513中所指定),根据单播地址空间来分配任意播地址。因而,任意播地址在句法上与单播地址难以区别。当把单播地址分配给一个以上的任意播组成员并因而使其转变为任意播地址时,必须把被分配有所述地址的成员显式地配置为知道它应当识别所述任意播地址。
[0015] 存在关于任意播寻址的各种未解决的操作问题。在RFC1546中论述了某些问题。例如,使用任意播目的地址从主机发送到任意播服务器组的第一网络分组,由该任意播服务器组中的一个特定服务器接收。然而,如果使用所述任意播目的地址把第二网络分组从所述主机发送到该任意播服务器组,那么不能保证所述第二网络分组会被接收第一网络分组的相同的服务器接收。然而,在许多实例中可能希望接收第二网络分组和随后网络分组的服务器与接收第一网络分组的服务器是同一个服务器。可以依照各种方式来解决此类问题。例如,当服务器接收到第一网络分组时可以用单播地址作出响 应,此后主机和所述服务器可以利用单播寻址的分组来通信。
[0016] 不仅存在关于任意播寻址的操作问题,而且尚未定义所述任意播地址本身的具体位级结构。使用任意播寻址具有确定的优点,包括但不局限于较短的路由选择路径并且使得在主机和任意播成员之间的通信更快。然而,IPv6没有规定对任意播寻址完全预期的使用,没有解决其所有操作问题,并且没有指定其位级结构。
[0017] 因此,可能希望克服上述及其它缺点,并且提供一种用于依照能够在相同网络上一起使用任意播寻址、单播寻址和多播寻址的方式来指定任意播位级地址结构的系统和方法。

附图说明

[0018] 根据以下附图的详细说明将更完整地理解本发明的上述特征以及本发明本身,其中:
[0019] 图1是具有任意播组的示例性网络的框图;
[0020] 图2是用于依照本发明示出单播网络地址和任意播网络地址的位图表; [0021] 图3是用于示出结合图2的任意播和单播网络地址所使用的路由表的图表; [0022] 图4是用于示出路由单播和任意播网络地址的过程的流程图;和 [0023] 图5是用于示出用来产生具有单播和任意播地址的路由表的过程的流程图。 具体实施方式
[0024] 参照图1,示例性的网络10包括经由多个路由器14a-14f互连的多个主机计算机12a-12h,例如个人计算机。网络10还可以包括也耦合到所述网络的服务器16a-16c,所述服务器例如可以是网络服务器、应用服务器或数据库服务器。每个路由器具有两个或更多端口,这里被示为与每个路由器14a-14f相关联的四个端口P1-P4。
[0025] 如所知道的那样,网络通信包括包含有网络数据报的网络分组,每个网络数据报具有源地址、目的地址和用户数据。对于IPv4,源和目的地址都是三十二位长,而对于IPv6,源和目的地址都是128位长。网络分组沿着网络10传播。
[0026] 采用路由器14a来代表路由器14a-14f中的每个,路由器14a具有四个端口P1-P4,所述端口P1-P4向网络10提供输入/输出连接。路由器14a还包括路由表,下面结合图3更完整地描述了所述路由表。路由器14a的路由表把在网络分组中所包含的目的网络地址映射到路由器端口,例如与所述路由器14a相关联的四个端口P1-P4之一。依照这种方式,在路由表中识别网络分组的目的地,并且从在所述路由表中所识别的端口发出所述网络分组。最后,在路由器14a-14f之间的一个或多个跳(hop)之后,网络分组找到去往具有目的地址的主机12a-12h或服务器16a-16c的路线。
[0027] 由虚线椭圆20所表示的例如公司之类的组织可以具有专用的路由器14f,主机计算机12d-12h和服务器16b、16c通过所述路由器14f连接到网络10。集线器18a提供了从一组主机计算机12f-12h到路由器14f的端口P2的连接。
[0028] 在少量时间内所执行的对网络分组的高效路由选择趋向于在路由器之间具有少量的跳,并且在所述路由器之间的路径趋于相对较快。作为选择,认识到在大量时间内所执行的低效路由选择趋于在路由器之间具有大量的跳,并且在所述路由器之间的路径趋于相对较慢。
[0029] 如所知道的那样,常规的网络分组包含对应于在路由器之间多个跳的跳计数。如果跳计数变得很大,例如三十一,那么丢弃网络分组,典型情况下导致向发送方返回错误消息。如同样所已知的那样,常规的路由器记录与其端口相关联的量度种类。例如,路由器可以记录与从每个相应端口所输出的数据相关联的时间延迟。
[0030] 对于常规的单播寻址,把网络分组从网络主机发送到由目的单播地址所识别的具体的网络目的地。网络分组通常包括单播源地址和单播目的地址。网络目的地例如可以是路由器、服务器或另一主机。采用主机计算机12a来表示网络分组的源,并且采用主机计算机12d来表示所述网络分组的目的地,所述网络分组可以依照各种方式传播到主机计算机12d。例如,网络分组可以从主机计算机12a传播到路由器14a。路由器14a可以在其路由表中找到网络分组内的目的地址,并且可以据此把该消息转送到路由器14b。类似地,路由器14b可以把该网络分组转送到路由器14c,所述路由器14c可以把所述网 络分组转送到路由器14e,所述路由器14e可以把所述网络分组转送到路由器14d,然后所述路由器14d把所述网络分组递送到主机计算机12d。可以看出从路由器14a到路由器14e再到路由器
14d的只要求较少路由器跳的另一路径。
[0031] 如上所述,对于任意播寻址,把网络分组从网络主机发送到任意播组最近的成员,所述任意播组的每个成员具有相同的任意播目的地址。网络分组例如可以包括单播源地址和任意播目的地址。采用主机计算机12a来表示网络分组的源,并且采用服务器16a、16b来表示所述网络分组的目的地,所述服务器16a、16b是任意播组的成员,所述网络分组可以依照各种方式传播到服务器16a、16b之一。然而,网络分组会沿着较短路径从主机计算机12a传播到任意播服务器组16a,16b的特定目的成员,所述较短路径比网络分组传播到任意播服务器组16a,16b的任何其它成员的不同且较长的路径都要短。 [0032] 现在参照图2,所示出的在RFC 2372中所指定的IPv6单播地址格式包括各种字段,如同所示每个字段具有多个位,依照IPv6地址长度总计128位。从左至右,标记FP是格式前缀(例如,对于单播来说是001),标记TLA ID是最高级的聚集标识符,标记RES标识被保留以供将来使用的位,标记NLA ID是下一级聚集标识符,标记SLA ID是站点级聚集标识符,并且标记Interface ID是对应于网络实体的物理地址的接口标识符,所述物理地址例如是主机的以太网地址。
[0033] 如所知道的那样,网络地址的TLA ID、NLA ID和SLA ID部分都与在地址分级结构的不同级的路由器相关联。在分级结构高级上的路由器通常使用TLA ID来用于路由选择目的,在分级结构中级的路由器通常使用NLA ID来用于路由选择目的,而在分级结构最低级的路由器通常使用SLA ID来用于路由选择目的。TLA ID、NLA ID和SLA ID的网络地址分类使得易于由对应于其在分级结构内位置的路由器来执行分组处理。例如,TLA级路由器可以处理TLA ID来建立路由,NLA级路由器可以处理NLA ID来建立路由,而SLA级路由器可以处理SLAID来建立路由。还根据分级结构级来进行地址分配。
[0034] 如图2所示,依照本发明的任意播地址包括64个最高有效位,其具有与上述单播地址相同的位置和相同的作用。然而,任意播地址的三个最高有效位是前缀位FP,其被分配有不同于单播地址的前缀 数字。例如,单播地址的前缀可以是001,而任意播地址的前缀可以是010。
[0035] 如上所述,对于单播地址来说,网络地址的64个最低有效位(位0-63)用来识别物理地址。然而,对于任意播地址,可以依照下列方式来分配六十四个最低有效位。三十二个最低有效位可以被用作任意播组标识符。然而在其它实施例中,可以使用多于或少于三十二位。如上面结合图1所述,向特定的任意播组的每个成员分配相同的任意播地址,包括相同的任意播组标识符。任意播组成员可以是路由器、服务器、主机等。 [0036] 位六十一到六十三被用作范围标识符。然而在其它实施例中,可以使用其它位,并且可以使用多于3位或少于3位。范围标识符能够限制任意播组成员对网络的其它部分的可见性。在如同所示的一个特定实施例中,任意播范围标识符具有四个选项,被识别为节点本地、链路本地、站点本地和全局。节点本地标识符使分配给任意播组成员的任意播地址只能由网络节点内的网络实体看见(例如,自附着接口和逻辑接口)。例如可以使用节点本地标识符来对网络节点进行自检查,所述网络节点不要求在所述节点之外的外部通信。链路本地标识符允许更宽的可见性,使被分配给任意播组成员的任意播地址只能够被连接到任意播成员所连接的相同链路的网络实体(例如,其它对等节点)看见。在一个特定的实施例中,具有链路本地可见性的分组在特定的路由器以外不可见。站点本地标识符允许更宽的可见性,使分组能够在对应于具体网络站点的自含边界内发送(例如,所述网络站点可以是诸如内部网之类的公司网络)。然而在一个特定的实施例中网络站点可以被耦合到因特网,并且不把具有站点本地标识符的任意播分组路由到所述因特网。全局标识符允许更宽的可见性,使被分配给任意播组成员的任意播地址能够被连接到任何互连网络的所有网络实体看见,所述互连网络例如因特网。
[0037] 应当理解,任意播组可以包括例如路由器之类的任何网络节点,并且所述路由器可以处于三级路由器分级结构中的任何一个。因此,一组任意播节点,除具有任意播组ID和范围ID之外,在分级结构的高级处只具有TLA ID,在分级结构的中级处兼有TLA ID和SLA ID,并且在分级结构的最低级处可以具有TLA ID、NLA ID和SLA ID。上面中的每个借助前缀FP被识别为任意播地址,但是其它部分也可以与单播地址完全相同。前缀FP在把任意播地址与其它地址类型相区分中起重要作用。
[0038] 结合图3会看出,前缀FP还可以被提供为“两者”以便识别兼是单播地址和任意播地址的特定网络地址。
[0039] 虽然对于任意播地址,把网络地址的六十四个最低有效位中所特定选择的一些位与任意播范围标识符和任意播组标识符相关联,然而应当理解的是,在其它实施例中,可以把网络地址的六十四个最低有效位中选择的另外一些位与所述任意播范围标识符和任意播组标识符相关联,包括其它数目的位并且包括与所述范围标识符相关联的其它位编码。 [0040] 现在参照图3,示出了网络地址70的四十八个最高有效位,所述四十八个最高有效位具有与结合图2所示出的单播和任意播网络地址的四十八个最高有效位相同的作用和位的位置。还示出了与路由器相关联的分级路由选择表结构,分别具有16位的第一特里表(trie-table)72、8位的第二和第三特里表74、76,以及下一跳表78和量度表80。由深色条所描绘的网络地址70的第一、第二和第三部分70a、70b、70c分别与第一、第二和第三特里表72、74、76相关联。网络地址70的第一、第二和第三部分70a、70b、70c中的每个用来找到在相应特里表中的地址匹配(在所述地址匹配存在的情况下)。第二或第三特里表74、76中的地址匹配导致在下一跳表78中用于指定一个或多个输出端口的条目,其中所述路由器将从所述输出端口发送网络分组。如果网络地址70按前缀FP所识别是任意播地址,那么它可以具有一个以上的在相应任意播组内的可能目的地。然而,如下面所进一步描述,所述分组会被路由到最近的目的地。如果在第二或第三特里表74、76中没有发现任何地址匹配,那么所述路由器从被指定为默认输出端口的端口发送网络分组。 [0041] 量度表80可以指定与每个路由器端口和与该路由器端口连接的每个网络实体相关联的可能的性能量度。例如,成本值表示下一路由的链路成本(例如,与带宽相关联的值或与链路相关联的链路延迟),服务器负载是对应于在与路由器端口耦合的网络设备(例如 服务器)上的通信量负载百分比的值,并且路由器负载是对应于在所述路由器端口上通信量负载百分比的值。
[0042] 根据量度表80,可以清楚地识别每个路由器端口的预期性能。例如在某些情况下,在下一跳表78的条目78a,两个端口J和K被识别为可以用于发送网络分组的潜在端口。量度表80的相应部分80a识别出两个端口J和K在特定的时间具有不同的预计性能。例如,端口J当前是百分之六十的负载,而路由器端口K当前是百分之二十的负载。端口J所耦合的例如服务器之类的网络设备是百分之百的负载,而端口K所耦合的网络设备是百分之零的负载。因此,人们预计网络分组如果被发送到端口K,那么可能会比被发送到路由器端口J更迅速地传播到下一路由器。在上述例子中要选择哪个端口,J或K,可以根据所选择的可能量度来判定,例如下一链路成本、服务器负载和路由器负载。 [0043] 结合图4将清楚,例如在量度表80中所包含的量度之类的量度可以由任意播寻址来识别到网络分组的最终目的地的最短路径。
[0044] 前缀FP可以把网络地址70识别为单播地址、任意播地址或兼是单播和任意播网络地址。在一个示例性实施例中,网络地址70按照001前缀来识别单播地址,按照010前缀来识别任意播地址,并且按照011前缀来识别兼是单播地址和任意播地址。与三个最高有效位相关联的八种可能前缀的其它情况被保留以供将来使用。
[0045] 对于作为单播地址和任意播地址存在的地址,通过提供“两者”前缀,意味着所述地址兼适用于单播和任意播地址两者,由于它们共享相同的TLA ID、NLA ID和SLA ID(以及RES位),所以路由表中此地址的条目的数目被从二减少到一。因此,应当认识到通过具有‘两者’前缀,基本上可以通过不必在路由表中为单播和任意播地址设有独立的条目来减小路由表(即第一、第二和第三特里表72、74、76)的大小。然而应当认识到,为方便起见所示出的地址70只包括FP、TLA、RES和NLA地址位(四十八位),但是地址70还可以包括SLA地址位(图2)以便总共达到六十四位。
[0046] 虽然可以如上所述来减少特里表72、74、76中条目的数目,然而由于下一跳表78可以为单播和任意播地址都包括下一跳信息,所以下一跳表78中条目的数目可能增加。 [0047] 虽然示出了三个特里表72、74、76,然而应当理解的是,可以依照对应于少于三个或多于三个特里表的其它方式来划分网络地址70。另外,虽然所示出的前缀位FP具有特定的位编码,然而在其它实施例中,可以使用对应于三个前缀位FP的八个可能的编码内的其它编码。在其它实施例中,还可以使用多于三个或少于三个的前缀位,但是至少要有两个前缀位。虽然已经结合量度表80示出并描述了三个特定的量度,然而在其它实施例中,可以在量度表80中提供多于三个或少于三个的量度(包括没有量度)。
[0048] 现在参照图4,用于路由网络分组的过程100从步骤102开始,在步骤102中接收网络分组。在步骤104,解码前缀位,其可以是图2和3的前缀位FP。
[0049] 在步骤106,把在步骤102所接收的网络分组的目的网络地址部分与路由表和下一跳表相匹配,例如图3的第一、第二和第三特里表72、74、76和下一跳表78,以便识别匹配地址和与路由器相关联的一个或多个可以发送该网络地址的输出端口。 [0050] 在步骤108,如果在步骤106连同一个或多个端口一起识别了路由,那么过程继续至步骤110,在步骤110中,如果在步骤104所解码的前缀位表明网络地址是任意播地址,那么过程继续至步骤112。在步骤112,如果在步骤108结合所识别的路由还识别了一个以上的端口,那么检查端口量度。例如,检查在图3的量度表80中所示出的端口量度。在步骤114,根据在步骤112所检查的端口量度从一个以上端口中选择一端口。在步骤116,从步骤114所识别的路由器端口中发送网络分组。
[0051] 在步骤110,如果所接收的网络地址不是任意播网络地址,那么过程继续至步骤118,在步骤118中,如果在步骤104所解码的前缀位表明网络地址是单播地址,那么过程继续至步骤120,在步骤120识别输出端口。在步骤122,从步骤120所识别的路由器端口中发送网络分组。
[0052] 如果在步骤108没有在路由表中找到任何路由,那么过程继续至步骤124。在步骤124,从预定的默认路由器端口发送网络分组。
[0053] 现在参照图5,用于把路由添加到路由表的过程从步骤152开始,在步骤152接收网络分组。在步骤154,解码前缀位以便确定地址是 任意播地址、单播地址还是兼是任意播和单播地址,所述前缀位可以是图2和3的前缀位FP。
[0054] 在步骤156,把在步骤152所接收的网络分组的源网络地址部分与现有的路由表相匹配,例如图3的第一、第二和第三特里表72、74、76,以便识别匹配地址和与路由器相关联的输出端口。
[0055] 在步骤158,如果在步骤156识别了路由,那么过程继续至步骤160,在那里如果在步骤154所解码的前缀位表明网络地址是任意播地址并且如果匹配地址对应于单播地址,那么过程继续至步骤162。在步骤162,改变与在路由表中所存储的匹配地址相关联的前缀位以便其如上面结合图3所描述的来表明“两者”。依照这种方式,匹配地址不必在路由表中被存储两次,其中一次作为单播地址,而一次作为任意播地址。
[0056] 如果在步骤160所接收的网络地址不是任意播地址,那么过程继续至步骤164,在步骤164,如果所接收的网络地址作为替代是单播地址并且匹配地址是任意播地址,那么过程继续至步骤166。在步骤166,改变与在路由表中所存储的匹配地址相关联的前缀位以便如上所述来表明“两者”。
[0057] 如果在步骤158没有识别出与匹配地址相关联的任何路由,那么过程继续至步骤168,在步骤168检查网络分组的源地址部分以便确定在路由表中是否用新的条目来表明新的路由。如果新路由是适当的,那么把它添加到路由表。
[0058] 已经描述了本发明的优选实施例,本领域普通技术人员将清楚可以使用包含这些原理的其它实施例。另外,作为本发明一部分所包括的软件可以被实现为包括计算机可用介质的计算机程序产品。例如,这种计算机可用介质可以包括其上存储有计算机可读程序代码段的可读存储设备,诸如硬盘驱动器设备、CD-ROM、DVD-ROM或计算机软盘。计算机可读介质还可以包括光、有线或无线的通信链路,其上携带有作为数字或模拟信号的程序代码段。据此,认为本发明不应当限于所描述的实施例,而应当只由所附权利要求的精神和范围来限制。这里所列举的所有出版物和参考文献通过将它们全部引用来明确地结合。