专利名称:具有多个逻辑子系统功能的转发系统的制作方法
技术领域:
一般地,本发明涉及数据通信转发系统,更具体地,涉及一种数据转发设备,能够展示多个互连的逻辑转发子系统的功能,同时保持其通信接口的高效使用率。
背景技术:
典型地,现代的数据通信转发系统(例如交换机和路由器)具有被划分(partitioned)为“控制面”和“数据面”的功能。典型地,利用能够执行利用通用语言编写的复杂软件的硬件来实现控制面,以便实现控制协议和操作员接口。利用在不同系统中以不同方式实现的转发和处理决策,以特定用途的硬件来实现数据面。即使当在通用CPU中实现数据面处理时,典型地,作为分离的实体来处理数据面,并进行优化,以便有效的转发。
具有被划分为控制面和数据面的功能的转发系统的实例包括IP路由器,各种类型的层2交换机(例如,以太网、帧中继(FR),异步传输模式(ATM),多协议标记交换(MPLS)),各种类型的电路交换机(例如,DACS、同步光纤网(SONET分插复用器(ADM)、光交叉连接(OXC)),无线电话设备,执行上述操作的组合的设备以及执行转发功能的大多数其它可编程通信设备。由数据面实现的处理的实例包括标记查找(MPLS,FR,ATM,X.25),源查找(以太网,因特网协议(IP)),目的查找(以太网,IP),出口接口查找(所有交换类型),出口子接口查找(大多数交换类型),封装(大多数交换类型),滤波,测定,统计累积和采样。
经常希望将单一的物理转发系统划分为多个逻辑转发子系统。例如,服务提供商可能希望向每一个消费者提供路由器,而无需在实际中为每一个消费者安装分离的设备段。可选地,在执行两种功能(例如,IP路由和帧中继交换)的转发系统中,对于两种功能,可以在逻辑上容易地实现分离的控制面。在另一种情况下,在大型IP网络中,希望在逻辑上将网络划分层次,在层次的每一层内,路由器具有不同的功能。当协同定位不同层的路由器时,优点在于例示(instantiate)了单一物理转发系统中的两个或更多逻辑转发子系统。
通过例示对于每一个子系统的数据面处理的分离实例,在相同硬件中多个逻辑转发子系统的已有实现能够进行操作。当必须通过两个或更多逻辑转发子系统在逻辑上顺序地处理数据时,数据顺序地从第一数据面的实例通向下一个数据面的实例,直到其到达最后一个数据面的实例。此外,典型的实现划分了逻辑转发子系统中物理系统的入口和出口接口。首先,由该子系统处理属于特定子系统的入口上的所有输入。当物理端口使用能够按照某种方式在较低层次区分数据的协议时,(例如,通过TDM或利用标记),则可以通过不同的逻辑转发子系统来处理单个的数据流。
然而,在逻辑转发子系统中划分物理转发系统的接口具有明显的缺点。具体地,由于逻辑转发子系统在其中相连,每一个这种连接会耗费物理转发系统的一对接口。因此,物理转发子系统中的连接会占据明显比例物理转发系统的接口,这导致较大的低效接口使用率。这实际上意味着需要在接口层,过量提供被赋予扮演多个逻辑转发子系统的角色的单个逻辑转发系统。至少在附加成本的形式上,这表现出对于服务提供商的不便。
发明内容
本发明可以应用到以下类型的转发系统中首先由多个逻辑转发子系统之一的数据面在逻辑上处理数据,然后由另一个子系统的数据面来处理数据。通过扩展,本发明还可以应用到当三个或更多逻辑转发子系统的数据面必须顺序地处理相同数据的情况。本发明涉及一种合并映射函数的创建,所述合并映射函数基于指定了单个逻辑路由器的转发行为的单个映射函数。该概念能够在例示了多个逻辑转发子系统的转发系统中有效地共享数据面操作。其有效性出现在当利用相同物理转发系统中地多于一个逻辑转发子系统来处理相同数据时。该概念能够应用于具有集中式或分布式数据面的系统中。还可以应用到具有集中式或分布式控制面的系统。
根据主要的方面,本发明提供了一种产生用于数据转发实体使用的映射的方法,所述数据转发实体具有多个通信接口。该方法包括对于在通信接口处接收的数据元素,接收指定了下一跳接口的第一映射,其中至少一个下一跳接口属于逻辑接口集合。该方法还包括对于特定数据元素,接收指定了第二下一跳接口的第二映射,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口。此外,该方法包括通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,从第一和第二映射中产生合并映射。
根据另一主要的方面,可以将本发明总结为一种数据转发设备。该数据转发设备包括设置在该处由设备接收数据元素的多个通信接口;存储器;以及与通信接口和存储器相连的处理实体。存储器存储第一映射、第二映射和合并映射。对于在通信接口处接收的数据元素,第一映射指定了下一跳接口,其中至少一个下一跳接口属于逻辑接口集合。对于特定数据元素,第二映射指定了第二下一跳接口,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口。对于在通信接口处接收的数据元素,合并映射指定了下一跳接口,其中由合并映射指定的下一跳接口不属于逻辑接口集合。通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,从第一和第二映射中产生合并映射。此外,处理实体访问合并映射,以便确定与在通信接口处接收的每一个数据元素相关联的下一跳接口,并将所接收的数据元素转发到在访问步骤中确定的下一跳接口。
根据另一主要的方面,可以将本发明总结为一种用于存储数据的存储器,用于由在具有多个通信接口的数据处理系统上所执行的应用程序进行访问。所述存储器包括存储在存储器中的数据结构,所述数据结构包括以下信息对于在通信接口处接收的数据元素,指定了下一跳接口的第一映射,其中至少一个下一跳接口属于逻辑接口集合。该数据结构还包括以下信息对于特定数据元素,指定了第二下一跳接口的第二映射,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口。此外,该数据结构包括以下信息通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,从第一和第二映射中所产生的合并映射。
本发明还可以应用于多播环境,并且被总结为一种产生用于数据转发实体使用的映射的方法,所述数据转发实体具有多个通信接口。该方法包括对于在通信接口处接收的数据元素,接收指定了下一跳接口的第一映射,其中为所接收特定数据元素的至少一个指定的多个下一跳接口的至少一个属于逻辑接口集合。该方法还包括对于特定数据元素,接收指定了多个第二下一跳接口的第二映射,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口。此外,该方法包括通过利用指定了多个第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的至少一部分,从第一和第二映射中产生合并映射。
还可以将本发明总结为一种计算机可读介质,有形地体现了由数据转发设备可执行指令的程序,以便执行上述方法。
结合附图,当回顾本发明特定实施例的以下说明时,对于本领域的技术人员,本发明的这些和其它方面与特点会变得显而易见。
在附图中图1示出了根据本发明实施例要被单一路由器代替的一对路由器;图2A示出了根据本发明实施例的路由器,其配备了一对映射;图2B示出了从提供到图2A的路由器的映射来创建合并映射的一种方式;图2C示出了从提供到图2A的路由器的映射来创建合并映射的另一种方式;图3示出了根据本发明实施例的路由器的实例物理实现;图4A示出了根据本发明另一个实施例的路由器,其配备了一对映射;图4B示出了从提供到图4A的路由器的映射来创建部分合并映射的一种方式;以及图4C示出了从提供到图4A的路由器的映射来创建部分合并映射的另一种方式。
具体实施例方式
参考图1,图1示出了要被本发明的单一数据通信转发系统代替的数据通信系统群(cluster)(以下简称为“群”10)。在该实例中,群10包括两个数据通信转发系统,即,第一路由器R1和第二路由器R2。通常,除了路由器以外,群10的组件可以是数据通信系统,此外,组件的数目可以大于2,并且组件无需是相同的类型。要被本发明的单一数据通信转发系统代替的可修改数据通信转发系统的特定实例包括IP路由器,各种类型的层2交换机(例如,以太网、帧中继(FR),异步传输模式(ATM),多协议标记交换(MPLS)),各种类型的电路交换机(例如,DACS、同步光纤网(SONET分插复用器(ADM)、光交叉连接(OXC)),无线电话设备,执行上述操作的组合的设备以及执行转发功能的大多数其它可编程通信设备。
此外,在本说明书中,取决于对其进行说明的上下文,术语“数据元素”意欲包含分组交换数据(例如分组或数据报)的元素或电路交换数据(例如包含在时隙中的数据)的元素。因此,术语“分组”并不局限于受限的方式。相反,该术语意欲广泛地包含任意统计复用的信息单元。因此,显而易见的是,本发明应用于执行分组交换和/或电路交换功能的数据转发实体中。
如图1清楚所示,群10包括多个外部群接口x、y、z、w和多个内部群接口a、b、c、d。外部群接口x、y、z、w接收来自群10外部的数据元素,并将所路由的数据元素转发到群10外部的目对地。在该特定实例中,外部群接口x、y、z、w分别与目的地1.3.2.7、1.5.7.9、1.2.3.4和2.4.6.8相连。内部群接口a、b、c、d用于将路由器R1和R2彼此相连。具体地,路由器R1上的内部群接口a与路由器2上的内部群接口c相连,同时路由器R1上的内部群接口b与路由器2上的内部群接口d相连。仅作为演示的方式示出了外部群接口和内部群接口的数目;应当理解的是,本发明的数据通信转发系统能够代替具有较宽的外部群接口和内部群接口范围的群10。
典型地,每一个路由器R1和R2具有用于存储映射的控制面,所述映射定义了所讨论的具体路由器的转发行为。在这种情况下,由M1和M2分别表示与路由器R1和R2相关联的映射。因此,映射M1定义了接口x、y、a和b中的映射,而映射M2定义了接口z、w、c和d中的映射。更具体地,对于在其接口之一所接收的每一个数据元素,映射M1和M2指定了下一跳接口。可以作为以下内容的函数来查找下一跳接口数据元素的源(例如,由IP地址识别)、数据元素的目的地(例如,由IP地址识别)、与数据元素相关联的优先权级别、数据元素所到达的接口的身份、连接状态(例如,用于面向连接交换)或所接收数据元素的某些其它特征。
利用映射M1和M2,以及路由器R1和R2之间已有的互连,将到达外部群接口x、y、z、w之一的数据元素通过相同路由器上的外部群接口之一直接转发出去,或将其传送到群10的其它路由器,由此,所述数据元素出现在该其它路由器的外部群接口之一。例如,到达接口x的数据元素会通过接口y(或x,尽管这比较罕见)离开路由器R1,或通过内部群接口a、b传送到路由器R2。然后,通过外部群接口z、w之一,数据元素会从路由器R2出现。为了能够成功代替群10的单一路由器,需要从通过外部群接口x、y、z、w进入和离开群10的角度,来复制数据元素的行为。
参考图2A,示出了根据本发明实施例的数据通信转发系统200。在该特定实例中,数据通信转发系统200是路由器,尽管根据本发明的操作需要其承担了其它职责。从外部看起来,单一路由器200在功能上等同于这里参考图1所述的群10。尽管在物理上不存在,按照逻辑的形式在路由器200中表明了路由器R1和R2,为了方便,以下将其称作“逻辑路由器”。
路由器200具有根据保存在控制面中的映射来接收和转发数据元素的数据面。在与群10中的外部群接口x、y、z和w相对应的多个通信接口x、y、z和w上来接收数据。然而,路由器200不会占据任何通信接口来匹配群10的内部群接口a、b、c、d。相反,这些前述的内部群接口本质上是逻辑的,并且在本实例中被表示为Va、Vb、Vc和Vd。因此,显而易见的是,路由器200不需要比被设计代替的群10的外部群接口的数目更多的通信接口。
从物理的角度,如图3所示,通信接口x、y、z、w位于多个线路卡220上,所述线路卡包括处理器和其它硬件。路由器200的数据面在物理上还包括与线路卡220相连的交换机结构230,使得数据元素从一个线路卡传播(即“跳”)到另一个。在该实例中,其上设置了通信接口x和y的线路卡220与逻辑路由器R1相关(实线块),其上设置了通信接口z和w的线路卡220与逻辑路由器R2相关(条纹块)。在另一个实施例中,逻辑路由器200中的物理资源的划分不必基于每一线路卡。然而,在路由器200的所有情况下,没有线路卡或其它物理资源与逻辑接口Va、Vb、Vc和Vd相关。
继续参考图2A,本发明的路由器200的控制面保存了映射M3,映射M3定义了路由器200的转发行为。可以在线路卡220中分布控制面,或由在路由器200的机架中分离设置的一组控制卡来实现控制面。对于在通信接口x、y、z、w之一处接收的每一个数据元素,映射M3指定了下一跳接口。由于路由器200设计用于代替路由器R1和R2,映射M3必须承载映射M1和M2之间的一些关系。实际上,提供给路由器200的映射M1和M2包括创建映射M3所需的所有信息。然而,注意,映射M1和M2涉及(不再存在的)内部群接口,因此映射M3必须与映射M1和M2不同。现在更详细地说明合并映射M1和M2以达到映射M3的一种方式。
通过合并引擎240来创建映射M3,可以将所述合并引擎实现为控制面的软件构件。在概念上,对于等效于由映射M1和M2指定的映射函数的“卷积(convolution)”的物理数据面功能,合并映射M3指定了映射函数。作为一种实际内容,一旦应用,合并映射M3与按照适当的序列应用适当的分离映射M1和M2具有相同的结果(只考虑到外部操作)。
在图2A的示例中,由映射M1指定的转发动作依赖于在通信接口x、y、z、w之一处接收的每一个数据元素的目的地。数据面从数据元素的报头获得每一个所接收数据元素的目的地的知识。感兴趣的事实在于转发动作不依赖于在该处接收数据元素的通信接口,尽管应当理解,在其它情况下(参见图4A到4C),转发动作确实依赖于在该处接收数据元素的通信接口,还可能依赖于所接收数据元素的其它特性,例如其优先权级别、使用期限等。
更具体地,映射M1指定了具有目的地1.3.2.7的数据元素要被转发到通信接口x,具有目的地1.5.7.9的数据元素要被转发到通信接口y,具有目的地1.2.3.4的数据元素要被转发到逻辑接口Va,以及具有目的地2.4.6.8的数据元素要被转发到通信接口Vb。此外,映射M2指定了具有目的地1.2.3.4的数据元素要被转发到逻辑接口w,具有目的地2.4.6.8的数据元素要被转发到通信接口w,具有目的地1.3.2.7的数据元素要被转发到逻辑接口Vc,以及具有目的地1.5.7.9的数据元素要被转发到通信接口Vd。
在一个示例实施例中,通过采用映射M1的基础部分并将其与映射M2的增补部分相合并,能够创建合并映射M3。如图2B所示,将利用M1BASIC表示的映射M1的基础部分作为整个映射M1,而利用M2AUG表示的映射M2的增补部分只提供了部分映射M2,其中对于通过逻辑路由器R1路由到逻辑路由器R2的那些数据元素设置了下一跳接口。因此,如果独立地来实现这些逻辑路由器,由于这些数据只是已经通过逻辑路由器R1转发到逻辑路由器R2的数据,M2AUG只包括映射M2中指定了具有目的地1.2.3.4或目的地2.4.6.8的数据元素的下一跳接口。现在,通过利用继续转发处理的M2AUG的对应部分来代替指定了到逻辑路由器R2的转发动作的那些M1BASIC部分,能够创建映射M3。
更具体地,映射M3指定了具有目的地1.3.2.7的数据元素要被转发到通信接口x(如在M1BASIC中),具有目的地1.5.7.9的数据元素要被转发到通信接口y(如在M1BASIC中),具有目的地1.2.3.4的数据元素要被转发到通信接口z(如在M2AUG中),具有目的地1.5.7.9的数据元素要被转发到通信接口w(如在M1AUG中)。注意以下事实映射M3是单一的下一跳映射函数,这意味着如果之后有多个通路(通过映射M1和M2),一次查找之后,立即将数据元素路由到与其将要被路由到的相同的通信接口。换句话说,从通信接口x、y、z、w的角度,映射M3的网络效果等同于群10的网络转发行为。此外,对于内部路由器通信,不必保留通信接口。此外,不再需要路由器200将数据元素通过数据面“转发”到逻辑接口,这与以下概念一致逻辑接口Va、Vb、Vc、Vd不作为物理实体存在。
可选地,通过采用映射M2的基础部分并将其与映射M1的增补部分相合并,能够创建合并映射M3。如图2C所示,将利用M2BASIC表示的映射M2的基础部分作为整个映射M2,而利用M1AUG表示的映射M1的增补部分只提供了部分映射M1,其中对于通过逻辑路由器R2路由到逻辑路由器R1的那些数据元素设置了下一跳接口。因此,如果独立地来实现这些逻辑路由器,由于这些数据只是已经通过逻辑路由器R2转发到逻辑路由器R1的数据,M1AUG只包括映射M1中指定了具有目的地1.3.2.7或目的地1.5.7.9的数据元素的下一跳接口。现在,通过利用继续转发处理的M1AUG的对应部分来代替指定了到逻辑路由器R1的转发动作的那些M2BASIC部分,能够创建与图2B中相同的映射M3。
现在通过参考图4A到4C来说明由映射M1和M2指定的转发动作的更复杂的示例。具体地,在图4A中,提供了指定下一跳接口的映射M1’,将不仅基于数据元素的目的地,而且还基于在其处接收数据元素的通信接口的所接收的数据元素转发到所述下一跳接口。在该具体示例中,一些通信接口适于与控制面进行通信。这在操作、管理和保存功能中是有用的。例如,将数据元素发送到控制面的能力可以用于执行错误检测和/或纠错,或发送控制信息,甚至改变映射M1和M2。
为了获得转发每一个所接收数据元素的足够信息,如前所述,数据面能够从数据元素的头标来获得所接收数据元素的目的地。此外,可以假设数据面具有在其处接收数据元素的通信接口的知识,这是由于其处理了输入数据元素。当然,可以理解的是,由于映射M1’和M2’与逻辑路由器R1和R2相关联,每一个映射的特定部分会涉及物理上不存在的接口,即,逻辑接口Va、Vb、Vc、Vd。
在该具体示例中,映射M1’指定了具有目的地1.2.3.4并且在通信接口x处接收的数据元素要被转发到逻辑接口Va,具有目的地1.2.3.4并且在通信接口y处接收的数据元素要被转发到逻辑接口Vb,具有目的地1.2.3.4并且“到达”逻辑接口Va的数据元素要被转发到逻辑接口Vb,以及具有目的地1.2.3.4并且到达逻辑接口Vb的数据元素要被转发到逻辑接口Va。此外,具有目的地1.3.2.7并且在通信接口y处接收的数据元素要被转发到通信接口x,具有目的地1.3.2.7并且在通信接口x处接收的数据元素要被转发到控制面(因为其应当不再进入路由器200),以及具有目的地1.3.2.7并且“到达”逻辑接口Va或逻辑接口Vb的数据元素要被转发到通信接口x。此外,具有目的地1.5.7.9并且在通信接口x处接收的数据元素要被转发到通信接口y,具有目的地1.5.7.9并且在通信接口y处接收的数据元素要被转发到控制面(因为其应当不再进入路由器200),以及具有目的地1.5.7.9并且“到达”逻辑接口Va或逻辑接口Vb的数据元素要被转发到通信接口y。最后,具有目的地2.4.6.8并且在通信接口x处接收的数据元素要被转发到逻辑接口Va,具有目的地2.4.6.8并且在通信接口y处接收的数据元素要被转发到逻辑接口Vb,具有目的地2.4.6.8并且“到达”逻辑接口Va的数据元素要被转发到逻辑接口Vb,以及具有目的地2.4.6.8并且到达逻辑接口Vb的数据元素要被转发到逻辑接口Va。
此外,映射M2’指定了具有目的地1.2.3.4并且“到达”逻辑接口Vc或逻辑接口Vd的数据元素要被转发到通信接口z,具有目的地1.2.3.4并且在通信接口w处接收的数据元素要被转发到通信接口z,具有目的地1.2.3.4并且在通信接口z处接收的数据元素要被转发到控制面(因为其应当不再进入路由器200),具有目的地1.3.2.7并且“到达”通信接口z的数据元素要被转发到逻辑接口Vc,具有目的地1.3.2.7并且在通信接口w处接收的数据元素要被转发到逻辑接口Vd,具有目的地1.3.2.7并且“到达”逻辑接口Vc的数据元素要被转发到逻辑接口Vd,具有目的地1.3.2.7并且“到达”逻辑接口Vd的数据元素要被转发到逻辑接口Vc,具有目的地1.5.7.9并且在通信接口z处接收的数据元素要被转发到逻辑接口Vc,具有目的地1.5.7.9并且在通信接口w处接收的数据元素要被转发到逻辑接口Vd,具有目的地1.5.7.9并且“到达”逻辑接口1.5.7.9的数据元素要被转发到逻辑接口Vd,具有目的地1.5.7.9并且“到达”逻辑接口Vd的数据元素要被转发到逻辑接口Vc,具有目的地2.4.6.8并且在通信接口x处接收的数据元素要被转发到逻辑接口Va,具有目的地2.4.6.8并且“到达”逻辑Vc或逻辑接口Vd的数据元素要被转发到通信接口w,具有目的地2.4.6.8并且在通信接口z处接收的数据元素要被转发到通信接口w,以及具有目的地2.4.6.8并且在通信接口z处接收的数据元素要被转发到控制面(因为其不再进入路由器200)。
合并映射M3’包括两个等分部分,第一等分部分处理由路由器200在通信接口x和y接收的数据元素(结果创建了映射M3’→),第二等分部分处理由路由器200在通信接口z和w接收的数据元素(结果创建了映射M3’←)。图4B示出了映射M3’→的创建,而图4C示出了映射M3’←的创建。当然,合并映射M3’的每一个等分部分自身是合并映射,并且其构造落入了本发明的范围之内。
参考图4B,通过采用被表示为M1’→BASIC并且涉及在通信接口x和y处接收的数据元素的映射M1’的基础部分,并将其与被表示为M2’→AUG的映射M2’的增补部分相合并,能够构造映射M3’→,其中所述映射M2’的增补部分涉及映射M2’中为已经通过逻辑路由器R1路由到逻辑路由器R2的那些数据元素提供的下一跳接口的部分。因此,如果独立地来实现这些逻辑路由器,由于这些数据只是已经通过逻辑路由器R1转发到逻辑路由器R2的数据,M2’→AUG只包括映射M2’中指定了“到达”逻辑接口Vc或逻辑接口Vd处的数据元素的下一跳接口。现在,通过利用继续转发处理的M2’→AUG的对应部分来代替指定了到逻辑路由器R2的转发动作的那些M1’→BASIC部分,能够创建映射M3’→。
结果,映射M3’→指定了具有目的地1.2.3.4并且在通信接口x或通信接口y处接收的数据元素被转发到通信接口z(M1’→BASIC和M2’→AUG的结合),具有目的地1.3.2.7并且在通信接口y处接收的数据元素被转发到通信接口x(如每一M1’→BASIC),具有目的地1.3.2.7并且在通信接口x处接收的数据元素被转发到控制面(如每一M1’→BASIC),具有目的地1.5.7.9并且在通信接口x处接收的数据元素被转发到通信接口y(如每一M1’→BASIC),具有目的地1.5.7.9并且在通信接口y处接收的数据元素被转发到控制面(如每一M1’→BASIC),以及具有目的地2.4.6.8并且在通信接口x或通信接口y处接收的数据元素被转发到通信接口w(M1’→BASIC和M2’→AUG的结合)。
注意以下事实映射M3’→是单一的下一跳映射函数,这意味着如果之后有多个通路(通过映射M1’→BASIC和M2’→AUG),一次查找之后,立即将数据元素路由到与其将要被路由到的相同的通信接口。换句话说,从在通信接口x和y处接收的数据元素的角度,映射M3’→的网络效果(net effect)等同于群10的网络转发行为。此外,对于内部路由器通信,不必保留通信接口。此外,不再需要路由器200将数据元素通过数据面“转发”到逻辑接口,这与以下概念一致逻辑接口Va、Vb、Vc、Vd不作为物理实体存在。
现在参考图4C,通过采用被表示为M2’←BASIC并且涉及在通信接口x和y处接收的数据元素的映射M2’的基础部分,并将其与被表示为M1’←AUG的映射M1’的增补部分相合并,能够构造映射M3’←,其中所述映射M1’的增补部分涉及映射M1’中为已经通过逻辑路由器R2路由到逻辑路由器R1的那些数据元素提供的下一跳接口的部分。因此,如果独立地来实现这些逻辑路由器,由于这些数据只是已经通过逻辑路由器R2转发到逻辑路由器R1的数据,M1’←AUG只包括映射M1’中指定了“到达”逻辑接口Va或逻辑接口Vb处的数据元素的下一跳接口的部分。现在,通过利用继续转发处理的M1’←AUG的对应部分来代替指定了到逻辑路由器R1的转发动作的那些M2’←BASIC部分,能够创建映射M3’←。
结果,映射M3’←指定了具有目的地1.3.2.7并且在通信接口z或通信接口w处接收的数据元素被转发到通信接口x(M1’←BASIC和M2’←AUG的结合),具有目的地1.2.3.4并且在通信接口w处接收的数据元素被转发到通信接口z(如每一M2’←BASIC),具有目的地1.2.3.4并且在通信接口z处接收的数据元素被转发到控制面(如每一M2’←BASIC),具有目的地2.4.6.8并且在通信接口z处接收的数据元素被转发到通信接口w(如每一M2’←BASIC),具有目的地2.4.6.8并且在通信接口w处接收的数据元素被转发到控制面(如每一M2’←BASIC),以及具有目的地1.5.7.9并且在通信接口z或通信接口w处接收的数据元素被转发到通信接口y(M2’←BASIC和M1’←AUG的结合)。
注意以下事实映射M3’←是单一的下一跳映射函数,这意味着如果之后有多个通路(通过M2’←BASIC和M1’←AUG),一次查找之后,立即将数据元素路由到与其将要被路由到的相同的通信接口。换句话说,从在通信接口z和w处接收的数据元素的角度,映射M3’←的网络效果等同于群10的网络转发行为。此外,对于内部路由器通信,不必保留通信接口。此外,不再需要路由器200将数据元素通过数据面“转发”到逻辑接口,这与以下概念一致逻辑接口Va、Vb、Vc、Vd不作为物理实体存在。
当然,可以将映射M3’→与映射M3’←结合为单一的映射M3’,从在任一通信接口x、y、z、w处接收的数据元素的角度,映射M3’指定了与群10相同的网络转发行为。
本领域的技术人员能够理解的是,存在实现合并映射的多种方式,所述合并映射具有与用于多个路由器的多个映射相同的整体效果,并且合并映射概念的使用独立于准确的实现。将合并映射应用到物理数据面的结果在于如果顺序地应用适当的逻辑路由器映射,则由数据面每一次处理一个数据元素,以便产生与应当产生的相同的结果。
除了转发以外,基于为两个路由器R1和R2指定的动作的合成动作,由路由器对所接收的数据元素进行其它动作。根据本发明的实施例,路由器200相对于给定数据元素采取的最终动作是通过群10的路径的函数,如果已经独立地实现了逻辑路由器,这会跟随其后。作为一种实际内容,一些动作独立于随后的动作,一些动作被随后的动作代替,而另一些动作被随后的动作修改。例如,第一动作“封装”和第二动作“解封”导致最终动作“无作为”。作为另一个实例,利用随后的动作“使用优先级2”来代替动作“使用优先级1”。
本领域的技术人员能够理解的是,合并映射函数的概念可用于任意的数据面架构,尤其可用于具有分布式数据面处理的现代高速交换设备。注意,划分物理数据面以允许分布是独立于将系统划分为逻辑数据通信转发系统的。将合并映射概念作为整体应用到数据面。当在分布式数据面上实现合并映射时,可以划分处理,以便将其与逻辑交换划分对准,或与数据面划分对准,或与二者对准。与本领域技术人员所确定的,准确的实现依赖于系统的操作需要。
本领域技术人员还可以理解的是,即使当不彻底地应用卷积时,合并映射概念也是可用的。例如,在特定架构中,需要限制能够应用到逻辑接口的映射函数。这仅仅是通常现象的特定示例,由此不同的接口类型具有不同的限制。为了扩展与物理交换机之间的物理接口的功能不同的这些功能,例示了逻辑交换机的物理系统的功能与互连的物理交换机的等效集合不同。
此外,本发明还可以应用于多播环境。在该说明的情况下,术语“多播”意味着引起其复制的单个数据单元的接收,并且将其发送到多于一个出口点。将该术语用于因特网协议(IP)是一种通用方式。对于多播,每一个映射函数(用于每一个逻辑路由器)指定了入口空间的一到多映射(多播“树”),合并映射指定了也是一到多映射的卷积映射。为了实现该目的,在多播树的每一个“分支”后进行卷积。
此外,在大多数实际应用中,在单一物理路由器200中独立地实现逻辑路由器R1和R2(来自上述实例)的控制面,并控制各自控制面中通过的信令。然而,本领域的技术人员可以理解的是,除了应用于其数据面以外,本发明还可以应用于逻辑路由器R1、R2中的控制面,这有效地引起单个“合并”控制面的创建。
可以理解,在数据面或控制面中使用的每一个处理器可以实现为算术和逻辑单元(ALU),能够访问存储了ALU的程序指令的代码存储器(未示出)。将程序指令可以存储在固定的介质上,对于处理器是有形且直接可读的(例如,可移动磁盘、CD-ROM、ROM或固定盘),或将程序指令远程地存储,但可以通过调制解调器或在传输介质上与网络相连其它接口设备(例如,通信适配器)发送到处理器。传输解释可以是有形的介质(例如,光学或逻辑通信线路)或利用无线技术实现的介质(例如微波、红外或其它传输方案)。
本领域的技术人员还可以理解的是,可以通过利用多种编程语言编写的高层程序来编译存储在代码存储器中的程序指令,用于多种计算机架构或操作系统使用。例如,可以利用汇编语言来编写高层程序,而利用过程编程语言(例如“C”)或面向对象编程语言(例如“C++”或“JAVA”)来编写其它版本。
本领域的技术人员还可以理解的是,在本发明的一些实施例中,可以将处理器的功能实现为预编程硬件或固件构件(例如,应用特定集成电路(ASIC)、电可擦除可编程只读存储器(EEPROM)等),或其它相关的构件。
尽管已经说明并演示了本发明的特定实施例,对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的范围的前提下,能够进行多种修改和变体。
权利要求
1.一种产生用于数据转发实体使用的映射的方法,所述数据转发实体具有多个通信接口,该方法包括a)对于在通信接口处接收的数据元素,接收指定了下一跳接口的第一映射,其中至少一个下一跳接口属于逻辑接口集合;b)对于特定数据元素,接收指定了第二下一跳接口的第二映射,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口;c)通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,从第一和第二映射中产生合并映射。
2.根据权利要求1所述的方法,其特征在于由第一映射指定的至少一个其它下一跳接口属于多个通信接口,其中产生合并映射还包括保存指定了下一跳接口的第一映射的每一部分,所述下一跳接口属于多个通信接口。
3.根据权利要求1所述的方法,其特征在于还包括在存储器中存储合并映射。
4.根据权利要求3所述的方法,其特征在于还包括d)在通信接口之一处接收数据元素;e)访问合并映射,以确定与在通信接口处接收的每一个数据元素相关联的下一跳接口;f)将所接收的数据元素转发到在步骤e)确定的下一跳接口。
5.根据权利要求4所述的方法,其特征在于还包括确定所接收数据元素的至少一个特性,其中访问合并映射包括识别指定了下一跳接口的合并映射部分,所述下一跳接口与所接收数据元素的至少一个特性相关联。
6.根据权利要求1所述的方法,其特征在于每一个所接收的数据元素与源地址相关联,其中由用于特定接收数据元素的合并映射所指定的下一跳接口是与所述特定接收数据元素相关联的源地址的函数。
7.根据权利要求1所述的方法,其特征在于每一个所接收的数据元素与源地址相关联,其中由用于特定接收数据元素的合并映射所指定的下一跳接口是与所述特定接收数据元素相关联的源地址的函数。
8.根据权利要求1所述的方法,其特征在于每一个所接收的数据元素与目的地地址相关联,其中由用于特定接收数据元素的合并映射所指定的下一跳接口是与所述特定接收数据元素相关联的目的地地址的函数。
9.根据权利要求1所述的方法,其特征在于每一个所接收的数据元素与优先级级别相关联,其中由用于特定接收数据元素的合并映射所指定的下一跳接口是与所述特定接收数据元素相关联的优先级级别的函数。
10.根据权利要求1所述的方法,其特征在于每一个所接收的数据元素与使用期限相关联,其中由用于特定接收数据元素的合并映射所指定的下一跳接口是与所述特定接收数据元素相关联的使用期限的函数。
11.根据权利要求1所述的方法,其特征在于由用于特定接收数据元素的合并映射所指定的下一跳接口是在其处接收特定接收数据元素的通信接口的函数。
12.根据权利要求1所述的方法,其特征在于每一个所接收的数据元素与具有连接状态的连接相关联,其中由用于特定接收数据元素的合并映射所指定的下一跳接口是与所述特定接收数据元素相关联的连接的连接状态的函数。
13.根据权利要求1所述的方法,其特征在于第一映射还将对应第一动作与在通信接口之一处接收的每一个数据单元相关联。
14.根据权利要求13所述的方法,其特征在于第二映射还将对应第二动作与特定数据元素相关联,其中对于所述特定数据元素,由第一映射指定的下一跳接口是逻辑接口之一。
15.根据权利要求12所述的方法,其特征在于所述合并映射还包括将对应第三动作与在通信接口之一处接收的每一个数据单元相关联,其中如果由第一映射指定的下一跳接口是通信接口之一,则对应第三动作是对应第一动作,而如果由第一映射指定的下一跳接口是逻辑接口之一,则对应第三动作是对应第一和第二动作的合成。
16.根据权利要求1所述的方法,其特征在于所述通信接口包括控制接口。
17.一种数据转发设备,包括a)设置在该处接收数据元素的多个通信接口;b)存储器,用于存储第一映射、第二映射和合并映射;i)对于在通信接口处接收的数据元素,第一映射指定了下一跳接口,其中至少一个下一跳接口属于逻辑接口集合;ii)对于特定数据元素,第二映射指定了第二下一跳接口,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口;iii)对于在通信接口处接收的数据元素,合并映射指定了下一跳接口,其中由合并映射指定的下一跳接口不属于逻辑接口集合;c)与所述通信接口和所述存储器相连的处理实体,所述处理实体能够i)通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,从第一和第二映射中产生合并映射;ii)访问合并映射,以便确定与在通信接口处接收的每一个数据元素相关联的下一跳接口;iii)将所接收的数据元素转发到在步骤ii)中确定的下一跳接口。
18.根据权利要求17所述的数据转发设备,其特征在于第一映射还将对应第一动作与在通信接口之一处接收的每一个数据单元相关联。
19.根据权利要求18所述的数据转发设备,其特征在于第二映射还将对应第二动作与特定数据元素相关联,其中对于所述特定数据元素,由第一映射指定的下一跳接口是逻辑接口之一。
20.根据权利要求19所述的数据转发设备,其特征在于所述合并映射还包括将对应第三动作与在通信接口之一处接收的每一个数据单元相关联,其中如果由第一映射指定的下一跳接口是通信接口之一,则对应第三动作是对应第一动作,而如果由第一映射指定的下一跳接口是逻辑接口之一,则对应第三动作是对应第一和第二动作的合成。
21.根据权利要求17所述的数据转发设备,其特征在于还包括其中分布了通信接口的多个线路卡。
22.根据权利要求21所述的数据转发设备,其特征在于还包括在线路卡中分布的多个物理数据端口。
23.根据权利要求22所述的数据转发设备,其特征在于所述每一个通信接口是物理数据端口之一。
24.根据权利要求22所述的数据转发设备,其特征在于多个通信接口共享一个公共的物理数据端口。
25.一种用于存储数据的存储器,用于由在具有多个通信接口的数据处理系统上所执行的应用程序进行访问,所述存储器包括a)存储在存储器中的数据结构,所述数据结构包括与以下有关的信息对于在通信接口处接收的数据元素,指定了下一跳接口的第一映射,其中至少一个下一跳接口属于逻辑接口集合;g)所述数据结构包括与以下有关的信息对于特定数据元素,指定了第二下一跳接口的第二映射,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口;h)所述数据结构包括与以下有关的信息通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,从第一和第二映射中所产生的合并映射。
26.一种计算机可读介质,有形地体现了由数据转发设备可执行的指令的程序,以执行一种产生映射的方法,所述数据转发实体具有多个通信接口,所述方法包括a)对于在通信接口处接收的数据元素,接收指定了下一跳接口的第一映射,其中至少一个下一跳接口属于逻辑接口集合;b)对于特定数据元素,接收指定了第二下一跳接口的第二映射,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口;c)通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,从第一和第二映射中产生合并映射。
27.一种产生用于数据转发实体使用的映射的方法,所述数据转发实体具有多个通信接口,所述方法包括a)对于在通信接口处接收的数据元素,接收指定了下一跳接口的第一映射,其中为所接收特定数据元素的至少一个指定的多个下一跳接口的至少一个属于逻辑接口集合;b)对于特定数据元素,接收指定了多个第二下一跳接口的第二映射,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口;c)通过利用指定了多个第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的至少一部分,从第一和第二映射中产生合并映射。
28.一种数据转发设备,包括a)设置在该处接收数据元素的多个通信接口;b)存储器,用于存储第一映射、第二映射、第三映射和合并映射;i)对于在通信接口处接收的数据元素,第一映射指定了下一跳接口,其中至少一个下一跳接口属于逻辑接口集合;ii)对于特定数据元素,第二映射指定了第二下一跳接口,由第一映射指定的下一跳接口属于逻辑接口集合,其中至少一个第二下一跳接口属于多个通信接口;iii)对于特定数据元素,第三映射指定了第三下一跳接口,由第一映射指定的所述下一跳接口属于逻辑接口集合,其中至少一个第三下一跳接口属于多个通信接口;iv)对于在通信接口处接收的数据元素,合并映射指定了下一跳接口,其中由合并映射指定的下一跳接口不属于逻辑接口集合;c)与所述通信接口和所述存储器相连的处理实体,所述处理实体能够i)通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的特定部分,以及通过利用指定了第三下一跳接口的第三映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的特定部分,从第一、第二和第三映射中产生合并映射;ii)访问合并映射,以便确定与在通信接口处接收的每一个数据元素相关联的下一跳接口;iii)将所接收的数据元素转发到在步骤ii)中确定的下一跳接口。
全文摘要
一种用于数据转发实体使用的映射的产生,所述数据转发实体具有通信接口并且例示了与各个映射相关联的多个逻辑转发子系统,所述映射包括第一映射和第二映射。对于在接口处接收的数据元素,第一映射指定了下一跳接口,至少一个下一跳接口属于逻辑接口集合。对于特定数据元素,第二映射指定了第二下一跳接口,由第一映射指定的下一跳接口属于逻辑接口集合,至少一个第二下一跳接口属于多个通信接口。通过利用指定了第二下一跳接口的第二映射的对应部分来代替指定了属于逻辑接口集合的下一跳接口的第一映射的每一部分,来产生合并映射。当在相同的物理转发系统中,利用多于一个逻辑转发子系统来处理相同的数据时,能够具有较高的效率。
文档编号H04L12/56GK1714548SQ200380103743
公开日2005年12月28日 申请日期2003年11月5日 优先权日2002年11月20日
发明者丹尼尔·G·克莱门森 申请人:4198638加拿大公司