CN103430494A - 用于等价多路径分组交换网络的下一跳计算函数 - Google Patents
用于等价多路径分组交换网络的下一跳计算函数 Download PDFInfo
- Publication number
- CN103430494A CN103430494A CN2012800049360A CN201280004936A CN103430494A CN 103430494 A CN103430494 A CN 103430494A CN 2012800049360 A CN2012800049360 A CN 2012800049360A CN 201280004936 A CN201280004936 A CN 201280004936A CN 103430494 A CN103430494 A CN 103430494A
- Authority
- CN
- China
- Prior art keywords
- function
- network
- node
- mapping
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了用于在每节点的ECMP路径确定算法中使用的下一跳计算函数,其增加了等价多路径分组交换网络中网络资源之间的流量传播。在一个实施例中,通过使网络上的每个ECMP节点实现利用唯一密钥材料加密的熵保留映射函数,来将分组映射到输出端口。唯一密钥材料使得每个节点能够从共用函数原型中实例化相应的映射函数,使得给定输入将映射到不同节点上的不同输出。在映射函数的输出组大于候选输出端口的数目的情况下,压缩函数被用于将映射函数的加密输出转换为ECMP端口的候选组。
Description
对相关申请的交叉引用
本申请要求2011年2月17日提交的,题为“用于等价多路径分组交换网络的下一跳计算函数”的序号为61/443,993的美国临时申请的权益,其内容由此通过引用被结合于本文中。
技术领域
本发明涉及分组交换网络,并且尤其涉及分组交换网络中用于等价(equal cost)路径的下一跳计算函数。
背景技术
在以太网网络架构中,连接到网络的装置竞争在任何给定时间使用共享的电信路径的能力。在多个桥或节点被用来互连网络段的情况下,通常存在到相同目的地的多个潜在路径。此架构的益处是,其提供了桥之间的路径冗余,且准许容量以附加链路的形式被添加到网络。然而,为了防止形成环路,生成树(spanning
tree)通常被用来限制流量在网络上被广播的方式。由于通过广播帧和等待响应来学习路由,且由于请求和响应二者均将遵循生成树,所以流量的大多数(如果不是全部的话)将遵循属于生成树的部分的链路。这往往导致生成树上链路的过度利用和不属于生成树的部分的链路的未利用。生成树也可被用于其他形式的分组交换网络中。
为了克服使用生成树控制的网络中固有的一些限制,可使用链路状态协议控制面来控制分组网络中节点的操作。使用链路状态协议来控制分组网络,能够更有效地使用具有无环路最短路径转发的网络容量。不是利用与透明桥接相结合的生成树协议(STP)算法,而是在链路状态协议控制的分组网络中,形成网状网络的桥交换链路状态通告(advertisement),以使得每个节点能够具有网络拓扑的同步化视图。
这是通过链路状态路由系统的很好理解的机制来实现的。链路状态路由协议的两个示例包括开放最短路径优先(OSPF)和中间系统到中间系统(IS-IS),尽管也可使用其他链路状态路由协议。在链路状态路由系统中,具有网络拓扑的同步化视图的网络中的桥,具有必备的单播和组播连通性的知识,可计算网络中任意对桥之间的最短路径连通性,且可个别地根据基于网络的共同视图所计算的最短路径,来填充其转发信息库(FIB)。
链路状态协议控制的分组网络提供了以太网桥接连通性的等效形式,但通过网络元件FIB的配置而不是通过洪泛和学习来对此进行实现。当所有节点已经计算了它们在同步化网络视图中的角色,并填充了它们的FIB时,网络将具有从对等桥组到任意给定桥的无环路单播树,和从任意给定桥到桥处所托管的每服务实例的相同的对等桥组的一致、无环路、点对多点(P2MP)组播树。结果是,给定桥对之间的路径并不被限制为经过生成树的根桥,且总体结果可更好地利用网状网(mesh)的连通性的宽度。电气和电子工程师学会(IEEE)标准802.1aq规定了此技术的一种实现方式。
存在网络中节点之间存在多个等价路径的情形。特别是在数据中心,在那里存在互连交换机的非常密集的网状网,沿源和目的地之间路径,在源和目的地之间或中间节点之间可能存在多个等价路径。在一对节点之间存在多个等价路径的情况下,可能期望在可用路径之间分布流量来获取网络资源的更好利用和/或为了更好的网络吞吐量。等价多路径(ECMP)路由是通过分组交换网络转发分组以便在多个实质可用的等价路径当中分布流量的过程。
当流量进入网络时,可在头端节点处实现ECMP路由,或者可在网络中每个节点处以分布式方式实现ECMP路由。当以分布式方式实现ECMP路由时,具有通往目的地的多个等价路径的每个节点,将在多个可用路径上本地引导不同流的流量以在网络上分布流量。不幸的是,在实现分布式每节点的ECMP时,网络容量的最佳使用是难以实现的。
例如,图1示出了分组网络中的典型流量分布模式,其中网络上的每个节点使用相同的ECMP计算函数来从可用路径进行选择。在图1中所示的示例中,意在用于交换机I-L之一的流量可到达交换机A-D中的任意。目标是在网络上传播流量,使得大量路径被用来通过网络转发流量。不幸的是,如图1中所示,在网络的一些区域中,每个节点上相同下一跳计算函数的使用可导致非常差的流量分布。特别是,流ID中的规律性或模式可使得流量变得集中,并导致网络上可用路径之间不充足的流量传播。
发明内容
本文中提供了以下概要和本申请的结尾处所阐述的摘要,来引入下面在详细描述中所讨论的一些概念。概要和摘要部分是不全面的,且并非旨在描绘由下面所呈现的权利要求所阐述的可保护主题的范围,
提供了用于在每节点的ECMP路径确定算法中使用的下一跳计算函数,其增加了等价多路径分组交换网络中网络资源之间的流量传播。在一个实施例中,通过使网络上的每个ECMP节点实现利用唯一密钥材料加密(key)的熵保留映射函数,来将分组映射到输出端口。唯一密钥材料使得每个节点能够从共用函数原型中实例化相应映射函数,使得给定输入将映射到不同节点上的不同输出。在映射函数的输出组大于候选输出端口的数目的情况下,压缩函数被用于将映射函数的加密输出转换为ECMP端口的候选组。
附图说明
在所附权利要求中具体指出本发明的多个方面。以下附图中通过示例的方式图示了本发明,其中相同的参考标记指示类似的元件。以下附图公开了本发明的各种实施例,仅为了说明的目的,而并不旨在限制本发明的范围。为清楚起见,在每幅图中可能不是每个部件均被标记。在图中:
图1和2是示例分组交换网络的功能性框图;
图3A-3B示出了节点处实现ECMP路由的不同映射的示例应用;
图4是示例网络元件的功能性框图;以及
图5是图示了可被用来实现ECMP路由的过程的流程图。
具体实施方式
图1示出了样本网络,其中在网络中的每一跳处使用相同的下一跳计算函数。流量从图1的底部流到顶部,且在每个节点处,流量被节点本地映射到4个可能输出端口中的一个。交换机的底部和中部行之间,流量是均匀分布的,其中网状网的每个链路连接正被利用的两行。然而,交换机的中部行无法利用将其连接到顶部行的所有链路。中部行中最左边的交换机仅接收被映射到最左边外出端口的流量。类似地,该行中第i个交换机只接收被映射到前级中第i个端口的流量。此不合理行为是由在每个节点处相同映射函数的使用以及此示例中所使用网状网的规则性质所引起的。然而,此类型的非常规则的网络结构根本不是不常见的。特别是,数据中心倾向于使用像图1中所示出的结构那样的规则结构,其中交换机的行由非常规则的网状网所互连。
图2示出了图1的网络,其中替代的ECMP路径选择过程已被实现来在网络上在可用链路之间更加均匀地分布流量。为简单起见,图2中仅示出了具有DA=J的流量。此示例中,流量可到达节点A、B、C、D中的任意,这些节点中的每个可选择连接到节点E、F、G和H中的任意的链路。该节点然后转发流量到节点J上。通过将图2与图1比较,显然流量更均匀地分布在互连节点两个层的链路上。当网络上的节点使用不同的ECMP路径选择算法时,在分布式ECMP系统中更容易实现流量模式,诸如图2中所示出的示例。具体地,独立下一跳选择算法的使用降低了与路径ID相关联的模式对路径选择将具有强相关性的可能性,从而引发网络上更加广泛的流量分布。
为了实现流量传播,例如如图2中所示,使用分布式ECMP过程,其中对于其在输入端口上接收的每个分组,分组交换网络的每个节点必须确定适当的输出端口,在该输出端口上来输出用于在通过网络朝向目的地的路径上传输到下一节点的分组。为了实现ECMP,对所接收的分组,每个节点必须做出适当的转发确定。为了实现流量传播,由节点所使用的算法必须是有些随机化的。然而,为了使网络流量能够被模拟和预测,该算法应该是确定性的。此外,与个别流相关联的分组应当始终被分配到相同的输出端口,以使分组的流能够被引导出该相同端口而朝向预期目的地。
根据一个实施例,排列(permutation)被用来在网络的每个节点处分布流量。使用确定性的算法来创建排列,使得流量的特定流将通过网络被路由的方式可提前被预测。然而,在输入激励中对伪随机输出行为给予较小差别的情况下,将排列以这样的方式进行设计以允许可用链路之间良好的流量传播。此外,所选择的算法被如此设计,使得网络上每个节点将连同本地唯一密钥值一起使用相同算法,以使基本上本地唯一的函数能够被用来选择ECMP下一跳。尽管将描述被聚焦于分组网络中流量的层2(以太网)交换的实施例,所描述的用于实现流量传播的技术在使用ECMP路由的层3网络中也可能是有用的。
在一个实施例中,入口交换机的入口端口处接收的每个分组被分配流标识符(流ID)。通常,流ID可基于客户MAC报头(C-MAC)或互联网协议(IP)报头中的信息,诸如IP源地址(SA)、IP目的地址(DA)、协议标识符、源和目的地端口以及分组报头的其他可能内容。替代地,可以将流ID以另一方式分配给分组。例如,管理系统可分配流ID到管理分组来监测特定网络路径的健康度和性能。流ID被封装在入口交换机处的分组报头中,且可从出口交换机处的分组报头中解封。流ID可被承载在12位VLAN标识符(B-VID)字段中、24位服务标识符(I-SID)字段中、新的(尚未被指定的)字段中或这些字段的任何部分或组合中。实现流ID的创建、分发和/或再创建的多种方式可被实现,这取决于特定的实现方式。
存在若干协议,其要求将具有相同流ID的分组经由相同中间交换机-即经由通过网络的相同路径,从相同入口交换机转发到相同出口交换机。具有以此方式被发送的分组,防止了分组的次序混乱的接收,且另外促进了网络上数据的传输。因此,在节点执行ECMP的情况下,在节点处实现以在通往目的地的等价路径之间进行选择的算法应当始终操作(即总是选择相同的输出路径),以用于与给定流ID相关联的分组。
然而,对于ECMP网络,要求从相同入口交换机转发到相同出口交换机的具有不同流ID的分组,应当该根据它们的流ID,在入口交换机和出口交换机之间的不同等价路径当中被分布,其中存在入口交换机和出口交换机之间的多个基本上等价的路径,以从中选择。
根据实施例,为了在基本上等价的路径当中,实现具有不同流ID的分组的这种分布,网络中的每个交换机为所接收的承载了特定DA和特定流ID的分组确定适当的输出端口,通过:
1.将DA映射到与通往DA的一组最小代价路径相对应的一组候选输出端口上。在只存在一个最小代价路径的情况下,将只存在一个候选输出端口。在存在通往DA的多个基本上等价的最小代价路径的情况下,可能存在多个候选输出端口。
2.至少在DA对应于多个候选输出端口的情况下,使用被加密到特定交换机的映射函数,将流ID映射到候选输出端口之一。映射应该是这样的,以便在每个交换机处,将大致均匀地分布流ID到输出端口的分布。注意的是,此步骤对于具有DA的分组不是需要的,对于其而言,仅存在一个对应的候选输出端口-该分组可被简单地路由到该输出端口。
根据一个实施例,可通过将熵保留伪随机映射(即,映射的不同输出的数目应等于不同输入的数目)与将大量映射的流ID映射到少量候选输出端口的压缩函数进行组合,来产生节点处流ID到候选输出端口的映射。该熵保留映射可为双射函数(bijective
function),其中该组不同输入被映射到具有与该组不同输入相同数目元件的一组不同输出。替代地,该熵保留映射可包括单射函数(injective
function),其中,该组不同输入被映射到较大的一组可能的不同输出,其中仅使用对应于不同输入的数目的不同输出的数目。在这两种替代方案的任一中,不同输入到不同输出的映射是一对一的。
图3A和3B示出了8输入(1-8)到8输出(A-H)的示例映射。如图3A中所示,存在许多方式来将输入映射到输出。根据一个实施例,每个节点使用映射函数来将流标识符映射到输出的候选组。这实际上创建了流ID的混洗(shuffled)序列。以此方式映射流标识符使流标识符随机化,以减少或消除网络上与对流的流标识符分配相关联的任何模式。在一个实施例中,每个节点采用原型映射,并应用密钥值到映射,来实例化节点处的唯一映射。例如,每个节点可使用乘法函数中的密钥值,来产生节点处唯一的流ID混洗序列的循环移位。图3A示出了使用源自使用第一密钥的原型映射的第一映射的,输入1-8到输出A-H的映射,以及图3B示出了使用源自使用第二密钥的相同原型的第二映射的,输入1-8到输出A-H的映射。如图3A和3B的比较中所示出的,不同密钥的使用使不同输入值(流ID)被映射到不同输出值。
为了防止流量会聚和流集中,根据一个实施例,映射应该是这样的,使得没有两个交换机具有相同的熵保留映射。这可以通过分配唯一密钥给每个交换机,并使用对于每个交换机唯一的加密的映射函数映射流ID来进行布置。由于每个交换机处的密钥是不同的,并且因为由交换机所用来执行映射的底层算法是由密钥和原型熵保留映射函数所完全指定的,所以加密的映射函数对于交换机将是唯一的。这使网络上流量的流能够被确定,同时还允许特定流ID到一组输出端口的映射在网络上每个交换机处是不同的,这是由于在每个交换机处处于使用中的不同密钥。
可以预计的是,可能的流ID的数目可以大大超过网络上ECMP路径的数目。例如,如果流ID是12位长,预计将会存在大约4096个可能的流ID,其可被分配到网络上的流,且将使用映射函数将其映射到不同的一组4096个值。然而,将不太可能存在通往给定目的地的4096个等价路径。因此,由于熵保留映射函数产生相比候选输出端口的数目更大数目的输出,映射进一步包括压缩不同输出的数目来等于候选输出端口数目的压缩函数。压缩函数应该是这样的,以便保留原型映射的伪随机性。由于每个节点处熵保留映射函数至少部分地基于与该节点相关联的值,因此对所有节点共同的标准压缩函数的使用将保持与熵保留映射函数的使用相关联的链路分布随机化。
图3A和3B示出了一个示例,其中使用相同的压缩函数来将映射A-H的每个输出映射到一组三个输出端口。如图3A和3B中所示,映射函数的输出A、E、H被压缩到端口1,映射函数的输出B和F被压缩到端口2,且映射函数的输出C、D、G被压缩到端口3。因此,在图3A和3B二者中,已使用相同的压缩来降低通往一组候选输出端口的输出值组。然而,由于映射期间引入的熵,共同压缩函数的使用允许一组不同的输入(1-8)被映射到每个输出端口。具体地,如图3A中所示,在其映射函数的执行中由第一节点所包括的密钥(密钥1)使输入流3、6和7被映射到端口1,流1和4被映射到端口2,以及流2、5和8被映射到端口3。图3B中,使用不同密钥,密钥2,且流2、4和7被映射到端口1,流5和8被映射到端口2,以及流1、3和6被映射到端口3。如这些图中所示的,共同压缩函数的使用允许映射中所引入的熵连同输出端口选择一起被保留,使得网络上多个节点可使用共同的压缩函数。
下面更详细地描述了示例映射。在以下描述中,x表示流ID,f表示原型映射,n表示交换机密钥,fn 表示加密映射, 且fn(x)表示应用压缩函数之前映射的流ID。压缩函数对所映射的流ID的应用,确定输出端口候选中哪个输出端口被用于转发分组。
优选地,应该构建候选原型映射,使得使用不同密钥的任意对交换机将实例化熵保留映射,该熵保留映射将不把任何流ID映射到相同值。根据一个实施例,使用基于指数的映射来随机化流ID,以破坏可存在于流ID中的模式。尽管还可以使用其他映射,但基于指数的映射的使用提供了充分的结果以用于许多应用。同样地,也许可能的是,组合若干个映射,每个映射具有期望的属性,以获得展示一组期望的特性的组合函数。 因此,可使用不同的映射(即通过组合多个熵保留原型映射函数)来构建不同实施例,以实现在ECMP网络中的等价链路上传播的确定性的流量。
存在许多可能的全局唯一值,节点可将其用作为密钥来实例化本地映射。例如,交换机可使用IS-IS交换机ID、最短路径桥接MAC(SPBM)源ID(B-SA)或值的任何其他组合或保留唯一性的这些值的变换/组合。这些值可被用作用于节点映射函数的密钥,来使每个映射函数能够对网络中的特定交换机是唯一的。然而,原型映射函数,即所使用的算法,在所有节点处相同,使得给定节点处使用的实际映射函数由该节点处处于使用中的密钥值所完全指定。尽管提供了一个示例,其中基于节点处固有的属性(即节点ID)确定了密钥材料,在另一实施例中,ECMP密钥材料可以是由管理系统提供的、在交换机上随机生成的、或源自唯一标识符(例如系统ID的散列(hash)或SPBM SPSourceID)的编程值。此外,在网络上不具有利用相同密钥材料的任何节点被认为重要的应用中,通过使用链路状态路由系统,该节点可通告密钥材料,以使每个节点能够学习其他节点处处于使用中的密钥,并确保路由区域内的每个其他节点正使用唯一的密钥材料。
尽管在理论上是期望的,但密钥的唯一性并不是绝对必要的。例如,从实际的观点来看,只要两台交换机将使用相同密钥的机会被保持相对较低,该方法就将充分执行。
示例算法:
在以下讨论中,将假定流ID将为小的整数,可能不超过24位,且最有可能是8或16位。排列大小将是2的幂(例如28, 216)
或接近于2的幂。每个交换机将被分配唯一的伪随机排列或伪排列。与此相结合,重要的是避免使用相同映射的路径中两个交换机的不合理情况。通过利用小的(<64位)唯一(具有高概率)整数加密类属函数,构建交换机映射函数。在所有交换机上可能相同的压缩函数也可被使用。在所有交换机处相同原型熵保留函数和所有交换机处相同压缩函数的使用的组合,将使得网络行为完全可预测,只要提供密钥知识并采取用于链路编号的惯例(例如,根据它们的相应链路的端点网桥标识符,来将ECMP候选输出端口排序)。
通过使网络上的节点使用相同的函数和相同的压缩过程,确定流将如何通过网络被路由(假设每个节点处所使用密钥材料知识以在该节点处实例化熵保留映射函数)是可能的。这允许了通过建模的数据流量模式的预测,而不需要将要通过测量来学习的流量模式。因此目标是发现函数,其充分随机运转以跨越广泛范围的等价链路分布流量,而不使用实际的随机性来保留在网络上建模流量运转状况的能力。
根据一个实施例,交换机应当使用不同熵保留映射,例如排列或注入,使得家庭中任何两个映射应当被足够地去相关。在一个实施例中,用来将输入组映射到输出组的映射函数是单射的:即,任何两个不同输入被映射到不同的输出。此外,熵保留原型映射函数应当具有期望的属性,即,使用不同随机密钥材料的映射函数的两个实例化将导致并不以有意义/明显的方式直接与彼此相关联的不同映射。
在一个优选的实施例中,熵保留映射函数的两个不同实例化应当不将相同流ID映射到不同交换机中的相同值。同样,映射应该是由小的唯一标识符可识别/加密的,该小的唯一标识符可选地可被路由系统(例如经由IS-IS)suo
通告。这可以是IS-IS系统ID、最短路径桥接MAC源ID(SPBM SPSourceID)、新的唯一标识符、或保留唯一性的这些的任意组合。替代地,密钥可以是预备的、随机生成的、或源自唯一标识符,例如系统ID的散列。当后面有简单压缩函数时,映射也应该表现伪随机。这对于小数目的候选输出端口尤为重要。
基于线性同余(congruential)映射的排列被发现为产生简单熵保留映射,使得从共用原型加密的两个不同映射绝不会将相同输入映射到相同输出。通过从先前的随机数计算出连续随机数,线性同余随机数生成起作用。使用xi+1
=(Axi + C) MOD M,可实现一个示例线性同余映射函数,其中C和M是互质的。
然而,这些简单映射中的一些展示了特性,其当MOD被用作压缩函数时,特别是对于小型乘法器,展示出远离随机的属性。相反,基于模指数计算的较强的伪随机排列,展示出更好的性能。例如,应用混洗的流ID的伪随机排列,其中使用简单排列来混洗流ID,使更随机的查找混洗(looking
shuffle)被创建。同样,可能的是,使用良好的伪随机函数(例如模指数计算)来混洗流ID,且在每个节点处,在混洗的序列中不同偏移处开始。通过将基本映射与期望的属性组合,也可构建更复杂的熵保留映射。例如,线性同余映射和模指数映射的组合被发现为展示二者的良好属性:得到的映射展示了模指数映射的良好伪随机性属性以及以及线性同余映射的唯一性属性。
例如,给定质数p和原根g,函数f(x)=gx mod p 是任何连贯的p-1个整数(即x … X+p-2)到范围1...P-1的一对一映射。特别是,其生成整数1...p-1的伪随机排列。类似的,函数h(x)=(gx mod p)-1生成整数0...p-2的伪随机排列。模指数计算因此可被用来随机化混洗的流ID。替代地,模指数计算可被用来构造更随机的混洗,其中在每个节点处加密模指数计算自身。例如,每个节点处可使用不同的原根。通过生成节点特定的原根作为共用基本根的适当选择的幂,这可被容易地实现。
使用指数计算来创建表1(下面),其中fn(x)=3^[(2n+1)x
+ n mod 2m] mod (2m+1)-1。注意的是,3x
mod 17将0...15(或1..16)映射到1...16。将1...16重映射到0...15不是绝对必要的,但其可以以多种方式来完成(例如 x→ x mod 16, x→16-x 等),且不改变基本排列的属性。
表
1
x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
f0(x) | 0 | 2 | 8 | 9 | 12 | 4 | 14 | 10 | 15 | 13 | 7 | 6 | 3 | 11 | 1 | 5 |
f1(x) | 2 | 12 | 10 | 7 | 11 | 0 | 9 | 14 | 13 | 3 | 5 | 8 | 4 | 15 | 6 | 1 |
f2(x) | 8 | 10 | 3 | 2 | 14 | 6 | 0 | 4 | 7 | 5 | 12 | 13 | 1 | 9 | 15 | 11 |
f3(x) | 9 | 7 | 2 | 15 | 5 | 14 | 11 | 12 | 6 | 8 | 13 | 0 | 10 | 1 | 4 | 3 |
f4(x) | 12 | 11 | 14 | 5 | 15 | 2 | 7 | 9 | 3 | 4 | 1 | 10 | 0 | 13 | 8 | 6 |
f5(x) | 4 | 0 | 6 | 14 | 2 | 3 | 10 | 8 | 11 | 15 | 9 | 1 | 13 | 12 | 5 | 7 |
f6(x) | 14 | 9 | 0 | 11 | 7 | 10 | 12 | 2 | 1 | 6 | 15 | 4 | 8 | 5 | 3 | 13 |
f7(x) | 10 | 14 | 4 | 12 | 9 | 8 | 2 | 0 | 5 | 1 | 11 | 3 | 6 | 7 | 13 | 15 |
如果流ID为8或16位,对应的费马质数(F3=257,F4=65537)和合适的原根(例如3)可被用于模指数计算。数论中费马质数是质数,其中Fp=22p
+1 (p=0...4)。如果如此需要的话,其然后直接将得到的范围1…Fp-1映射回到0…Fp-2,来产生适当的排列。
如果流ID是不同数目的位,那么下一个较高(或下一个较小)质数可被代替使用。如果被选择用于排列的质数略小于流ID的数目,所得到的映射将是有损耗的,并且不是完全熵保留的。如果质数大于流ID的数目,则将需要至少一个额外位来表示所产生的值,除非所得到的序列被重新编号来说明大于最大流ID的整数的图像不能被达到的事实。例如,如果流ID为12位长(m=12),那么 2m=4096,且最接近于4096的较大质数为p=4099。4096、4097和4098不在输入组中,且因此它们的图像不在输出中。
· 2^4098 mod 4099=1
· 2^4097 mod 4099=2^4098/2 mod 4099 =
(1+4099)/2=2050
· 2^4096 mod 4099=2050/2=1025
设f(x)是针对0≤X≤4095所定义的函数于。
· y=2^x mod 4099
· if(y<1025)then f(x)=y-2;
· else if(1025<y<2050)then f(x)=y-3
· else f(x)=y-4
以上函数生成整数0...4095的排列。
在表1中,简单线性同余混洗x → (2n+1)x+n mod 2m与模指数计算y → 3y
mod 2m+1组合,来产生组合二者的期望属性的原型映射。表2示出了另一个示例,其中,fn(x)=[((9n mod 2m)+1)*(33x
mod (2m+1))-1] mod (2m +1):
表
2
x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
f0(x) | 0 | 2 | 8 | 9 | 12 | 4 | 14 | 10 | 15 | 13 | 7 | 6 | 3 | 11 | 1 | 5 |
f1(x) | 9 | 12 | 4 | 14 | 10 | 15 | 13 | 7 | 6 | 3 | 11 | 1 | 5 | 0 | 2 | 8 |
f2(x) | 2 | 8 | 9 | 12 | 4 | 14 | 10 | 15 | 13 | 7 | 6 | 3 | 11 | 1 | 5 | 0 |
f3(x) | 11 | 1 | 5 | 0 | 2 | 8 | 9 | 12 | 4 | 14 | 10 | 15 | 13 | 7 | 6 | 3 |
f4(x) | 4 | 14 | 10 | 15 | 13 | 7 | 6 | 3 | 11 | 1 | 5 | 0 | 2 | 8 | 9 | 12 |
f5(x) | 13 | 7 | 6 | 3 | 11 | 1 | 5 | 0 | 2 | 8 | 9 | 12 | 4 | 14 | 10 | 15 |
f6(x) | 6 | 3 | 11 | 1 | 5 | 0 | 2 | 8 | 9 | 12 | 4 | 14 | 10 | 15 | 13 | 7 |
f7(x) | 15 | 13 | 7 | 6 | 3 | 11 | 1 | 5 | 0 | 2 | 8 | 9 | 12 | 4 | 14 | 10 |
在此情况下,首先应用模指数计算,随后是加密的线性同余混洗。乘以由模指数计算产生的序列的非零乘数的乘法计算产生序列的循环移位。
注意的是,利用合适选择的指数,任何原根可被表达为任何其他原根的幂。在表2中所示的示例中,被用作用于指数计算的基数的原根为33 = 27。
上面所描述的排列引起输入数目到输出数目的混洗,该混洗可被用来在网络上每个交换机处混洗流ID。每个交换机然后取得混洗的流ID,并使用其密钥来以对于交换机唯一的方式进一步混洗流ID。例如,每个交换机可使用其密钥,使得混洗的流ID序列乘以密钥的非零函数的乘法计算产生序列的循环移位。替代地,密钥材料可被用来选择将被用作用于每个交换机处模指数计算的基数的不同原根。使用密钥材料的其他方式也可被实现。
尽管连同在其中使用单线记法(one-line notation)描述排列的示例一起提供以上描述,但其他记法,例如循环记法(cycle
notation),可被用来表达排列。特别地,当由基本排列的幂来生成一族排列时,循环记法提供了一个便利的方式来可视化发生了什么。
通过使用排列的循环记法,可非常有效地计算排列的任意幂,其中每个元件后面是其通过排列的图像(具有循环记法序列中最后一个元素映射回到序列中第一元素的惯例)。在循环记法中,取得排列量的幂s来在循环记法中向前跳过s个元素。单线记法和循环记法之间的转换是容易的。从排列的循环记法开始是可能的,因为这保证了排列的次序将与排列中元件的数目等同。
这里,我们使用基于封闭形式方程 f(x) = (2x+1) mod 11或等效地基于递归(recurrence) c(0) = 1, c(x+1) = c(x)+2 mod 11的示例排列来说明此过程。这定义了10个数位的排列。用于此排列的循环记法为(0 1
3 7 4 9 8 6 2 5) ,以及单线记法为(1 3 5 7 9 0 2 4
6 8)。单线记法示出了有序序列上排列的效果,而循环记法示出了循环,随着重复地应用排列,每个元素经受该循环。更简洁的单线记法和循环记法可被概括为:
One-line[x] = f(x)
Cycle[n+1] = f(Cycle[n]) 其中 Cycle[0]是的正被排列的元素中任意选择的一个。
在单线记法和循环记法之间转换是容易的:挑选任意元素作为循环记法中的第一个(例如0),且然后对于循环中每个剩余元素,使用单线记法来查找序列中其前任的图像。
Cycle[0]
= 0;
Cycle[n+1] = One-line [Cycle[n]] ,对于n=1到N。
在相反的方向上,在循环记法和单线记法之间转换是同样容易的。
One-line
[Cycle[n]] = Cycle[n+1]。
类似地,由其循环记法给出排列的幂s的单线记法。
One-line
[Cycle[n]] = Cycle[n+s].
其中应留意在循环末尾处实现回绕(即,以循环长度为模来取得索引)。
因此,如果给出排列的单线或循环表示,那么排列的任意幂的单线或循环表示可被计算出。表3基于方程f(x)=(2x+1) mod 11示出了示例排列的连续幂。顶部行(行0)对应于排列的第0次幂,行1示出了排列的单线记法,且更一般地,行n示出了排列的第n次幂的单线记法。表中的列(除了示出了连续幂的最左边的一列外)对应于基本排列的不同循环记法。
表
3
0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
1 | 1 | 3 | 5 | 7 | 9 | 0 | 2 | 4 | 6 | 8 |
2 | 3 | 7 | 0 | 4 | 8 | 1 | 5 | 9 | 2 | 6 |
3 | 7 | 4 | 1 | 9 | 6 | 3 | 0 | 8 | 5 | 2 |
4 | 4 | 9 | 3 | 8 | 2 | 7 | 1 | 6 | 0 | 5 |
5 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
6 | 8 | 5 | 4 | 2 | 0 | 9 | 7 | 5 | 3 | 1 |
7 | 6 | 2 | 9 | 5 | 1 | 8 | 4 | 0 | 7 | 3 |
8 | 2 | 5 | 8 | 0 | 3 | 6 | 9 | 1 | 4 | 7 |
9 | 5 | 0 | 6 | 1 | 7 | 2 | 8 | 3 | 9 | 4 |
多族排列已被构建,其具有以下属性:
· 通过相对小的整数(例如系统ID)来加密排列;
· 没有两个排列将相同输入映射到相同输出;
· 当与简单压缩函数(例如,mod)组合时,映射具有良好的随机性属性。
这些族的排列产生(非常大的)拉丁方,且因而可被视作拟群的乘法表。拉丁方,在此情境中,是填充有n个符号的n×n阵列,每个符号在每行和每列中正好出现一次。由乘法表的行或列表示特定的交换机的映射。尽管以上说明的示例基于有限域,但相同的方法适用于拟群。关键属性是流ID的映射必须是可逆的。
图4示出了可被配置为根据一个实施例实现ECMP的示例网络元件。在图4中所示的示例中,网络元件10包括数据面20和控制面22。其他架构也可被实现,且本发明不限于如图4中所示那样架构的实施例。图4中所图示实施例的操作的特定结构和方法的讨论并非仅旨在提供本发明可如何在特殊情况下被使用或实现的一个示例。本发明可更广泛地连同配置为在通信网络上处理协议数据单元的任意网络元件一起被使用。图4的网络元件可被用作边缘网络元件(例如边缘路由器)、核心网络元件(例如路由器/交换机)、或作为另一类型的网络元件。可在例如上文连同图1一起描述的通信网络的通信网络中,或在另一类型的有线/无线通信网络中实现图4的网络元件。
如图4中所示出的,网络元件包括控制面20和数据面22。控制面20包括一个或多个CPU 24。每个CPU 24正运行控制面软件26,其可包括,例如一个或多个路由过程28、网络操作和行政管理(administration and management)软件30、接口创建/管理过程32和ECMP过程34。可独立于路由过程来运行ECMP过程,或可作为路由过程的部分来实现ECMP过程。ECMP过程应用熵保留映射函数来选择ECPM端口,以用于如上所述的流。替代地,如下文所述,可在数据面而非控制面中实现ECMP过程。
控制面还包括存储器36,该存储器包含当被加载到CPU中时实现控制面软件26的数据和指令。如由路由过程28所确定的,存储器进一步包括包含关于网络拓扑结构的信息的链路状态数据库38。ECMP过程34使用LSDB中的信息来确定是否存在通往目的地的一个以上的基本上等价的路径,且然后应用上文所述的映射函数来将流分配到所选择的路径。
数据面22包括线路卡42,该线路卡42包含与物理媒体40相连接以接收和发送数据的端口44。物理媒体可包括光缆或电线。替代地,例如使用蜂窝802.11或802.16无线通信标准之一,物理媒体可被实现为无线通信信道。尽管也可使用实现端口44的其他方式,但在所图示的示例中,在线路卡42上支撑端口44来促进容易的端口替换。
数据面22进一步包括网络处理单元(NPU)46和交换机结构48。NPU和交换机结构48使数据能够在端口间被交换,以允许网络元件来向网络上其目的地转发网络流量。优选地,NPU和交换机结构在对数据分组进行操作,而不具有来自控制面的显著干涉来最小化与由网络元件所转发流量相关联的等待时间。除了将流量从线路卡引导到交换机结构,NPU还允许在流量的特定流上实现例如优先排序和流量整形的服务。线路卡也可包括处理能力,以使处理分组的责任能够在线路卡和NPU之间分担。如本领域中已知的,可由线路卡或数据面中的其他部分来实现多个处理步骤。图4中尚未包括与特定实现方式相关联的细节,以避免与本发明的实施例的实现方式相关联的显著特征的混淆。
在一个实施例中,将流ID映射到下一跳输出端口所需的计算可在数据面中被实现。在此实施例中,控制面可建立节点特定函数,但其不参与转发决定。由于分组被接收并且做出存在通往目的地的多个等价路径的确定,将使用上文所述的算法来在每个流的基础上将分组映射到等价路径。责任在控制面和数据面之间被分配以用于实现ECMP所需的计算的特定方式,将取决于特定的实现方式。
在要实现ECMP的情况下,路由软件28将使用链路状态数据库38来计算通过网络到每个可能目的地的最短路径树。转发信息将被传递到数据面,并被编程到转发中的信息库中。ECMP过程34将应用ECMP算法来将流分配到通往目的地的基本上等价的路径中的每个。图5中阐述了用于分配此性质的流的一种方法。如图5中所示出的,ECMP过程应用节点特定密钥材料到原型映射函数来创建节点特定映射函数(100)。ECMP过程然后应用节点特定映射函数到可能的输入流标识符组来获得流标识符的混洗序列(102)。此混洗序列在ECMP过程中可被编程为表或算法(104)。最后,ECMP过程应用压缩函数来将所映射的流ID分配到一组候选输出端口(106)。
上文所述的函数可被实现为一组程序指令,其被存储于计算机可读存储器中,且在计算机平台上的一个或多个处理器上被执行。然而,将对本领域技术人员显而易见的是,本文所述的所有逻辑可通过使用分立部件、诸如专用集成电路(ASIC)集成电路、连同可编程逻辑器件(诸如现场可编程门阵列(FPGA))或微处理器所使用的可编程逻辑、状态机或包括其任意组合的任何其他装置来体现。可编程逻辑可被暂时或永久地固定在有型介质中,例如只读存储器芯片、计算机存储器、磁盘或其他存储介质中。所有这样的实施例旨在落入本发明的范围内。
应当理解的是,在本发明的精神和范围内,可做出图中所示和说明书中所描述的实施例的各种改变和修改。因此,旨在的是,在示例性而非限制的意义上解释以上描述中所包含的以及附图中所示出的所有内容。仅如以下权利要求及其等同方式中所定义的那样来限制本发明。
权利要求书(按照条约第19条的修改)
1.一种由分组网络中的节点在基本上等价的路径之间执行路径选择的方法,该方法包括以下步骤:
由节点将利用唯一密钥材料加密的节点特定熵保留映射函数应用到一组可能的输入流标识符,以获得流标识符的节点特定混洗序列;以及
应用压缩函数来将流标识符的节点特定混洗序列分配到一组候选输出端口。
2.如权利要求1所述的方法,其中分组网络中每个节点独立地执行路径选择来实现分布式等价多路径(ECMP)过程。
3.如权利要求2所述的方法,其中实现分布式ECMP过程,使得对于其在输入端口上所接收的每个分组,分组网络的每个节点将确定适当的输出端口,在该适当的输出端口上来输出分组,用于在通过分组网络朝向目的地的路径上传输到下一节点。
4.如权利要求1所述的方法,由原型熵保留映射函数和唯一密钥材料来完全指定节点特定熵保留映射函数。
5.如权利要求4所述的方法,其中原型熵保留映射函数对分组网络中多个节点是共用的。
6.如权利要求4所述的方法,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
7.如权利要求4所述的方法,其中节点特定熵保留映射函数是一致的,以便总是选择用于与给定流ID相关联的分组的相同输出路径。
8.如权利要求4所述的方法,其中在入口节点和出口节点之间不同的等价路径当中,根据分组的流ID,节点特定熵保留映射函数使要求从相同入口节点到相同出口节点进行转发的具有不同流ID的分组被分布。
9.如权利要求4所述的方法,其中节点特定熵保留映射函数将流ID大致均匀地分布到输出端口。
10.如权利要求1所述的方法,其中压缩函数对分组网络中多个节点是共用的。
11.如权利要求1所述的方法,其中节点特定熵保留映射函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
12.如权利要求11所述的方法,其中输入到输出的映射是一对一的。
13.如权利要求1所述的方法,其中节点特定熵保留映射函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
14.如权利要求13所述的方法,其中输入到输出的映射是一对一的。
15.如权利要求1所述的方法,其中节点特定熵保留映射函数是基于指数的映射。
16.如权利要求15所述的方法,其中基于指数的映射函数是模指数计算。
17.如权利要求16所述的方法,其中基于指数的映射函数具有形式f(x)=gxmod p。
18.如权利要求17所述的方法,其中通过在每个节点处使用不同的原根,在每个节点处加密模指数计算,其中p为质数幂,且g为原根。
19.如权利要求1所述的方法,其中节点特定熵保留映射函数是与线性同余映射函数相组合的基于指数的映射函数。
20.如权利要求1所述的方法,其中使用分组网络上所实现的路由系统来通告唯一密钥材料。
21.如权利要求1所述的方法,其中唯一密钥材料是以下中的至少一个:IS-IS系统标识符、节点MAC地址、预备值及其组合。
22.一种通过分组交换网络在路径上转发分组的方法,每个分组具有目的地址和流标识符,分组交换网络具有至少一对节点之间的多个基本上等价的路径,每个基本上等价的路径在基本上等价的路径上的每个节点处具有对应的候选输出端口,该方法包括,对于具有拥有在节点处分叉的多个等价路径的目的地址的分组:
通过将每个分组的流标识符映射到用于该分组的目的地址的候选输出端口之一,来在节点处选择候选输出端口,该映射包括对该节点本质上唯一的第一函数,使得对于所有可能的流标识符,该函数产生一个值,该值不同于由在大多数或所有的用于相同流标识符的其他网络节点处的对应函数所产生的值;以及
在函数的输出组大于候选输出端口的数目的情况下,该映射进一步包括压缩函数,其将第一函数的输出组映射到限于候选输出端口的组中。
23.如权利要求22所述的方法,其中分组网络中每个节点独立地执行以下步骤:选择用于每个分组的候选输出端口来实现分布式等价多路径(ECMP)过程。
24.如权利要求22所述的方法,其中第一函数是与线性同余映射函数相组合的基于指数的映射函数。
25.如权利要求22所述的方法,其中由原型熵保留映射函数和唯一密钥材料来完全指定第一函数。
26.如权利要求25所述的方法,其中原型熵保留映射函数对分组网络中多个节点是共用的。
27.如权利要求25所述的方法,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
28.如权利要求22所述的方法,其中第一函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
29.如权利要求22所述的方法,其中第一函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
30.如权利要求22所述的方法,其中压缩函数对分组网络中多个节点是共用的。
31.一种用于通过分组交换网络在路径上转发分组的系统,每个分组具有目的地址和流标识符,分组交换网络在至少一对节点之间具有多个基本上等价的路径,每个基本上等价的路径在基本上等价的路径上的每个节点处具有对应的候选输出端口,该系统包括:
至少一个处理器;
至少一个网络接口,其可操作成将处理器耦合到分组交换网络;以及
至少一个存储器,其可操作成存储用于由至少一个处理器执行的指令,该指令对于具有目的地址的分组是可执行的,该目的地址具有在节点处分叉的多个等价路径:
以通过将每个分组的流标识符映射到用于该分组的目的地址的候选输出端口之一,来在节点处选择候选输出端口,该映射包括对节点本质上唯一的第一函数,使得对于所有可能的流标识符,该函数产生一个值,该值不同于由在大多数或所有的用于相同流标识符的其他网络节点处的对应函数所产生的值;以及
在函数的输出组大于候选输出端口的数目的情况下,该映射进一步包括压缩函数,其将第一函数的输出组映射到限于候选输出端口的组中。
32.如权利要求31所述的系统,其中分组网络中每个节点独立地执行以下步骤:选择用于每个分组的候选输出端口来实现分布式等价多路径(ECMP)过程。
33.如权利要求31所述的系统,其中第一函数是与线性同余映射函数相组合的基于指数的映射函数。
34.如权利要求31所述的系统,其中由原型熵保留映射函数和唯一密钥材料来完全指定第一函数。
35.如权利要求34所述的系统,其中原型熵保留映射函数对分组网络中多个节点是共用的。
36.如权利要求34所述的系统,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
37.如权利要求31所述的系统,其中第一函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
38.如权利要求31所述的系统,其中第一函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
39.如权利要求31所述的系统,其中压缩函数对分组网络中多个节点是共用的。
40.一种用于通过分组交换网络在路径上转发分组的网络元件,每个分组具有目的地址和流标识符,该分组交换网络在网络元件和至少一个其他节点之间具有多个基本上等价的路径,每个基本上等价的路径在网络元件处具有对应的候选输出端口,该网络元件包括:
至少一个处理器;
至少一个网络接口,其可操作成将处理器耦合到分组交换网络;以及
至少一个存储器,其可操作成存储用于由至少一个处理器执行的指令,该指令对于具有目的地址的分组是可执行的,该目的地址具有在网络元件处分叉的多个等价路径:
以通过将每个分组的流标识符映射到用于该分组的目的地址的候选输出端口之一,来在网络元件处选择候选输出端口,该映射包括对网络元件本质上唯一的第一函数,使得对于所有可能的流标识符,该函数产生一个值,该值不同于由在大多数或所有的用于相同流标识符的其他网络元件处的对应函数所产生的值;以及
在函数的输出组大于候选输出端口的数目的情况下,该映射进一步包括压缩函数,其将第一函数的输出组映射到限于候选输出端口的组中。
41.如权利要求40所述的网络元件,其中分组网络中每个网络元件独立地执行以下步骤:选择用于每个分组的候选输出端口来实现分布式等价多路径(ECMP)过程。
42.如权利要求40所述的网络元件,其中第一函数是与线性同余映射函数相组合的基于指数的映射函数。
43.如权利要求40所述的网络元件,其中由原型熵保留映射函数和唯一密钥材料来完全指定第一函数。
44.如权利要求43所述的网络元件,其中原型熵保留映射函数对分组网络中多个网络元件是共用的。
45.如权利要求43所述的网络元件,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
46.如权利要求40所述的网络元件,其中第一函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
47.如权利要求40所述的网络元件,其中第一函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
48.如权利要求40所述的网络元件,其中压缩函数对分组网络中多个网络元件是共用的。
Claims (48)
1. 一种由分组网络中的节点在基本上等价的路径之间执行路径选择的方法,该方法包括以下步骤:
由节点将利用唯一密钥材料加密的节点特定熵保留映射函数应用到一组可能的输入流标识符,以获得流标识符的节点特定混洗序列;以及
应用压缩函数来将流标识符的节点特定混洗序列分配到一组候选输出端口。
2. 如权利要求1所述的方法,其中分组网络中每个节点独立地执行路径选择来实现分布式等价多路径(ECMP)过程。
3. 如权利要求2所述的方法,其中实现分布式ECMP过程,使得对于其在输入端口上所接收的每个分组,分组网络的每个节点将确定适当的输出端口,在该适当的输出端口上来输出分组,用于在通过分组网络朝向目的地的路径上传输到下一节点。
4. 如权利要求1所述的方法,由原型熵保留映射函数和唯一密钥材料来完全指定节点特定熵保留映射函数。
5. 如权利要求4所述的方法,其中原型熵保留映射函数对分组网络中多个节点是共用的。
6. 如权利要求4所述的方法,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
7. 如权利要求4所述的方法,其中节点特定熵保留映射函数是一致的,以便总是选择用于与给定流ID相关联的分组的相同输出路径。
8. 如权利要求4所述的方法,其中在入口节点和出口节点之间不同的等价路径当中,根据分组的流ID,节点特定熵保留映射函数使要求从相同入口节点到相同出口节点进行转发的具有不同流ID的分组被分布。
9. 如权利要求4所述的方法,其中节点特定熵保留映射函数将流ID大致均匀地分布到输出端口。
10. 如权利要求1所述的方法,其中压缩函数对分组网络中多个节点是共用的。
11. 如权利要求1所述的方法,其中节点特定熵保留映射函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
12. 如权利要求11所述的方法,其中输入到输出的映射是一对一的。
13. 如权利要求1所述的方法,其中节点特定熵保留映射函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
14. 如权利要求13所述的方法,其中输入到输出的映射是一对一的。
15. 如权利要求1所述的方法,其中节点特定熵保留映射函数是基于指数的映射。
16. 如权利要求15所述的方法,其中基于指数的映射函数是模指数计算。
17. 如权利要求15所述的方法,其中基于指数的映射函数具有形式f(x)=gx mod p。
18. 如权利要求15所述的方法,其中通过在每个节点处使用不同的原根,在每个节点处加密模指数计算,其中p为质数幂,且g为原根。
19. 如权利要求1所述的方法,其中节点特定熵保留映射函数是与线性同余映射函数相组合的基于指数的映射函数。
20. 如权利要求1所述的方法,其中使用分组网络上所实现的路由系统来通告唯一密钥材料。
21. 如权利要求1所述的方法,其中唯一密钥材料是以下中的至少一个:IS-IS系统标识符、节点MAC地址、预备值及其组合。
22. 一种通过分组交换网络在路径上转发分组的方法,每个分组具有目的地址和流标识符,分组交换网络具有至少一对节点之间的多个基本上等价的路径,每个基本上等价的路径在基本上等价的路径上的每个节点处具有对应的候选输出端口,该方法包括,对于具有拥有在节点处分叉的多个等价路径的目的地址的分组:
通过将每个分组的流标识符映射到用于分组的目的地址的候选输出端口之一,来在节点处选择候选输出端口,该映射包括对该节点本质上唯一的第一函数,使得对于所有可能的流标识符,该函数产生一个值,该值不同于由在大多数或所有的用于相同流标识符的其他网络节点处的对应函数所产生的值;以及
在函数的输出组大于候选输出端口的数目的情况下,该映射进一步包括压缩函数,其将第一函数的输出组映射到限于候选输出端口的组中。
23. 如权利要求22所述的方法,其中分组网络中每个节点独立地执行以下步骤:选择用于每个分组的候选输出端口来实现分布式等价多路径(ECMP)过程。
24. 如权利要求22所述的方法,其中第一函数是与线性同余映射函数相组合的基于指数的映射函数。
25. 如权利要求22所述的方法,其中由原型熵保留映射函数和唯一密钥材料来完全指定第一函数。
26. 如权利要求25所述的方法,其中原型熵保留映射函数对分组网络中多个节点是共用的。
27. 如权利要求25所述的方法,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
28. 如权利要求22所述的方法,其中第一函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
29. 如权利要求22所述的方法,其中第一函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
30. 如权利要求22所述的方法,其中压缩函数对分组网络中多个节点是共用的。
31. 一种用于通过分组交换网络在路径上转发分组的系统,每个分组具有目的地址和流标识符,分组交换网络在至少一对节点之间具有多个基本上等价的路径,每个基本上等价的路径在基本上等价的路径上的每个节点处具有对应的候选输出端口,该系统包括:
至少一个处理器;
至少一个网络接口,其可操作成将处理器耦合到分组交换网络;以及
至少一个存储器,其可操作成存储用于由至少一个处理器执行的指令,该指令对于具有目的地址的分组是可执行的,该目的地址具有在节点处分叉的多个等价路径:
以通过将每个分组的流标识符映射到用于分组的目的地址的候选输出端口之一,来在节点处选择候选输出端口,该映射包括对节点本质上唯一的第一函数,使得对于所有可能的流标识符,该函数产生一个值,该值不同于由在大多数或所有的用于相同流标识符的其他网络节点处的对应函数所产生的值;以及
在函数的输出组大于候选输出端口的数目的情况下,该映射进一步包括压缩函数,其将第一函数的输出组映射到限于候选输出端口的组中。
32. 如权利要求31所述的系统,其中分组网络中每个节点独立地执行以下步骤:选择用于每个分组的候选输出端口来实现分布式等价多路径(ECMP)过程。
33. 如权利要求31所述的系统,其中第一函数是与线性同余映射函数相组合的基于指数的映射函数。
34. 如权利要求31所述的系统,其中由原型熵保留映射函数和唯一密钥材料来完全指定第一函数。
35. 如权利要求34所述的系统,其中原型熵保留映射函数对分组网络中多个节点是共用的。
36. 如权利要求34所述的系统,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
37. 如权利要求31所述的系统,其中第一函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
38. 如权利要求31所述的系统,其中第一函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
39. 如权利要求31所述的系统,其中压缩函数对分组网络中多个节点是共用的。
40. 一种用于通过分组交换网络在路径上转发分组的网络元件,每个分组具有目的地址和流标识符,该分组交换网络在网络元件和至少一个其他节点之间具有多个基本上等价的路径,每个基本上等价的路径在网络元件处具有对应的候选输出端口,该网络元件包括:
至少一个处理器;
至少一个网络接口,其可操作成将处理器耦合到分组交换网络;以及
至少一个存储器,其可操作成存储用于由至少一个处理器执行的指令,该指令对于具有目的地址的分组是可执行的,该目的地址具有在网络元件处分叉的多个等价路径:
以通过将每个分组的流标识符映射到用于分组的目的地址的候选输出端口之一,来在网络元件处选择候选输出端口,该映射包括对网络元件本质上唯一的第一函数,使得对于所有可能的流标识符,该函数产生一个值,该值不同于由在大多数或所有的用于相同流标识符的其他网络元件处的对应函数所产生的值;以及
在函数的输出组大于候选输出端口的数目的情况下,该映射进一步包括压缩函数,其将第一函数的输出组映射到限于候选输出端口的组中。
41. 如权利要求40所述的网络元件,其中分组网络中每个网络元件独立地执行以下步骤:选择用于每个分组的候选输出端口来实现分布式等价多路径(ECMP)过程。
42. 如权利要求40所述的网络元件,其中第一函数是与线性同余映射函数相组合的基于指数的映射函数。
43. 如权利要求40所述的网络元件,其中由原型熵保留映射函数和唯一密钥材料来完全指定第一函数。
44. 如权利要求43所述的网络元件,其中原型熵保留映射函数对分组网络中多个网络元件是共用的。
45. 如权利要求43所述的网络元件,其中唯一密钥材料和原型熵保留映射函数的知识允许确定用于给定输入流ID的输出路径的选择,使得分组网络上的流分配是确定性的。
46. 如权利要求40所述的网络元件,其中第一函数是双射的,其中一组不同输入被映射到具有与该组不同输入相同数目的元件的一组不同输出。
47. 如权利要求40所述的网络元件,其中第一函数是单射的,其中一组不同输入被映射到更大的一组可能的不同输出,其中仅使用与不同输入的数目相对应的不同输出的数目。
48. 如权利要求40所述的网络元件,其中压缩函数对分组网络中多个网络元件是共用的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161443993P | 2011-02-17 | 2011-02-17 | |
US61/443,993 | 2011-02-17 | ||
PCT/US2012/025552 WO2012112834A2 (en) | 2011-02-17 | 2012-02-17 | Next hop computation functions for equal cost multi-path packet switching networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103430494A true CN103430494A (zh) | 2013-12-04 |
Family
ID=46673189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012800049360A Pending CN103430494A (zh) | 2011-02-17 | 2012-02-17 | 用于等价多路径分组交换网络的下一跳计算函数 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP2676406A2 (zh) |
JP (1) | JP2014509145A (zh) |
KR (1) | KR20140059160A (zh) |
CN (1) | CN103430494A (zh) |
BR (1) | BR112013020722A2 (zh) |
CA (1) | CA2820765A1 (zh) |
WO (1) | WO2012112834A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837650A (zh) * | 2019-10-25 | 2020-02-25 | 华中科技大学 | 一种不可信网络环境下的云存储oram访问系统和方法 |
CN112119620A (zh) * | 2018-05-15 | 2020-12-22 | 区块链控股有限公司 | 用于在节点的网络中传播数据分组的系统和方法 |
CN112189328A (zh) * | 2018-05-23 | 2021-01-05 | 区块链控股有限公司 | 用于在节点的网络中传播数据分组的系统和方法 |
CN113726660A (zh) * | 2021-08-27 | 2021-11-30 | 西安微电子技术研究所 | 一种基于完美哈希算法的路由查找器和方法 |
CN114521320A (zh) * | 2019-10-15 | 2022-05-20 | 思科技术公司 | 基于服务的以节点为中心的ecmp健康 |
CN114553769A (zh) * | 2020-11-24 | 2022-05-27 | 瞻博网络公司 | 计算机网络中的端到端流监控 |
CN114884868A (zh) * | 2022-05-10 | 2022-08-09 | 杭州云合智网技术有限公司 | 基于ecmp组的链路保护方法 |
CN117792992A (zh) * | 2024-02-28 | 2024-03-29 | 鹏城实验室 | 数据传输路径控制方法、装置、介质及设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150109934A1 (en) * | 2013-10-23 | 2015-04-23 | Paramasiviah HARSHAVARDHA | Internet protocol routing mehtod and associated architectures |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047633A (zh) * | 2006-05-17 | 2007-10-03 | 华为技术有限公司 | 一种实现多路径传输的方法、装置和系统 |
CN101496348A (zh) * | 2006-07-31 | 2009-07-29 | 思科技术公司 | 用于标签交换数据流量的多径转发的技术 |
EP2276207A1 (en) * | 2009-07-14 | 2011-01-19 | Broadcom Corporation | Node based path selection randomization |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636309B2 (en) * | 2005-06-28 | 2009-12-22 | Alcatel-Lucent Usa Inc. | Multi-path routing using intra-flow splitting |
-
2012
- 2012-02-17 EP EP12746891.6A patent/EP2676406A2/en not_active Withdrawn
- 2012-02-17 BR BR112013020722A patent/BR112013020722A2/pt not_active IP Right Cessation
- 2012-02-17 CA CA2820765A patent/CA2820765A1/en not_active Abandoned
- 2012-02-17 KR KR1020137019192A patent/KR20140059160A/ko not_active Application Discontinuation
- 2012-02-17 CN CN2012800049360A patent/CN103430494A/zh active Pending
- 2012-02-17 JP JP2013554624A patent/JP2014509145A/ja active Pending
- 2012-02-17 WO PCT/US2012/025552 patent/WO2012112834A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047633A (zh) * | 2006-05-17 | 2007-10-03 | 华为技术有限公司 | 一种实现多路径传输的方法、装置和系统 |
CN101496348A (zh) * | 2006-07-31 | 2009-07-29 | 思科技术公司 | 用于标签交换数据流量的多径转发的技术 |
EP2276207A1 (en) * | 2009-07-14 | 2011-01-19 | Broadcom Corporation | Node based path selection randomization |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112119620B (zh) * | 2018-05-15 | 2023-04-18 | 区块链控股有限公司 | 用于在节点的网络中传播数据分组的系统和方法 |
CN112119620A (zh) * | 2018-05-15 | 2020-12-22 | 区块链控股有限公司 | 用于在节点的网络中传播数据分组的系统和方法 |
CN112189328A (zh) * | 2018-05-23 | 2021-01-05 | 区块链控股有限公司 | 用于在节点的网络中传播数据分组的系统和方法 |
CN112189328B (zh) * | 2018-05-23 | 2024-05-28 | 区块链控股有限公司 | 用于在节点的网络中传播数据分组的系统和方法 |
CN114521320A (zh) * | 2019-10-15 | 2022-05-20 | 思科技术公司 | 基于服务的以节点为中心的ecmp健康 |
CN110837650A (zh) * | 2019-10-25 | 2020-02-25 | 华中科技大学 | 一种不可信网络环境下的云存储oram访问系统和方法 |
CN114553769A (zh) * | 2020-11-24 | 2022-05-27 | 瞻博网络公司 | 计算机网络中的端到端流监控 |
CN114553769B (zh) * | 2020-11-24 | 2023-09-08 | 瞻博网络公司 | 计算机网络中的端到端流监控 |
CN113726660A (zh) * | 2021-08-27 | 2021-11-30 | 西安微电子技术研究所 | 一种基于完美哈希算法的路由查找器和方法 |
CN113726660B (zh) * | 2021-08-27 | 2022-11-15 | 西安微电子技术研究所 | 一种基于完美哈希算法的路由查找器和方法 |
CN114884868B (zh) * | 2022-05-10 | 2024-04-12 | 云合智网(上海)技术有限公司 | 基于ecmp组的链路保护方法 |
CN114884868A (zh) * | 2022-05-10 | 2022-08-09 | 杭州云合智网技术有限公司 | 基于ecmp组的链路保护方法 |
CN117792992A (zh) * | 2024-02-28 | 2024-03-29 | 鹏城实验室 | 数据传输路径控制方法、装置、介质及设备 |
CN117792992B (zh) * | 2024-02-28 | 2024-05-07 | 鹏城实验室 | 数据传输路径控制方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2012112834A3 (en) | 2013-02-21 |
CA2820765A1 (en) | 2012-08-23 |
EP2676406A2 (en) | 2013-12-25 |
KR20140059160A (ko) | 2014-05-15 |
WO2012112834A4 (en) | 2013-04-11 |
JP2014509145A (ja) | 2014-04-10 |
BR112013020722A2 (pt) | 2016-10-18 |
WO2012112834A2 (en) | 2012-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103430494A (zh) | 用于等价多路径分组交换网络的下一跳计算函数 | |
US20130279503A1 (en) | Next Hop Computation Functions for Equal Cost Multi-Path Packet Switching Networks | |
US8750820B2 (en) | Method and apparatus for selecting between multiple equal cost paths | |
TWI554054B (zh) | 最短路徑橋接網路中的負載平衡 | |
US8885643B2 (en) | Method for multicast flow routing selection | |
CN106105130B (zh) | 一种在源路由中提供熵源的方法和设备 | |
CN101960785B (zh) | 在链路状态协议受控以太网网络上实现vpn | |
CN102150148B (zh) | 层2拓扑中针对单播帧和多播帧的差别化服务 | |
EP2842278B1 (en) | Three stage folded clos optimization for 802.1aq | |
Dutta et al. | On the complexity of information spreading in dynamic networks | |
US8085659B2 (en) | Method and switch for routing data packets in interconnection networks | |
CN103947160A (zh) | 通过基于trill的网络承载fcoe帧的方法 | |
CN102884767A (zh) | 第2层多路径网络中链路成本按图分配 | |
Shimonishi et al. | Building hierarchical switch network using openflow | |
Zarandi | RNS applications in computer networks | |
Tsao et al. | Bridge priority provisioning for maximizing equal cost shortest path availability | |
Sitti et al. | Optimizing load distribution for Shortest Path bridging via Network Coding | |
Ramanujam et al. | Randomized partially-minimal routing: Near-optimal oblivious routing for 3-D mesh networks | |
Ruso et al. | POSET: A high-performance application layer multicast protocol design and implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131204 |