基于实时拥塞反馈来更新最佳路径的方法转让专利

申请号 : CN200680030908.0

文献号 : CN101427497B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 米特什·德拉尔普瑞塔姆·沙赫阿莫·卡里瓦斯塔尔·瓦卢尔

申请人 : 思科技术公司

摘要 :

提供了基于实时拥塞反馈来更新最佳路径的技术。一种方法包括:监控从网际互联系统所接收的分组,其中,所述分组是在联网设备的多个外部接口之一上接收到的;检测所接收的分组包括实时信息,该实时信息表示在从联网设备的外部接口到网际互联系统的路径上的当前或迫近的拥塞情况;将实时信息通知给控制逻辑;从控制逻辑接收限定从外部接口到网际互联系统的一个或多个路径的改变的控制信息;以及改变从外部接口到网际互联系统的一个或多个路径。检查网际互联系统的外部接口上的进入流量可以使得响应于实时拥塞而改变第一网际互联系统的路由器中的路由、路由策略和PBR。

权利要求 :

1.一种用于在包括多个节点并支持多种拓扑的数据通信网络中路由数据分组的数据分组路由装置,包括:用于监控从网际互联系统所接收的分组的装置,其中,所述分组是在联网设备的多个外部接口之一上接收到的;

用于检测所接收的分组包括实时信息的装置,所述实时信息表示在从所述联网设备的所述外部接口到所述网际互联系统的路径上的当前或迫近的拥塞情况;

其中,所述当前或迫近的拥塞情况是由从所述联网设备的所述外部接口至所述网际互联系统的数据分组的第一流量流所经历的;

用于将所述实时信息通知给控制逻辑的装置;

用于从所述控制逻辑接收限定从所述外部接口到所述网际互联系统的一个或多个路径的改变的控制信息的装置;

其中,所述改变将数据分组的一个或多个其他流量流的流量转移至不同于所述路径的其他路径;

其中,所述改变维护数据分组的所述第一流量流的路径;以及

用于改变从所述外部接口到所述网际互联系统的所述一个或多个路径的装置。

2.如权利要求1所述的装置,包括用于将一个或多个分组从所述联网设备发送至所述网际互联系统的装置,其中,所述一个或多个分组是这样的格式:该格式可以由中间联网设备标记以表示当前或迫近的拥塞情况。

3.如权利要求1所述的装置,其中,所述所接收的分组是具有显式拥塞通知的传输控制协议分组,即Echo标志被设置的传输控制协议分组。

4.如权利要求1所述的装置,其中,所述用于监控从网际互联系统所接收的分组的装置包括用于将来自所述网际互联系统的分组分类为由所述分组中的属性所标识的流量流的装置。

5.如权利要求4所述的装置,其中,标识流量流的所述属性之一是与所述网际互联系统中的主机相关联的前缀。

6.如权利要求4所述的装置,其中,标识流量流的所述属性之一是与具有所述联网设备作为一部分的网际互联系统中的主机相关联的前缀。

7.如权利要求4所述的装置,其中,标识流量流的所述属性中的一个或多个属性也标识应用。

8.如权利要求1所述的装置,其中,所述用于将所述实时信息通知给控制逻辑的装置包括用于向所述控制逻辑发送关于在所述联网设备和所述网际互联系统之间的一个或多个路径上的延迟、抖动、分组丢失和损坏分组的探测信息的装置。

9.如权利要求1所述的装置,还包括:用于从所述控制逻辑接收限定所述联网设备中的一个或多个路由策略的改变的控制信息的装置,其中,所述联网设备在与其他联网设备交换路由信息时将遵从所述一个或多个路由策略;以及用于改变所述联网设备上的所述一个或多个路由策略的装置。

10.如权利要求1所述的装置,还包括:用于从所述控制逻辑接收限定所述联网设备中的一个或多个转发策略的改变的控制信息的装置,其中,所述联网设备在转发分组时将遵从所述一个或多个转发策略;以及用于改变所述联网设备上的所述一个或多个转发策略的装置。

11.一种用于优化在包括多个节点并支持多种拓扑的数据通信网络中转发数据分组的路由的路由优化装置,包括:用于基于由第一网际互联系统的多个外部接口中的一个外部接口所接收的来自第二网际互联系统的分组来从所述第一网际互联系统接收实时信息的装置,其中,所述实时信息表示在从所述一个外部接口到所述第二网际互联系统的路径上的当前或迫近的拥塞情况;

其中,所述当前或迫近的拥塞情况是由从所述第一网际互联系统的所述外部接口至所述第二网际互联系统的数据分组的第一流量流所经历的;

用于向所述第一网际互联系统提供与从所述多个外部接口到所述第二网际互联系统的一个或多个路径的改变有关的控制信息的装置其中,所述改变将数据分组的一个或多个其他流量流的流量转移至不同于所述路径的其他路径;

其中,所述改变维护数据分组的所述第一流量流的路径。

12.如权利要求11所述的装置,还包括用于从所述第一网际互联系统接收关于在所述第一和第二网际互联系统之间的一个或多个路径上的延迟、抖动、分组丢失和损坏分组的探测信息的装置。

13.如权利要求11所述的装置,还包括用于向所述第一网际互联系统提供与改变所述第一网际互联系统中的联网设备中的一个或多个路由策略有关的控制信息的装置,其中,所述联网设备在与其他联网设备交换路由信息时将遵从所述一个或多个路由策略。

14.如权利要求11所述的装置,还包括用于向所述第一网际互联系统提供与改变所述第一网际互联系统中的联网设备中的一个或多个转发策略有关的控制信息的装置,其中,所述联网设备在转发分组时将遵从所述一个或多个转发策略。

15.一种用于在包括多个节点并支持多种拓扑的数据通信网络中转发数据分组的系统,该系统包括:用于监控从第一网际互联系统所接收的分组的装置,其中,所述分组是在联网设备的多个外部接口之一上接收到的;

用于检测所接收的分组包括实时信息的装置,该实时信息表示在从所述联网设备的所述外部接口到所述第一网际互联系统的路径上的当前或迫近的拥塞情况;

用于将所述实时信息通知给控制逻辑的装置;

用于从所述控制逻辑接收限定从所述外部接口到所述第一网际互联系统的一个或多个路径的改变的控制信息的装置;

用于改变从所述外部接口到所述网际互联系统的所述一个或多个路径的装置;

用于基于由第一网际互联系统的多个外部接口中的一个外部接口所接收的来自第二网际互联系统的分组,从所述第一网际互联系统接收实时信息的装置,其中,所述实时信息表示在从所述一个外部接口到所述第二网际互联系统的路径上的当前或迫近的拥塞情况;

其中,所述当前或迫近的拥塞情况是由从所述第一网际互联系统的所述外部接口至所述第二网际互联系统的数据分组的第一流量流所经历的;以及用于向所述第一网际互联系统提供与从所述所述第一网际互联系统的多个外部接口到所述第二网际互联系统的一个或多个路径的改变有关的控制信息的装置;

其中,所述改变将数据分组的一个或多个其他流量流的流量转移至不同于所述路径的其他路径;

其中,所述改变维护数据分组的所述第一流量流的路径。

16.如权利要求15所述的系统,其中,所述数据分组路由装置还包括用于将一个或多个分组从所述联网设备发送至所述第一网际互联系统的装置,其中,所述一个或多个分组是这样的格式:该格式可以由中间联网设备标记以表示当前或迫近的拥塞情况。

17.如权利要求15所述的系统,其中,所述所接收的分组是具有显式拥塞通知的传输控制协议分组,即Echo标志被设置的传输控制协议分组。

18.如权利要求15所述的系统,其中,所述用于监控从第一网际互联系统所接收的分组的装置还包括用于将来自所述第一网际互联系统的分组分类为由所述分组中的属性所标识的流量流的装置。

19.如权利要求18所述的系统,其中,标识流量流的所述属性之一是与所述第一网际互联系统中的主机相关联的前缀。

20.如权利要求18所述的系统,其中,标识流量流的所述属性之一是与具有所述联网设备作为一部分的网际互联系统中的主机相关联的前缀。

21.如权利要求18所述的系统,其中,标识流量流的所述属性中的一个或多个属性也标识应用。

22.如权利要求15所述的系统,其中,所述用于将所述实时信息通知给控制逻辑的装置还包括用于向所述控制逻辑发送关于在所述联网设备和所述第一网际互联系统之间的一个或多个路径上的延迟、抖动、分组丢失和损坏分组的探测信息的装置。

23.如权利要求15所述的系统,其中,所述数据分组路由装置还包括:用于从所述控制逻辑接收限定所述联网设备中的一个或多个路由策略的改变的控制信息的装置,其中,所述联网设备在与其他联网设备交换路由信息时将遵从所述一个或多个路由策略;以及用于改变所述联网设备上的所述一个或多个路由策略的装置。

24.如权利要求15所述的系统,其中,所述数据分组路由装置还包括:用于从所述控制逻辑接收限定所述联网设备中的一个或多个转发策略的改变的控制信息的装置,其中,所述联网设备在转发分组时将遵从所述一个或多个转发策略;以及用于改变所述联网设备上的所述一个或多个转发策略的装置。

25.如权利要求15所述的系统,其中,所述路由优化装置还包括:用于从所述第一网际互联系统接收关于在所述第一和第二网际互联系统之间的一个或多个路径上的延迟、抖动、分组丢失和损坏分组的探测信息的装置。

26.如权利要求15所述的系统,其中,所述路由优化装置还包括:用于向所述第一网际互联系统提供与改变所述第一网际互联系统中的联网设备中的一个或多个路由策略有关的控制信息的装置,其中,所述联网设备在与其他联网设备交换路由信息时将遵从所述一个或多个路由策略。

27.如权利要求15所述的系统,其中,所述路由优化装置还包括:用于向所述第一网际互联系统提供与改变所述第一网际互联系统中的联网设备中的一个或多个转发策略有关的控制信息的装置,其中,所述联网设备在转发分组时将遵从所述一个或多个转发策略。

28.一种用于在包括多个节点并支持多种拓扑的数据通信网络中路由数据分组的数组分组路由方法,包括:监控从网际互联系统所接收的分组,其中,所述分组是在联网设备的多个外部接口之一上接收到的;

检测所接收的分组包括实时信息,该实时信息表示在从所述联网设备的所述外部接口到所述网际互联系统的路径上的当前或迫近的拥塞情况;

其中,所述当前或迫近的拥塞情况是由从所述联网设备的所述外部接口至所述网际互联系统的数据分组的第一流量流所经历的;

将所述实时信息通知给控制逻辑;

从所述控制逻辑接收限定从所述外部接口到所述网际互联系统的一个或多个路径的改变的控制信息;

其中,所述改变将数据分组的一个或多个其他流量流的流量转移至不同于所述路径的其他路径;

其中,所述改变维护数据分组的所述第一流量流的路径;以及

改变从所述外部接口到所述网际互联系统的所述一个或多个路径。

29.如权利要求28所述的方法,包括将一个或多个分组从所述联网设备发送至所述网际互联系统,其中,所述一个或多个分组是这样的格式:该格式可以由中间联网设备标记以表示当前或迫近的拥塞情况。

30.如权利要求28所述的方法,其中,所述所接收的分组是具有显式拥塞通知的传输控制协议分组,即Echo标志被设置的传输控制协议分组。

31.如权利要求28所述的方法,其中,监控步骤包括将来自所述网际互联系统的分组分类为由所述分组中的属性所标识的流量流。

32.如权利要求31所述的方法,其中,标识流量流的所述属性之一是与所述网际互联系统中的主机相关联的前缀。

33.如权利要求31所述的方法,其中,标识流量流的所述属性之一是与具有所述联网设备作为一部分的网际互联系统中的主机相关联的前缀。

34.如权利要求31所述的方法,其中,标识流量流的所述属性中的一个或多个属性也标识应用。

35.如权利要求28所述的方法,其中,通知步骤包括向所述控制逻辑发送关于在所述联网设备和所述网际互联系统之间的一个或多个路径上的延迟、抖动、分组丢失和损坏分组的探测信息。

36.如权利要求28所述的方法,包括:从所述控制逻辑接收限定所述联网设备中的一个或多个路由策略的改变的控制信息,其中,所述联网设备在与其他联网设备交换路由信息时将遵从所述一个或多个路由策略;以及改变所述联网设备上的所述一个或多个路由策略。

37.如权利要求28所述的方法,包括:从所述控制逻辑接收限定所述联网设备中的一个或多个转发策略的改变的控制信息,其中,所述联网设备在转发分组时将遵从所述一个或多个转发策略;以及改变所述联网设备上的所述一个或多个转发策略。

38.一种用于优化在包括多个节点并支持多种拓扑的数据通信网络中转发数据分组的路由的路由优化方法,包括:基于由第一网际互联系统的多个外部接口中的一个外部接口所接收的来自第二网际互联系统的分组,从所述第一网际互联系统接收实时信息,其中,所述实时信息表示在从所述外部接口到所述第二网际互联系统的路径上的当前或迫近的拥塞情况;

其中,所述当前或迫近的拥塞情况是由从所述第一网际互联系统的所述外部接口至所述第二网际互联系统的数据分组的第一流量流所经历的;

向所述第一网际互联系统提供与从所述多个外部接口到所述第二网际互联系统的一个或多个路径的改变有关的控制信息;以及其中,所述改变将数据分组的一个或多个其他流量流的流量转移至不同于所述路径的其他路径;

其中,所述改变维护数据分组的所述第一流量流的路径。

39.如权利要求38所述的方法,包括从所述第一网际互联系统接收关于在所述第一和第二网际互联系统之间的一个或多个路径上的延迟、抖动、分组丢失和损坏分组的探测信息。

40.如权利要求38所述的方法,包括向所述第一网际互联系统提供与改变所述第一网际互联系统中的联网设备中的一个或多个路由策略有关的控制信息,其中,所述联网设备在与其他联网设备交换路由信息时将遵从所述一个或多个路由策略。

41.如权利要求38所述的方法,包括向所述第一网际互联系统提供与改变所述第一网际互联系统中的联网设备中的一个或多个转发策略有关的控制信息,其中,所述联网设备在转发分组时将遵从所述一个或多个转发策略。

说明书 :

基于实时拥塞反馈来更新最佳路径的方法

技术领域

[0001] 本发明一般涉及网际互联领域。本发明更具体地涉及用于响应于拥塞而更新由路由协议所确定的最佳路径的方法。

背景技术

[0002] 该部分中所描述的方法可以被追逐,但不一定是以前已被设想或追逐的方法。因此,除非在这里另外指出,否则该部分中所描述的方法不是本申请中的权利要求的现有技术并且不承认其通过包括在该部分中就是现有技术。
[0003] 在诸如公共因特网之类的互联网络中,为了将分组从一个端点主机发送到另一个端点主机,发送主机仅需要将另一主机所拥有的因特网协议(IP)地址放入该分组中并且依赖诸如路由器、交换机、桥接器和集线器之类的元件的网络进行实际递送。IP地址可以共享前缀,该前缀由服务供应商分配,或者由拥有主机作为其一部分的站点的机构来提供,或者直接从美洲互联网号码注册管理机构(ARIN)获得。前缀实际上是所有可能的IP地址的空间内的子空间,并且可以包括一个或多个局域网(LAN)。
[0004] 由路由器、交换机、桥接器和集线器将分组从源在物理上移动至目的地的处理被称为转发。通常,交换机、桥接器和集线器工作在开放式系统互连(OSI)模型的第1层或第2层,并且对利用逻辑IP地址在第3层发送分组的主机是不可见的。另一方面,路由器利用一个或多个第3层路由协议来交换路由信息并且维护包括至各个目的地的最佳路径的路由表。路由表中的目的地可以是前缀以及个体IP地址。尽管路由器上的接口可以是双向的,但是路由表中的最佳路径是单向的。路由表中指向目的地的最佳路径指导路由器将地址为目的地的分组转发至为该路径所指定的特定下一跳。但是,最佳路径不指定路由器上必须接收分组的接口。接收路由器通常可能利用通过路由协议所交换的路由信息而仅影响发送路由器的路径。
[0005] 在因特网中,自治系统(AS)是IP网络和路由器的集合,其在一个或多个向因特网提供共用路由策略的实体的控制之下。在单个AS内,诸如IGRP、EIGRP、OSPF和RIP之类的内部网关协议(IGP)可以被用于交换路由信息。在分立自治系统之间,诸如EGP和BGP之类的外部网关协议(EGP)可以被用于交换路由信息。
[0006] BGP是因特网的核心路由协议。BGP讲者(BGP speaker)可以是将BGP运行作为其所支持的路由协议之一的路由器,其主要功能是与其他BGP讲者交换网络可达性信息,包括关于路径中所涉及的自治系统的列表和其他与该路径有关的属性的信息。
[0007] 自治系统边界处与另一自治系统中的路由器通过外部BGP(eBGP)交换路由信息的路由器被称为边界路由器。边界路由器所得知的路由信息可以被通过内部BGP(iBGP)重新分发到同一自治系统中的其他BGP讲者。一个路由协议所得知的路由信息也可以被重新分发到其他路由协议。
[0008] BGP可被网际互联系统用于实现多宿(multihoming),这是一种用于在发生影响单个服务供应商的故障或拥塞的情况下通过将网际互联系统连接到两个或更多个服务供应商来保持网络性能和回弹性(resiliency)的技术。多宿的网际互联系统可以利用如BGP的在一个或多个边界路由器上运行的协议来通知因特网其余部分:其可以通过经由两个或更多个服务供应商的多次路由而被到达。
[0009] BGP讲者通过查看与或许可以通过其转发分组的候选路径有关的许多属性来确定候选路径中的最佳路径。这种属性例如包括本地偏好、AS路径和多出口辨别器(MED)量度。在来自加利福尼亚州圣何塞市的CiscoSystems公司的路由器上,加权属性也可以被分配给候选路径并且在路径比较中被考虑。一旦指向目的地的最佳路径被诸如BGP的路由协议确定,相应的路由就被更新或者被在路由表中创建,并且可能地,至目的地的与前一最佳路径确定相对应的前一路由可以被从路由表中删除。该路由通常包含关于目的地、下一跳、接口和量度的信息,这些信息可以是从路由协议中的与最佳路径相关联的属性映射的。
[0010] 路由器在路由协议中的行为可以由路由策略控制。路由策略影响通过路由协议所交换的路由信息的流。例如,对于由路由器所接收的路由信息,路由策略可以基于接入列表、前缀、团体、路由图来过滤候选路径,接受一些路径,接受并修改其他一些路径,并且拒绝其他路径。对于将由路由器所发送的信息,路由策略可以基于所述相同的构造来过滤路径,允许一些路径被暴露于其他路由器,允许并修改其他一些路径,并且防止其他路径被交换。特别地,路径的诸如加权、本地偏好、AS路径和多出口辨别器(MED)之类的属性也可以被路由策略修改。而且,根据目的地、下一跳、接口和量度的从路由协议中的最佳路径到路由表中的路由的映射可以由路由策略控制。
[0011] 同样,路由器在转发分组过程中的行为可以由基于策略的路由(PBR)来控制。PBR与接口绑定并且指导接口如何处理所接收的分组。具体地,分组应该被转发还是被丢弃、分组应该被转发至何处以及分组中的字段应该如何设置都可以由PBR直接控制。在PBR的控制下,将被转发的分组被分类为不同的类。分组分类的标准可以直接基于与OSI模型中的各个层相关联的属性,而不是仅限于第3层IP属性。例如,分组的分类和进一步的转发可以基于与分组相关联的前缀或应用。不与任何类的标准相匹配的分组被以常规的非PBR方式路由,例如通过路由表。例如,与来自内容服务器的HTTP应用相关联的分组可以在一个类中;与某个前缀中的数据库系统相关联的分组在另一个类中;与VoIP相关联的分组在又一个类中;并且所有其他不属于任何在PBR下所定义的类的分组被通过路由表以常规方式路由。对于不同类中的分组,可以采取不同的动作。例如,VoIP分组可以被具体引导至具有低延迟和小抖动的路径。此外,在转发之前,可以通过设置分组中的字段值来专门标记VoIP分组。
[0012] 术语“最佳路径”通常指的是由诸如BGP之类的路由协议所维护的路由信息库(RIB)中所有指向目的地的候选路径中的优选路径。本说明书和所附权利要求书中所使用的术语“最佳路径”可以指的是通过路由协议所得知或者在路由策略下所建议的路由表中的路由(可能对应于路由协议所维护的RIB中的最佳路径)。或者,术语“最佳路径”也可以指的是由PBR基于前缀或应用而为一类分组所指定的路径。
[0013] 在操作上,建立路由策略或者PBR(这直接或间接影响最佳路径的确定)经常基于非实时信息,例如,针对服务供应商、或者所使用的接口类型(例如10/100以太网接口或OC12接口)、或者由诸如“traceroute”之类的工具所采集的分组丢失、延迟和可达性信息所收集的统计。通常,策略就绪很长时间,直到一些故障例如通过用户投诉或者通过一些性能测量工具而被报告,或者直到各个自治系统中的某处所做的一些配置变化影响到网际互联系统与因特网其余部分的接入。这种用于策略配置的启发式的自组织方法不适于处理与服务供应商有关的管制(brownout)情况,其中经过服务供应商网络的转发路径经受可能由服务供应商网络内的一些拥塞链路所引起的逐步劣化。
[0014] 用于策略配置的启发式的自组织方法也不适于处理不时变化的实时流量模式。例如,特定流量模式可能过度使用某些至服务供应商的外部接口或者出口,而对其他外部接口或者出口的使用不足。而且,一种要求短延迟、低分组丢失或者小抖动的流量可以被替代地转发至一路径,该路径呈现可能由服务供应商网络内的一些拥塞链路所引起的相反特性。
[0015] 尽管TCP不是路由协议,但它是知晓路径上的拥塞的面向连接的传输协议。例如,TCP在拥塞形成时检测到分组的丢弃,并且立即改变传输参数以弥补拥塞(“补偿”)。在一些示例中,网络本身可能不是拥塞的,但是分组可能由于校验和错误、主机上的重负荷等而已被丢失,故发生虚假补偿。因此,由错误的补偿对吞吐量的降低经常是不必要的。
[0016] 为了克服TCP中的这个问题,开发了显式拥塞通知(ECN)机制,如IETF RFC 3168中所述,其内容通过引用而被全部合并于此,如同在此叙述。ECN允许中间路由器将当前或迫近的拥塞情况显式地传送给主机。但是通常,主机仍然通过降低TCP连接的吞吐量来对此通知作出反应。这是不希望的,因为TCP可能在处理诸如实时视频流之类的高吞吐量、时间严格的应用。如果不是对单个TCP应用采用本地补救方法,而是可以例如通过实现路由表、路由策略和PBR的改变来以某种最优方式在所有可用的外部接口上转移或分布总流量,则可以避免该问题。
[0017] 基于前述内容,需要一种基于实时拥塞反馈来动态即时更新最佳路径的方法,该方法不受现有方法所受的限制。

附图说明

[0018] 在附图的各图中通过示例而非限制地图示出本发明,在附图中,相似的标号指示类似的元件,并且其中:
[0019] 图1示出可以与一实施例一起使用的示例网络。
[0020] 图2是示出一个实施例中在用于检测和提供对实时拥塞反馈的通知的边界路由器上运行的功能元件的框图。
[0021] 图3是示出备用OER MC与活跃OER MC配对以形成高可用性配置的框图。
[0022] 图4图示出一实施例中的NetFlow(网络流)高速缓存。
[0023] 图5示出一示例网络,在该示例网络中,OER MC可以主动地测量与从边界路由器上的外部接口到集中点的路径有关的网络情况。
[0024] 图6是与TCP应用有关的使用情况图。
[0025] 图7是图示出在其上可以实现一实施例的计算机系统的框图。
[0026] 图8A是图示出OER边界路由器应用的方面的流程图。
[0027] 图8B是图示出内部路由器应用的方面的流程图。
[0028] 图9是图示出OER MC应用的方面的流程图。

具体实施方式

[0029] 描述了基于实时拥塞反馈来动态即时更新最佳路径的方法和装置。在下面的描述中,出于说明的目的,给出了许多具体细节以提供对本发明的全面理解。但是,本领域技术人员将会清楚,可以在没有这些具体细节的情况下实施本发明。在其他实例中,公知的结构和设备被用框图形式示出以避免不必要地模糊本发明。
[0030] 这里,根据以下提纲描述实施例:
[0031] 1.0综述
[0032] 2.0结构和功能概述
[0033] 3.0监控网络流量流的方法
[0034] 4.0实现机制——硬件概述
[0035] 5.0扩展和替换物
[0036] 1.0综述
[0037] 在前面的背景技术中所确定的要求以及将从下面的描述中变得清楚的其他要求和目标在本发明中得以实现,本发明在一个方面中包括一种基于两个网际互联系统之间的实时拥塞反馈来动态即时更新最佳路径的方法。所述方法在第一网际互联系统上包括以下步骤:监控从第二网际互联系统所接收的分组;检测所接收的分组包括实时信息,该实时信息表示在所述两个网际互联系统之间的一个路径上的当前或迫近的拥塞情况;将实时拥塞信息通知给控制逻辑;从控制逻辑接收限定一个或多个路径中的改变的控制信息;以及改变从第一网际互联系统的外部接口到第二网际互联系统的一个或多个路径。
[0038] 在另一个方面中,本发明提供一种由相应的控制逻辑所实现的方法,该方法包括以下步骤:从第一网际互联系统接收在由第二网际互联系统发送的分组中所包含的实时拥塞信息;以及向第一网际互联系统提供与改变两个网际互联系统之间的一个或多个路径有关的控制信息。
[0039] 在其他方面中,本发明包括被配置用于实现前述步骤的计算机装置和计算机可读介质。
[0040] 2.0结构和功能概述
[0041] 图1示出可以与一实施例一起使用的示例网络。图1示出形成组合网络100的网际互联系统120、140,网际互联系统120、140被通过服务供应商(SP)162-172的网络可通信地耦合,组合网络100本身可以是全球因特网的一部分。
[0042] 如图1所示,网际互联系统120具有三个边界路由器(BR)104-108,这三个边界路由器104-108具有直接连接到服务供应商162、164和172的外部接口块1040、1060和1080。外部接口块1040、1060和1080中的每一个可以包含多个外部接口。位于局域网(LAN)130中的主机(S)116通过内部BGP路由器110和内部路由器(R)114连接到边界路由器104-108。
[0043] 因为网际互联系统120通过其边界路由器104-108连接到两个或更多个服务供应商,所以网际互联系统120是多宿的。边界路由器104-108可以更新它们在其他自治系统中的等同物以及世界的其余等同物,以告知通过服务供应商162、164和172的多个路径可被用于到达网际互联系统120中的前缀(例如LAN 130)或者个体IP地址(例如S 116)。这些更新中所提供的路由信息可能影响其他自治系统中的路由器在试图递送目的地为网际互联系统120中的主机的分组时所采用的最佳路径。
[0044] 此外,可以在网际互联系统120中的路由器上设立路由、路由策略和PBR,以在外部接口块1040、1060和1080中的外部接口的外出方向上控制对这些分组的转发,所述分组源自网际互联系统120但目的地是其他一些网际互联系统中的主机,例如网际互联系统140中的D 142。
[0045] 在一个实施例中,优化出口路由主控制器(OER MC)102在网际互联系统120中参与出口路由优化的路由器上设立路由、路由策略和PBR。术语“出口”指的是边界路由器104-108上连接到另一个自治系统的外部接口的外出方向。可以通过OER MC 102和边界路由器104-108之间的要么直接要么间接的通信链路来交换状态信息和控制信息。根据一个实施例,OER MC 102和边界路由器104-108将消息传送协议用于传送状态信息和控制信息。例如,在一个实施例中,边界路由器104-108利用鸣叫(BEEP)的SOAP消息或者利用鸣叫的专用消息传送格式将实时拥塞信息传送给OER MC 102。适当的消息传送协议可以结合编码方案、连接管理系统和在每个消息的基础上进行认证的机制。或者,消息传送机制可以使用鸣叫的XMLRPC。消息传输和消息编码的具体形式对于实施例而言并不重要。
[0046] 网际互联系统140具有两个路由器144、146和主机(D)142。路由器144和146直接连接到服务供应商168-172。网际互联系统140可以是也可以不是多宿的。此外,网际互联系统140可以是也可以不是独立的自治系统。例如,在一个实施例中,网际互联系统140是服务供应商的自治系统(例如SP5 170的AS)的一部分。可以从诸如SP5 170之类的服务供应商所拥有的IP地址空间中分配用于网际互联系统140的前缀。
[0047] 与网际互联系统120相似,服务供应商162-172中的每一个是自治系统(AS)。网际互联系统120和140之间存在多个路径。这些路径中的一些仅涉及120和140之间的一个自治系统。具体地,边界路由器108上的外部接口和路由器146之间的路径在中间仅涉及一个自治系统,即服务供应商172。另一方面,边界路由器106上的外部接口和路由器146之间的路径在中间涉及三个自治系统,即服务供应商164、166和170。或者,边界路由器104上的外部接口和CR1或CR2之间的路径在中间涉及两个自治系统,即或者是服务供应商162和168,或者是服务供应商162和170。
[0048] 通常,经过最少服务供应商的路径或者最短的AS路径被认为是最佳路径,因为它们涉及最少的自治系统路径跳。例如,在图1中,路径(108)→172→(146)好于其他路径,例如(106)→164→166→170→(146),这是因为前一AS路径在中间涉及最少的自治系统。但是,基于最短AS路径来选择最佳路径可能并非总是最优的。例如,沿着最佳路径的网络元件可能是过度使用的并且最终变得拥塞;最佳路径所经过的服务供应商可能正经受拥塞或者因特网“管制”;并且不同的路径可能需要较低的金钱成本。因此,在选择最佳路径的过程中也需要在诸如本地偏好、MED和加权之类的其他属性上比较路径。
[0049] 图2是示出边界路由器的功能元件的框图,该边界路由器可以检测和提供对实时拥塞反馈的通知。例如,边界路由器200可以装有可从加利福尼亚州圣何塞市的Cisco Systems公司得到的Cisco IOS 软件,并且边界路由器200的功能元件可以包括Cisco TMIOS的功能单元。在一个实施例中,边界路由器200的功能元件包括NetFlow 服务220、网络应用识别(NBAR)服务230和IP服务等级代理(IP SLA)服务240。图2仅作为示例示出了NetFlow服务220、网络应用识别(NBAR)服务230和IP服务等级代理(IP SLA)服务
240,其他实施例可以使用执行如这里所描述的类似功能的不同元件,包括来自不同供应商的软件元件。
[0050] NBAR服务230是可以识别各种应用的分类引擎,这些应用包括动态地分配TCP或UDP端口号的Web应用和客户端/服务器应用。
[0051] NetFlow服务220和NBAR服务230使得边界路由器200能够监控其外部接口上的网络流。在一个实施例中,网络流是给定的源和目的地主机之间的单向分组序列。网络流是高度粒状的并且可以由诸如IP地址和传输层应用端口号之类的各种流相关属性来标识。NetFlow服务220也可以可选地利用IP协议类型、服务类型(ToS)和输入接口标识符来标识流。一旦分组被从另一个网际互联系统接收到,NetFlow服务220和NBAR服务230就可以识别与分组相关联的前缀或应用。另外,NetFlow服务220可以在IP或TCP头部的任何字段中检查拥塞情况指示。
[0052] IP SLA服务240是主动探测和监控服务,其覆盖较宽范围的协议和应用。IP SLA服务240可以以UDP、TCP、ICMP、HTTP、DNS、DHCP、FTP等形式来发送主动探测分组和接收响应分组。例如,边界路由器200可以通过从IP SLA 240向路由器(例如图1中的146)上的远程IP SLA应答器发送去往目的地的适当的探测分组来主动地检测该目的地是否可达,而不是被动地等待一些网络事件来触发ICMP分组。
[0053] IP SLA服务240通过生成去往远程IP SLA应答器的周期性的或者应要求的(on demand)流量并且监控来自远程IP SLA应答器的响应流量,为边界服务器200提供测试延迟、抖动、损坏分组或分组丢失的能力。另外,IP SLA也可以通过使用以下探测分组来检测实时拥塞情况,所述探测分组是符合RFC 3168中所给出的要求的格式。在优选实施例中,OERMC 102通过OER MC 102和边界路由器104-108之间的通信链路从IPSLA接收探测信息。
[0054] 从例如图1中的104-108的边界路由器到例如162、164和172的服务供应商的多个外部接口可以被优化以避免拥塞、将成本最小化、改善性能并且平衡多个外部接口之间的负载。如上所述,根据一个实施例,OERMC 102控制关于多个外部接口的优化。在一个实施例中,OER MC 102存储了将在为路由器生成路由、路由策略和PBR的过程中所要遵从的规则和策略。可以在如图所示的分立设备上或者在图1的网际互联系统120中的路由器之一(例如BGP路由器110)上实现OER MC 102。
[0055] 图3是示出备用OER MC与活跃OER MC配对以形成高可用性配置的框图。在一个实施例中,备用OER MC可以与活跃OER MC配对以形成高可用性配置,如图3所示。在这样的实施例中,如果活跃OER MC102失效,则备用OER MC 302可以迅速变得活跃并且接管将出口(外部接口)路由优化的任务而无需大量的故障时间。两个OER MC 102和302之间可以具有通信链路以交换状态信息、控制信息、心跳信息和检查点信息。可以在每个OER MC和每个参与出口(外部接口)优化的边界路由器之间提供冗余通信链路。例如,OER MC102可以具有至图1中的边界路由器104-108和BGP边界路由器110中的每一个路由器的冗余链路。
[0056] 图4图示出一实施例中的NetFlow高速缓存。NetFlow高速缓存400具有许多NetFlow条目,每个NetFlow条目对应于受监控的网络流。NetFlow高速缓存400中的省略号表示高速缓存中可以存在除了NetFlow条目402之外的条目。
[0057] NetFlow条目402包含唯一地标识网络流的流ID 410。在一个实施例中,流ID 410可以是目的地IP地址、目的地端口、源IP地址、源端口和协议的五元组。在另一个实施例中,流ID 410个体或者组合可以是目的地或源网络前缀。流ID 410可以可选地由其他属性结合上面所述那些属性来进一步标识。
[0058] NetFlow条目402也可以进一步包含来自TCP头部的两个受监控属性:拥塞窗口减小(CWR)412和显式拥塞通知回复(ECE)414。这两个字段可以用于提供RFC 3168中所描述的显式拥塞通知功能。NetFlow条目402中的省略号表示条目中可以存在除了形成流ID410和两个受监控TCP属性412和414的那些属性之外的属性。
[0059] OER MC可以通过边界路由器上所采用的NetFlow或NBAR特征来被动地监控多个外部接口上的网络流,并且可以通过IP SLA来主动地探测网络情况。图5图示出一个实施例中的网络配置,在该网络配置中,OERMC 102可以主动地探测与从边界路由器104-108上的外部接口到集中点(路由器146)的路径有关的网络情况。
[0060] 因为来自网际互联系统120的边界路由器104-108上的外部接口的多个路径都通至路由器146,所以路由器146是集中点。在集中点(路由器146)上可以采用IP SLA应答器540。为了探测边界路由器104-108和路由器146之间在延迟、抖动、分组丢失、损坏分组或目的地可达性方面的网络情况,边界路由器104-108上的IP SLA 510-530中的每一个可以向路由器146上的IP SLA应答器540发送适当的探测分组并且检查来自路由器146上的IP SLA应答器540的响应分组及其定时。
[0061] 3.0基于实时拥塞反馈来动态即时更新最佳路径的方法和装置
[0062] 图6是与TCP应用有关的使用情况图。该图图示出两个与TCP应用有关的网络流由本发明的装置来监控的情形,以及如何检测路径上的拥塞情况。出于图示清楚示例的目的,图6中表示出参与流的有限个数的行为者;在可替换实施例中,任意数目的行为者可以参与。
[0063] 参照图1,为了图示清楚示例,假设在主机116、142之间建立TCP连接。因此,与TCP连接有关的第一网络流是从网际互联系统120中的主机116到网际互联系统140中的主机142的TCP流。该流的流ID 410包括:主机142的IP地址,作为目的地IP地址;主机142上的用于TCP应用的TCP端口,作为目的地端口;主机116的IP地址,作为源IP地址;
主机116上的用于TCP应用的TCP端口,作为源端口;以及TCP,作为协议。如果这些TCP端口中的一个曾是与FTP服务相关联的公知端口,则该流ID 410实际上将会标识在两个主机
116和142之间运行的FTP应用。
[0064] 继续该示例,第二网络流是是从网际互联系统140中的主机142到网际互联系统120中的主机116的TCP流。该流的流ID 410包括:主机116的IP地址,作为目的地地址;
主机116上的用于TCP应用的TCP端口,作为目的地端口;主机142的IP地址,作为源IP地址;主机142上的用于TCP应用的TCP端口,作为源端口;以及TCP,作为协议。
[0065] 在各种实施例中,这两个流可以可选地被相关、聚集并由边界路由器108上的NetFlow服务220作为单个流记录报告给OER MC 102。这两个流也可以可选地分别由与以下网络相关联的前缀来标识,源或目的地IP地址是所述网络的一部分。
[0066] 在步骤601中,TCP应用使得主机116发送ECN-setup SYN(ECN设立同步)分组。ECN-setup SYN分组表示发送者方面愿意使用RFC 3168中所描述的显式拥塞通知(ECN)。
该ECN-setup SYN分组到达边界路由器108,以被通过边界路由器108上的外部接口转发至主机142。在步骤603中,边界路由器108上的NetFlow服务220为该新流在NetFlow高速缓存400中创建NetFlow条目402。同时,ECN-setup SYN分组被转发至服务供应商172,服务供应商172简单地继续将分组转发至下一跳。最终,分组被递送至主机142。
[0067] 如果主机142同意将ECN用于该TCP会话,则在步骤605中,主机142向主机116发送回ECN-setup SYN-ACK(ECN设立同步确认)。该ECN-setup SYN-ACK分组经过服务供应商网络并且最终到达边界路由器108上的外部接口。在步骤607中,边界路由器108上的NetFlow服务220为该新流在NetFlow高速缓存400中创建NetFlow条目402。同时,该ECN-setup SYN-ACK分组被转发至主机142。图6中未示出的另外的ACK被从主机116传送至主机142以完成连接设立。
[0068] 主机116、142之间的这种ECN-setup SYN和ECN-setup SYN-ACK分组的交换在两个主机之间设立用于ECN的TCP连接和协定。
[0069] IP头部中的ECN字段包括ECN传输能力(ECT)位和拥塞状态(CE)位,并且用于显式拥塞通知。RFC 3168指定用于这些位的值。如果中间设备个体或者组合地经受网络拥塞,则分组的发送者可以告知中间分组转发设备根据RFC 3168在分组中设置ECN字段。
[0070] 最初,分组的发送者利用ECT(0)码点(ECT位=1;CE位=0)或者ECT(1)码点(ECT位=0;CE位=1)在分组中设置ECN字段。此后,网际互联系统120和140之间的中间路由器可以将初始的ECT(0)或者ECT(1)码点改变为CE码点(ECT位=1;CE位=1),以表示网络拥塞。中间路由器可以针对去往下一跳途中的分组采用主动队列管理。例如,路由器可以利用随机早期检测(RED)、加权随机早期检测(WRED)、尾部丢弃、随机、加权公平排队(WFQ)、自定义排队作为用于主动队列管理的方式。
[0071] 通常,在当前或迫近的拥塞情况被经受时,路由器结合主动队列管理能够具有采取诸如转发、丢弃或者降级(降低分组的优先级)转发之类的动作。根据本发明一实施例,首先,当经受当前或迫近的拥塞情况时,如果发现分组是ECN分组,则路由器应该优选地设置CE码点并且将其转发至下一跳,而不是将其丢弃。其次,如果发现分组的CE码点已被在前的路由器所标记,则路由器应该优选地尊重该标记并且将分组转发至下一跳而不是将其丢弃。
[0072] 再次参照图6,在TCP连接的设立之后,可以在主机116和142之间交换数据和ACK分组。在第一种情形中,网络拥塞既未被经受,也不是迫近的。例如,在步骤609中,主机116向主机142发送数据分组。因为该TCP应用的两个主机(主机116和142)已经在步骤601-607中同意使用ECN,所以数据分组的IP头部中的ECN字段被设置为要么ECT(0)码点要么ECT(1)码点。该数据分组到达边界路由器108,以被通过边界路由器108上的外部接口转发至主机142。在步骤611中,边界路由器108上的NetFlow 220更新在步骤603中为该流在NetFlow高速缓存400中所创建的NetFlow条目402。同时,该分组被转发至服务供应商172。如果不经受拥塞,则服务供应商172在步骤613中简单地继续将分组转发至下一跳。最终,数据分组被递送至主机142。
[0073] 在步骤615中,主机142发送ACK分组,以确认数据分组的接收,所接收的数据分组包括在步骤609由主机112所发送的数据分组。如果这些数据分组都不运载CE码点,则主机142禁止在ACK分组的TCP头部中设置ECE标志。该ACK分组经过服务供应商网络,即服务供应商172,并且最终到达边界路由器108上的外部接口。在步骤607中,边界路由器108上的NetFlow 220更新在步骤607中为该流在NetFlow高速缓存400中所创建的NetFlow条目402。同时,该ACK分组被转发至主机142。
[0074] 在第二种情形中,当网络拥塞要么已被经受要么迫近时,数据和ACK分组可以被在主机116和142之间交换。例如,在步骤619中,主机116向主机142发送数据分组。数据分组的IP头部中的ECN字段被设置为要么ECT(0)码点要么ECT(1)码点,以告知任何中间设备可以在网络拥塞被经受或迫近的情况下设置CE码点。该数据分组到达边界路由器108,以被通过边界路由器108上的外部接口转发至主机142。在步骤621中,边界路由器108上的NetFlow 220更新在步骤603中为该流在NetFlow高速缓存400中所创建的NetFlow条目402。同时,该数据分组被转发至服务供应商172。但是,由于在该情形中,网络拥塞被经受或迫近,因此服务供应商172在分组的IP头部的ECN字段中设置CE码点并且在步骤623中继续将分组转发至下一跳。最终,数据分组被递送至主机142。
[0075] 在步骤625中,主机142在见到先前所未确认的数据分组的至少一个包含CE码点之后,发送在TCP头部中设置ECE标志的ECN-Echo ACK(ECN回复确认),以不仅确认数据分组的接收,所接收的数据分组包括在步骤619中由主机112所发送的数据分组,而且告知在从主机112至主机146的单向路径上的实时网络拥塞情况。
[0076] 在优选实施例中,主机142对具有已由中间路由器所设置的CE码点的分组进行认证。认证例如可以基于源IP地址和端口、目的地IP地址和端口以及TCP序号。
[0077] 主机142所发送的ECN-Echo ACK分组经过服务供应商网络(该情况中为服务供应商172),并且最终到达边界路由器108上的外部接口。在步骤627中,边界路由器108上TM的NetFlow 220立即检测到其在外部接口上接收到ECN-Echo ACK。因此,边界路由器108立即经由通过边界路由器108和OER MC 102之间的通信链路的消息将从主机112到主机
146的单向路径上的网络拥塞情况通知给OER MC 102。根据一个实施例,该消息可以以专用协议被从边界路由器108发送到OER MC 102。
[0078] OER MC 102可以对该拥塞通知消息作出反应,并且发起校正步骤来减轻拥塞情况的影响。校正步骤包括在图1中的边界路由器104-108和网际互联系统120中诸如BGP路由器110之类的其他路由器上安装、删除和更新路由、路由图、路由策略和PBR。校正步骤也可以包括调整用于边界路由器104-108上的路径的本地偏好、加权、MED量度设置。校正步骤也可以包括在将在BGP讲者之间共享的给定路径上预先考虑AS路径。为了实现校正步骤,OER MC 102向网际互联系统120中参与出口路由优化的路由器发送一个或多个消息。这些消息例如包含实施各个路由器所应采用的校正步骤的控制信息。
[0079] 在一个实施例中,OER MC 102针对每个应用或每个前缀具有抑制(hold-down)定时器,用于防止路由振荡(拍动)并且提供阻尼。应用或前缀一被从一个出口移至另一个出口,抑制定时器就启动。应用或前缀在抑制定时器仍在运行的情况下无法被移至另一个路径,除非应用或前缀在现有路径上变得不可达。抑制定时器设置指定在可替换出口可以被选定之前新路径必须被使用的最小时间段。抑制时间是可配置的并且缺省为5分钟。
[0080] 在一实施例中,如果OER MC 102在用于前缀或应用的最佳路径上接收到ECN反馈,则OER MC 102可选地不改变与该前缀或应用相关联的路径,而是改变路由、路由策略和PBR以将用于某些其他前缀或诸如VoIP或视频应用之类的应用的流量转移至较佳路径。
[0081] OER MC 102在将路径标记为拥塞时,可以将该信息存储在历史数据库中。路径上的过往ECN信息在选择最佳路径时可以被用作量度。例如,当两个候选路径之间不分胜负时,选择未曾经受拥塞情况或者曾经受少许拥塞情况的路径,而不选择在过去经受过一些拥塞情况的路径。
[0082] 再次参照图6,当ECN-Echo ACK分组被接收到时,NetFlow服务220更新在步骤607中为该流在NetFlow高速缓存400中所建立的NetFlow条目402。边界路由器108将ECN-Echo ACK分组转发至主机142。
[0083] 图8A是图示出OER边界路由器应用的方面的流程图。在框810中,OER边界路由器应用开始。在框820中,与进出边界路由器的流量流有关的分组被监控。
[0084] 在框830中,对于边界路由器上的外部接口的进入方向上所接收的TCP分组,该分组的TCP头部被检查以查看是否设置了ECE标志。如果ECE标志未被设置,则在框820中,流量流被继续监控。但是,如果ECE标志已被设置,则在框840中,与所接收的分组相关联的信息被立即通过边界路由器和OER MC 102之间的通信链路而提供给OER MC 102。
[0085] 在框850中,OER边界路由器应用等待来自OER MC 102的控制信息。如果控制信息未在框860中被接收到,则应用继续在框850中等待。但是,如果控制信息在框860中被接收到,则在框870中,应用根据所接收到的控制信息来改变路由、路由策略和PBR。在改变完成之后,应用返回框820以继续监控流量流。
[0086] 图8B是图示出内部路由器应用的方面的流程图。在框812中,OER内部路由器应用开始。在框852中,OER内部路由器应用等待来自OERMC 102的控制信息。如果控制信息未在框862中被接收到,则应用继续在框852中等待。但是,如果控制信息在框862中被接收到,则在框872中,应用根据所接收到的控制信息来改变路由、路由策略和PBR。在改变完成之后,应用返回框852以继续等待控制信息。
[0087] 图9是图示出OER MC应用的方面的流程图。在框910中,OER MC应用开始。在框920中,OER MC应用等待来自边界路由器104-108的拥塞通知。如果拥塞通知未在框930中被接收到,则应用继续在框920中等待。但是,如果拥塞通知被接收到,则在框940中,应用对所有参与出口优化的路由器生成与路由、路由策略和PBR的改变有关的控制信息。在框950中,所生成的控制信息被发送到所有参与出口优化的路由器。在控制信息被发送之后,应用返回到框920以继续等待拥塞通知。
[0088] 本领域技术人员将会认识到,可以通过将适当的代码结合至现有的路由优化应用中可以以任何适当的方式来实现这里所描述的步骤,故这里无需详细描述。
[0089] 4.0实现机制——硬件概述
[0090] 图7是图示出在其上可以实现一实施例的计算机系统700的框图。利用在一个或多个网络元件上运行的计算机程序来实现优选实施例。
[0091] 计算机系统700包括用于传送信息的总线702或其他通信机制和与总线702耦合的用于处理信息的处理器704。计算机系统700还包括耦合到总线702的用于存储信息和将由处理器704执行的指令的主存储器706,主存储器706例如是随机访问存储器(RAM)、闪存或者其他动态存储设备。主存储器706也可以用于在将由处理器704处理的指令的处理期间存储临时变量或其他中间信息。计算机700还包括耦合到总线702的用于存储用于处理器704的静态信息和指令的只读存储器(ROM)708或其他静态存储设备。诸如磁盘、闪存或光盘之类的存储设备710被提供并且被耦合到总线702,用于存储信息和指令。
[0092] 通信接口718可以被耦合到总线702,用于向处理器704传送信息和命令选择。接口718是传统串行接口,例如RS-232或RS-422接口。外部终端712或其他计算机系统连接到计算机系统700并且利用接口714向其提供命令。在计算机系统700中所运行的固件或软件提供终端接口或基于字符的命令接口,以使得外部命令可以被给予计算机系统。
[0093] 交换系统716被耦合到总线702并且具有至一个或多个外部网络元件的输入接口714和输出接口719。外部网络元件可以包括耦合到一个或多个主机724的本地网络722,或者诸如因特网728之类的具有一个或多个服务器730的全球网络。交换系统716根据公知的预定协议和惯例而将到达输入接口714上的信息流量交换至输出接口719。例如,交换系统716与处理器704协作可以确定到达输入接口714上的数据分组的目的地,并且利用输出接口719将其发送到正确的目的地。目的地可以包括主机724、服务器730、其他终端站或者本地网络722或因特网728中的其他路由或交换设备。
[0094] 本发明涉及使用计算机系统700来在BGP流量、地址族和路由拓扑中提供QoS和故障隔离。根据本发明的一个实施例,在BGP流量、地址族和路由拓扑中提供QoS和故障隔离是响应于处理器704执行主存储器706中的一个或多个指令的一个或多个序列而由计算机系统700提供的。这种指令可以被从诸如存储设备710之类的另一个机器可读介质中读取到主存储器706中。主存储器706中所包含的指令的序列的执行使得处理器704执行这里所描述的处理步骤。也可以采用处于多路处理布置中的一个或多个处理器来执行主存储器706中所包含的指令的序列。在可替换实施例中,可以利用硬件电路代替软件指令或者利用硬件电路与软件指令结合来实现本发明。因此,本发明的实施例不限于任何具体的硬件电路和软件的组合。
[0095] 这里所使用的术语“机器可读介质”指的是任何参与向处理器704提供指令以供执行的介质。这种介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质例如包括诸如存储设备710之类的光盘或磁盘。易失性介质包括诸如主存储器706之类的动态存储器。传输介质包括同轴缆线、铜导线和光纤,包括组成总线702的导线。传输介质也可以采用声波或光波形式,例如在无线电波和红外数据通信期间所生成的声波或光波。
[0096] 机器可读介质的通用形式例如包括:软盘(floppy disk)、软磁盘(flexible disk)、硬盘、磁带或者任何其他磁介质;CD-ROM、任何其他光介质;穿孔卡、纸带、任何其他具有孔形图案的物理介质;RAM、PROM、EPROM、FLASH-EPROM、任何其他存储器芯片或存储器盒;下文中所描述的载波;或者计算机可以从其进行读取的任何其他介质。
[0097] 在向处理器704运载一个或多个指令的一个或多个序列以供执行的过程中可以涉及各种形式的计算机可读介质。例如,指令最初可以被运载在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中并且利用调制解调器通过电话线来发送指令。计算机系统700本地的调制解调器可以接收电话线上的数据,并且利用红外发送器将数据转换为红外信号。耦合到总线702的红外检测器可以接收红外信号中所运载的数据并且将数据放置在总线702上。总线702将数据运载至主存储器706,处理器704从主存储器706取回并执行指令。主存储器706所接收的指令可以要么在由处理器704执行之前要么在由处理器704执行之后被可选地存储在存储设备710上。
[0098] 通信接口718还向网络链路720提供双向数据通信耦合,网络链路720连接到本地网络722。例如,通信接口718可以是综合业务数字网(ISDN)卡或调制解调器,用于向相应类型的电话线提供数据通信连接。作为另一个示例,通信接口718可以是局域网(LAN)卡,用于向兼容的LAN提供数据通信连接。也可以实现无线链路。在任何这种实现方式中,通信接口718收发电、电磁或光信号,这些信号运载表示各种类型信息的数字数据流。
[0099] 网络链路720通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路720可以通过本地网络722向主计算机724或者向因特网服务供应商(ISP)726所操作的数据设备提供连接。ISP 726通过现在通常称为“因特网”728的全球分组数据通信网络来提供数据通信服务。本地网络722和因特网728都使用运载数字数据流的电、电磁或光信号。通过各种网络的信号和在数据链路720上且通过通信接口718的信号将数字数据运载到计算机系统700并从计算机系统700运载数字数据,它们是传输信息的载波的示例性形式。
[0100] 计算机系统700可以通过(一个或多个)网络、网络链路720和通信接口71 8来发送消息和接收数据,包括程序代码。在因特网示例中,服务器730可以通过因特网728、ISP 726、本地网络722和通信接口718来发送用于应用程序的请求码。根据本发明,一个这种下载的应用如这里所描述在BGP流量、地址族和路由拓扑中提供QoS和故障隔离。
[0101] 所接收的代码可以在其被接收时由处理器704处理,并2/或者被存储在存储设备710或其他非易失性存储器中以供稍后执行。在这种方式下,计算机系统700可以以载波的形式获得应用码。
[0102] 5.0扩展和替换物
[0103] 所述方法可以被应用于因特网之外的与任何路由协议有关的任何适当网络中,或者可以应用于与任何数据类型或元件(例如数据分组)有关的任何适当网络设备上。特别地,所述方法可以被应用于形成类似于本说明书中所说明的配置的适当配置的内联网或外TM联网。而且,所述方法可以在任何运行诸如NetFlow 之类的监控应用的设备和运行诸如OER之类的路径优化应用的相同或不同设备上实现。
[0104] 在前述详细描述中,参考本发明的具体实施例描述了本发明。但是,显然的是,在不脱离本发明较宽的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图将被认为是说明性而非限制性的。