CN112217730B - 使用聚合链路进行网络路由 - Google Patents
使用聚合链路进行网络路由 Download PDFInfo
- Publication number
- CN112217730B CN112217730B CN202010181536.3A CN202010181536A CN112217730B CN 112217730 B CN112217730 B CN 112217730B CN 202010181536 A CN202010181536 A CN 202010181536A CN 112217730 B CN112217730 B CN 112217730B
- Authority
- CN
- China
- Prior art keywords
- transaction
- port
- routing
- ports
- 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.)
- Active
Links
- 230000000153 supplemental effect Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000004044 response Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 21
- 239000004744 fabric Substances 0.000 claims 1
- 238000005507 spraying Methods 0.000 claims 1
- 230000002776 aggregation Effects 0.000 abstract description 12
- 238000004220 aggregation Methods 0.000 abstract description 12
- 238000012545 processing Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 230000004807 localization Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007921 spray Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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
-
- 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/22—Alternate 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/827—Aggregation of resource allocation or reservation requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- 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/26—Route discovery packet
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
公开了使用聚合链路进行网络路由。本文介绍的是一种路由技术,例如,通过支持链路聚合和多端口连接的网络将事务路由到目标端口。在一个实施例中,将可以基于事务的目标和补充路由ID来搜索的两个表用于将事务路由到目标端点的适当端口。在一个实施例中,第一个表提供了可以将事务路由到目标端点的每个跳点/路由点处的可用端口的列表,以及第二个表提供了可以从第一个表中选择特定端口组的补充路由ID,从而可以正确地将事务路由到适当的端口。
Description
相关申请的交叉引用
本申请要求于2019年7月9日提交的、名称为“使用聚合链路进行网络路由(NETWORK ROUTING USING AGGREGATED LINKS)”的序列号为62/872,023的美国临时申请的权益,该临时申请与本申请共同转让,并且通过引用将其全部内容合并于本文。
技术领域
本申请总体上针对网络路由协议,并且更具体地针对用于在网络中路由支持聚合链路和/或多端口连接的事务的方法和装置。
背景技术
网络路由协议在路由时通常使用目标端点的系统内存地址作为事务的目标标识符(ID)。虽然对于使用单个端口连接到网络的目标端点来说,单个目标ID可能就足够了,但对于使用多个端口连接的端点可能是不够的,因为目标ID并不指示目标端点所附上的端口。此外,当网络采用聚合链路时,它可能会在各种跳点/路由点引入分歧路径,从而将事务限制在将事务路由到目标端点的错误端口的路径上。
发明内容
一个方面提供了一种通过网络路由事务的方法。该方法包括:通过网络接收前往目标端点的特定端口的事务;选择将事务限制到特定路径的特定端口组,该特定路径将事务路由到目标端点的特定端口;以及通过特定路径将事务路由到目标端点的特定端口。
另一个方面提供了一种用于通过网络路由事务的交换设备。交换设备包括管线,配置为:通过网络接收前往目标端点的特定端口的事务;选择将事务限制到特定路径的特定端口组,该特定路径将事务路由到目标端点的特定端口;以及通过特定路径将请求的事务路由到目标端点。
附图说明
现在结合附图对以下描述进行参考,在附图中:
图1是通过在连接的端点之间交换事务的网络的实施例的图示。
图2是根据本公开原理执行的用于通过网络路由事务的方法的实施例的流程图的图示;
图3A是根据本公开原理编程的路由ID表的实施例的图示;
图3B是根据本公开原理编程的补充路由ID表的实施例的图示;
图4是根据本公开原理实现的,用于在网络上路由事务的交换设备的实施例的框图的图示;以及
图5示出了网络的实施例的示意图,其中,使用在本公开中引入的分类技术来对喷射(spray)的事务进行分类。
具体实施方式
本文中介绍了一种路由技术,该路由技术使用目标ID和附加的补充路由ID将事务路由到目标端口。利用两个可以基于目标和补充路由ID进行索引和分类的表,引入的技术可以识别端口及其连接的路径,并选择将事务限制在特定路径上的一组端口,所述特定路径将事务路由到目标端点的适当端口。第一个表指示每个跳点/路由点处可以将事务路由到目标端点的的可用端口的列表,第二个表提供路由信息,可用于从第一个表中选择特定的端口组来将事物路由到目标端点的适当端口。
所引入的路由技术的一些益处包括其支持利用链路聚合和多端口连接的多种拓扑结构的灵活性,以及其将路由表的尺寸保持为最小并简化编程的效率。这些好处是通过利用两个具有灵活格式的、支持有效的分区和表中条目的选择的路由表来实现的。
图1示出了网络100的实施例,其中可以使用引入的技术来路由事务。在所示的实施例中,网络100是使用支持多端口连接和链路聚合的诸如由加利福尼亚州圣克拉拉市的公司提供的NVLinkTM的联网协议的互连结构。
在所示的实施例中,网络100连接到三个端点,两个源端点110和120以及目标端点130,它们通过网络100发送和接收事务。虽然源端点和目标端点110、120、130在示出的实施例中分别标记了它们的作用,但是它们的功能不限于它们的作用。这样,源端点110、120不仅可以发出请求,而且在成为目标时也可以响应请求,并且目标端点130除了可以对收到的请求做出响应之外,还可以做出请求。端点110-130可以是诸如图形处理单元(GPU)和中央处理单元(CPU)的处理单元,诸如存储器的存储单元和/或诸如网络接口卡的联网单元。
在所示的实施例中,使用交换机111(SW1)、112(SW2)、113(SW3)、114(SW4)和115(SW5)将端点110-130连接到网络100和彼此连接。源端点110、120的多个端口连接到第四(SW4)和第五(SW5)交换机114、115的对应端口,并且交换机111-115的多个端口彼此连接。交换机111-115之间的多端口连接允许并行连接/链路(即同一对交换机之间的链路)的聚合。链路聚合可能会增加吞吐量,超出单个连接可以承受的范围,并在链路之一出现故障的情况下提供冗余。交换机111-115可以是支持多端口连接和链路聚合的交换设备,例如的NVSwitchTM。交换机111-115还可用于支持统计多路径,以最小化来自聚合多个业务流的热点效应。
图2示出了用于通过诸如图1中的网络100的网络路由事务的方法200的实施例的流程图,这些网络支持多端口连接和链路聚合。方法200可以由交换设备在源端点和目标端点之间的每个跳点或路由点处执行,例如图1中的交换机111-115。为了说明所引入的技术的实际应用,通常从图1中的第一交换机111的角度(POV)来描述方法200。在图1所示的实施例中,第一交换机111路由从源端点110的端口P1发送的请求的响应。方法200开始于步骤205。
在步骤210处,在执行方法200的交换设备处接收前往特定目标端点的事务。该事务可以从前一跳点/路由点处的交换机接收,也可以或从产生了事务的端点处接收。接收到的事务在其报头中包括目标ID和补充路由ID,该目标ID指示该事务的目标(例如,该事务要朝向的端点),补充路由ID指示该事务的源端口,例如,将事务首先注入到网络中的端点端口。
根据图1中的第一交换机111的POV,接收到的事务是来自目标端点130的响应,该响应被发送回源端点110的目标端口P1,从该源端点110发送了原始请求。经由第一交换机111的端口P0从目标端点130接收响应,第一交换机111的端口P0是目标端点130暴露到第一交换机111的唯一端口。接收到的响应在其报头中包括目标ID和补充路由ID,该目标ID将源端点110指示为目标,该补充路由ID将源端点110的端口P1指示为请求的源端口,所接收到的响应作为所述源端口的响应。
在步骤220处,标识交换设备中的将事务路由到目标端点的可用端口的列表。可用端口可以标识为向量的位置位,其中每个位置位对应于给定端点的每个不同端口,或标识为整数数组,其中每个整数代表给定端点的每个不同端口号。使用事务的目标ID作为路由ID表的索引,从路由ID表中搜索并识别可用端口。通过在接收给定事务的交换设备中的投射端口路径,可以识别将给定事务路由到其目标端点的交换设备的某些端口。在一个实施例中,根据在网络启动期间收集的网络配置信息来确定交换机端口的路径。路由ID表是从交换设备中的路由ID存储器中存储和访问的。
对于图1中的第一交换机111,标识了第一交换机111中的可以将响应路由回到源端点110的可用端口的列表。该列表包括端口P2、P3、P7和P9,它们分别与Link1、Link2、Link0和Link3相关联。该端口链路关联可以在响应的报头中指示。
图3A示出了路由ID表300的实施例,该路由ID表300从第一交换机111中的路由ID存储器中存储和访问。使用响应的目标ID作为索引,可用端口被识别为整数数组,即第一交换机111中端口号的第310行。表300的行310列出了将响应路由到源端点110的四个端口P2、P3、P7和P9。与保持刚性形式的向量的位置位不同,端口号可以被编程为放置在连续的字段中,如图3A所示。字段条目的这种可编程组合允许对字段条目进行各种大小的灵活分组。
返回图2,在步骤230处,将在步骤220中标识的端口划分成组。更具体地,使用组选择和补充路由ID表的组大小将识别出的端口划分为组。使用事务的目标ID和补充路由ID从补充路由ID表中选择组选择和组大小。在结构初始化(例如拓扑发现)期间,基于组的连接路径,将组选择和组大小编程到补充路由ID表中。更具体地说,组选择和组大小基于每个组中端口的连接路径。每个分区的端口组对应于一组聚合的链路,该聚合的链路与每个分区的组中的端口相关联,并形成独立于其他分区组的路由路径,例如分叉路径。
关于图1中的第一交换机111,如图3A所示,其四个可用端口P2、P3、P7和P9被分成两组,每组两个端口。第一组(grp0)包括端口P7和P2,第二组(grp1)包括端口P3和P9。如上所述,基于使用事务的目标ID和补充路由ID从补充路由ID表中选择的组选择和组大小来进行划分。在所示的实施例中,属于同一组的端口彼此相邻放置,以便于分组和硬件实现。对于第一组,端口P7和P2相邻放置,对于第二组,端口P3和P9彼此相邻放置。如上所述,整数格式的灵活性允许端口号值的灵活放置。图3B示出了从交换机111中的路由ID存储器存储和访问的补充路由ID表350的实施例。图示的补充路由ID表350使用事务的目标ID来索引;以及组选择和组大小使用事务的补充路由ID来选择,以将第一交换机111的四个端口P2、P3、P7和P9划分为两组。在所示的补充路由ID表350中,可以从与四个端口P2、P3、P7和P9相关联的链路的多路复用器指定中指示组选择。与Link0和Link1关联的端口都与多路复用器0关联,并因此在同一组(grp0)中,与Link2和Link3关联的端口都与多路复用器2关联,并因此在同一组(grp1)中。可以从每个组中的多个端口或链路中指示组大小。多路复用器的例子,多路复用器阵列416,在图4中示出。
返回图2,在步骤240处,从分区组中选择将事务限制到特定路径的特定端口组,所述特定路径将事务路由到目标端点的特定端口。类似于步骤220,使用来自补充路由ID表的组选择和组大小来选择组。
对于图1的第一交换机111,选择第一组(grp0)是因为端口P2和P7可以将响应限制为经过第二交换机112和第四交换机114并到达源端点110的端口P1的路径。第一组360如图3A和图3B所示。如果选择了第二组(grp1),则该事务将通过第三交换机113和第五交换机115,并且将无法通过端口P1到达源端点110,这违反了网络路由协议(例如NVLinkTM)的要求,它要求将响应事务路由到源端口,即初始请求事务被注入的端口。
在步骤250处,使用所选组中的端口将事务路由到目标端点的特定端口。根据交换设备相对于特定端点的位置以及与所选组中的端口相关联的链路,可以通过聚合链路上喷射事务或使用特定端口传输事务。可以理解,当通过多个聚合链路喷射事务时,可以通过将散列值和从补充路由ID表中的补充路由ID导出的组大小值进行组合所选择的链路之一来传输事务。对于请求事务,可以从存在于报头中的源端点的系统地址生成散列值,对于响应事务,可以使用伪随机生成器生成散列值。
在图1中的第一交换机111的情况下,如图1所示,使用所选组grp0中的端口P2和P7将响应路由到下一跳,即第二交换机112。由于端口P2和P7与聚合链路Link1和Link0相关联,因此响应通过Link1和Link0被喷射。为了确定通过其发送响应的链路,将来自伪随机发生器的散列值和从补充路由ID表350导出的组大小值2进行组合。
一旦事务被路由到目标端点的特定端口或被转发到朝向特定端口的下一跳点/路由点,则方法200在步骤255处结束。对于图1中的第一交换机111,一旦响应通过Link1和Link0以及LAN1发射到下一跳,即第二交换机112,则方法200结束。
应当理解,在事务的每个跳点/路由点重复方法200,直到事务到达目标端点的特定端口。这样,为了完成对到图1中的源端点110的端口P1的响应的路由,当响应到达第二交换机112时将重复方法200,并且当响应到达第四交换机114时将再次重复方法200。
类似于第一交换机111,当响应到达第二交换机112时,方法200将对将响应路由到源端点110的端口P1的第二交换机112的端口进行识别并划分成组,选择将响应路由到源端点110的端口P1的组之一,并将响应通过与所选组中的端口相关联的聚合链路喷射到第四交换机114。
再次,当响应到达第四交换机114时,方法200将对将响应路由到源端点110的端口P1的第四交换机114的端口进行识别并划分成组。虽然两个标识的端口P1和P2都可以将响应路由到源端点110,但只有第四交换机114的端口P1可以将响应路由到源端点110的端口P1。因此,这里的方法200选择一个包括端口P1的组,并将响应通过端口P1传输到源端点110。由于该组仅包含一个端口,因此响应不会被喷射。
应当理解,尽管端口P1是第四交换机114的端口,但是端口P1被认为是从其发送了响应请求的源端点110的目标端口,因为端口P1是直接与之连接并因此可以到达源端点110的端口的唯一交换机端口。
图4示出了用于在诸如图1中的网络100之类的网络上路由事务的交换设备400的实施例。交换设备400可以是使用多个端口连接到端点并使用聚合链路的例如图1中的交换机111-115的交换设备之一。在所示的实施例中,交换设备400包括管线410和存储器420。存储器420包括补充路由ID表422和路由ID表424。
管线410配置成接收前往目标端点的特定端口的事务,在交换设备中标识可将事务路由至该特定端口的可用端口的列表,并基于事务的补充路由ID将可用端口划分成组。管线410还配置成选择将事务限制到目标端点的特定端口的特定路径的特定端口组,并且经由该特定路径将事务路由到目标端点。在所示的实施例中,管线410是入口管线,其可以包括处理单元(未示出),例如中央处理器(CPU)和/或图形处理单元(GPU),其配置成引导至少一些管线410的操作。
所示的管线410包括散列模块412、组合链路表(GLT)414、多路复用器阵列416和阵列控制单元418。多路复用器阵列416配置成将所识别的端口物理地划分成组。使用来自补充路由ID表422和路由ID表424中所标识的可用端口列表的组选择(例如图3B中的链路多路复用器指定)和组大小,将端口的划分的组分配给阵列416中的多路复用器。
阵列控制单元418配置成通过选择阵列416中的多路复用器之一来物理地选择分区的组之一。使用来自补充路由ID表422的补充路由ID的组选择,阵列控制单元418选择阵列416的多路复用器之一,并因此选择用于路由事务的划分的组之一。
散列模块412和GLT 414配置成选择特定组中的端口之一,即阵列416中的多路复用器的输入之一,用于将事务转发到下一跳点或路由点。散列模块412通过对所接收的请求事务的系统存储器地址进行散列算法或使用伪随机数生成器来生成散列值。GLT 414将来自模块412的散列值与来自补充路由ID表422的组大小值进行组合,以得出与阵列控制单元418选择的组中的端口之一相对应的值。散列值和组大小值的组合也对阵列416进行归一化,以将所选择的端口的随机性限制为特定组中的端口号。
在所示实施例中,如上所述,存储器420包括补充路由ID表422和路由ID表424。可以使用诸如随机存取存储器(RAM)之类的常规计算机存储器来实现存储器420。在一个实施例中,补充路由ID表422和路由ID表424位于分开的存储器中。
在网络路由中,给定事务可以路由到的端点的最大数目通常受目标ID中的位数限制。例如,对于9位目标ID,可路由端点的最大数量为512(29)个端点/条目。当处理路由ID表424和固定大小的存储器420时,选择目标ID中的位数,以便所有可路由的端点都可以容纳并索引到存储器420中的路由ID表424中。因此,增加可路由端点的数量通常需要增加目标ID的大小以及路由ID表和存储器的大小或深度。
在一个实施例中,在不增加目标ID位的数量或路由ID表和存储器的大小/深度的情况下,增加了可路由端点的数量。使用补充路由ID的一个或更多个位作为目标ID的扩展,目标ID位的数量增加,并且可路由端点的数量也增加。补充路由ID表422的灵活可编程性使得能够使用补充路由ID,从而允许将补充路由ID的一个或更多个位用作目标ID的最高有效位。
当目标ID从补充路由ID借用位时,可以针对每个端点识别和分组的字段数(即,端口数)减少。使用上面的示例,当补充路由ID的2位用作目标ID的两个最高有效位时,可路由端点的数量增加了四倍(22),达到2048,同时将每个端点可识别端口的数量从16个端口减少到4个端口。应当理解,尽管借用一些补充路由ID位减少了每个条目的字段数量,但是当使用固定的一组硬件(例如,存储器420)以适应变化的网络条件时,它允许更大的灵活性。
图5示出了网络500的实施例,其中使用本公开中介绍的分类技术对喷射事务进行分类。类似于图1中的网络100,网络500是使用诸如NVLinkTM的联网协议的互连结构,其支持多端口连接和链路聚合特征。在所示的实施例中,网络500还支持大容量折叠功能,其通过将事务(例如,写响应事务)从同一源端口彼此折叠来减少事务开销和网络上的负载。
在图5中,将网络500简化为仅示出两个端点,即源端点510和目标端点520,它们通过网络500发送和接收事务。尽管仅示出了两个,但是网络500中可能存在更多的端点进行彼此通信。与图1中的端点110-130相似,源端点510和目标端点520不限于它们标记的角色,并且每个端点可以包括诸如图形处理单元(GPU)和中央处理单元(CPU)的处理单元和诸如存储器的存储单元,和/或诸如网络接口卡的网络单元。
在所示的实施例中,使用交换机511-513连接端点510、520。类似于图1中的交换机111-115,每个交换机511-513可以是一个支持多端口连接和链路聚合(例如NVSwitchTM)的交换设备,并且还支持统计多路径,以最小化由于聚合多个服务流而造成热点效应。端点510、520的端口连接到第一交换机511和第三交换机513的端口,并且交换机511-513的端口彼此连接。交换机511-513之间的多端口连接和链路聚合允许在交换机511-513之间喷射事务。
当请求事务从源端点510的端口P1和P2传送到目标端点520时,传送的事务在通过交换机511-513时被喷射在聚合链路521和522。这样,当事务到达第三跳(即最后交换机513)时,从P1发送的事务与从P2发送的事务混合在一起。
为了从折叠功能中获得最大利益,理想情况下,来自同一源端点端口的事务流应始终以同一目标端点端口为目标。这具有引起事务的基于源的本地化的效果,这对于折叠事务非常理想,其方式类似于CPU/GPU存储器请求的本地化如何提高内存缓存性能。但是,如上所述,通过聚合的链路喷射可能会干扰这种本地化,从而导致事务分布在多个目标端点端口上并混合在一起。
为了建立本地化并辅助折叠功能,在最后一跳(第三交换机513)处,基于其源端点端口和目标端点对每个事务进行分类。这允许来自同一源端点端口并前往相同目标端点(即目标端点520)的所有事务都使用交换机513中的相同链路/端口转发。更具体地说,对于到达交换机的每个事务513,首先使用事务的目标ID和补充路由ID从补充路由ID表中选择条目和组选择,事务的目标ID和补充路由ID指示事务的源端点端口和目标端点;并且然后使用所选条目和组选择可以从路由ID表中的端口列表中来选择特定端口,例如,P0或P15,通过该特定端口,将事务传输到目标端点,目标端点520。折叠功能被放置或集成到选定的端口中,以从事务本地化中获得最大收益。可以理解,来自不同源端点的事务也可以通过为它们分配跨源唯一的端口标识符来分类和折叠。
应当理解,上述分类技术可以用作诸如图2中的方法200之类的路由方法的附加部分。分类技术对于支持折叠特征但仅具有有限数量的资源来实现特征的网络可能特别有用,因为分类技术可以最大化特征的每个实例的使用和收益。还应理解,不仅可以在最后一跳交换机中而且在网络内部的任何其他交换机中,例如互连的核心中,都可以实现分类技术。虽然可能无法像上一跳交换机那样最大化本地化和折叠的好处,但分类技术仍然可以有效,甚至可以用作压缩技术的一部分。
本申请涉及的本领域技术人员将理解,可以对所描述的实施例进行其他和进一步的添加、删除、替换和修改。
Claims (20)
1.一种通过网络路由事务的方法,包括:
通过所述网络接收发往目标端点的特定端口的事务,所述事务具有目标标识符和补充路由标识符;
使用所述事务的所述目标标识符来识别将所述事务路由到所述目标端点的可用端口的列表,其中所述可用端口被标识为向量的位置位或端口号数组;
使用来自补充路由标识符表的组选择和组大小将所述可用端口划分成组;
从所述可用端口的划分的组中选择将所述事务限制到特定路径的特定端口组,所述特定路径将所述事务路由到所述目标端点的所述特定端口,其中所述特定端口组包括所述目标端点的所述特定端口;以及
经由所述特定路径将所述事务路由到所述目标端点的所述特定端口。
2.根据权利要求1所述的方法,其中所述路由包括经由特定组中的端口之一将所述事务转发到所述目标端点。
3.根据权利要求1所述的方法,其中所述路由由所述网络中的交换机执行。
4.根据权利要求1所述的方法,其中将所述可用端口的所述列表标识在路由标识符表中。
5.根据权利要求4所述的方法,还包括将所述可用端口划分成与形成独立路由路径的聚合链路组相对应的端口组,并且其中所述端口组包括所述特定端口组。
6.根据权利要求5所述的方法,其中所述路由包括基于散列值和所述组大小在与特定组中的端口相关联的聚合链路上喷射所述事务。
7.根据权利要求1所述的方法,其中所述路由标识符表和所述补充路由标识符表位于接收所述事务的交换机中。
8.根据权利要求1所述的方法,其中使用所述事务的所述目标标识符和所述补充路由标识符来选择所述特定端口组,以及其中所述补充路由标识符的一个或更多个位用作所述目标标识符的一个或更多个扩展位,以增加所述事务能够路由到的端点的数量。
9.根据权利要求1所述的方法,还包括基于喷射的事务的源端口和目标来对所述喷射的事务进行分类,并使用相同的链路来发送具有相同源端口和相同目标的一些喷射的事务。
10.根据权利要求9所述的方法,其中所述分类和所述发送是在所述目标端点之前的最后一跳交换机处进行的,并且所述一些喷射的事务被彼此折叠。
11.一种用于通过网络路由事务的交换设备,包括:
管线,配置为:
通过所述网络接收发往目标端点的特定端口的事务,所述事务具有目标标识符和补充路由标识符;
使用所述事务的目标标识符来识别将所述事务路由到所述目标端点的可用端口的列表,其中所述可用端口被标识为向量的位置位或端口号数组;
使用来自补充路由标识符表的组选择和组大小将所述可用端口划分成组;
从所述可用端口的划分的组中选择将所述事务限制到特定路径的特定端口组,所述特定路径将所述事务路由到所述目标端点的所述特定端口,其中所述特定端口组包括所述目标端点的所述特定端口;以及
经由所述特定路径将请求的所述事务路由到所述目标端点。
12.根据权利要求11所述的交换设备,其进一步包括存储器,所述存储器包括路由标识符表,所述路由标识符表存储所述交换设备中的将所述事务路由到所述目标端点的所述可用端口的列表。
13.根据权利要求12所述的交换设备,其中所述存储器还包括存储补充路由标识符的补充路由标识符表,所述补充路由标识符将所述可用端口划分成与形成独立路由路径的聚合链路组相对应的端口组,并且其中所述端口组包括所述特定端口组。
14.根据权利要求11所述的交换设备,其中基于散列值和所述组大小在与特定组中的端口相关联的聚合链路之一上喷射所述事务。
15.根据权利要求14所述的交换设备,其中所述管线还配置成:基于喷射的事务的源端口和目标来对所述喷射的事务进行分类,并且使用相同的链路来发送具有相同源端口和相同目标的一些喷射的事务。
16.根据权利要求15所述的交换设备,其中所述交换设备是在所述目标端点之前的最后一跳交换机,并且所述一些喷射的事务被彼此折叠。
17.根据权利要求11所述的交换设备,其中经由特定组中的端口之一将所述事务转发到所述目标端点。
18.根据权利要求11所述的交换设备,其中所述网络是支持多端口连接和聚合链路的互连结构。
19.根据权利要求11所述的交换设备,其中所述事务是从所述目标端点的所述特定端口发送的所述请求的响应。
20.根据权利要求13所述的交换设备,其中所述补充路由标识符的一个或更多个位用作所述事务的目标标识符的一个或更多个扩展位,以增加所述事务能够路由到的端点的数量。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962872023P | 2019-07-09 | 2019-07-09 | |
US62/872,023 | 2019-07-09 | ||
US16/700,611 | 2019-12-02 | ||
US16/700,611 US11233730B2 (en) | 2019-07-09 | 2019-12-02 | Network routing using aggregated links |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112217730A CN112217730A (zh) | 2021-01-12 |
CN112217730B true CN112217730B (zh) | 2023-11-07 |
Family
ID=74058516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010181536.3A Active CN112217730B (zh) | 2019-07-09 | 2020-03-16 | 使用聚合链路进行网络路由 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11233730B2 (zh) |
CN (1) | CN112217730B (zh) |
DE (1) | DE102020108751A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900459B (zh) * | 2022-06-17 | 2023-12-05 | 平安科技(深圳)有限公司 | 路由复用方法、装置、设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864535A (en) * | 1996-09-18 | 1999-01-26 | International Business Machines Corporation | Network server having dynamic load balancing of messages in both inbound and outbound directions |
US6847647B1 (en) * | 2000-09-26 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | Method and apparatus for distributing traffic over multiple switched fiber channel routes |
EP1583296A2 (en) * | 2004-03-31 | 2005-10-05 | Matsushita Electric Industrial Co., Ltd. | Relay equipment and communication system |
US7072817B1 (en) * | 1999-10-01 | 2006-07-04 | Stmicroelectronics Ltd. | Method of designing an initiator in an integrated circuit |
CN1968431A (zh) * | 2005-10-28 | 2007-05-23 | Qnx软件操作系统德国有限公司 | 用于在网络中配置交换机的系统 |
US7707331B1 (en) * | 2004-12-16 | 2010-04-27 | Emc Corporation | Path determination using preferred paths or randomly selecting source and target ports |
US7962672B1 (en) * | 2009-09-28 | 2011-06-14 | Emc Corporation | Techniques for data storage configuration |
US8055286B1 (en) * | 2008-08-27 | 2011-11-08 | Sprint Spectrum L.P. | Modification of en-route message to add destination port number selected based at least in part on message originator |
US8831010B1 (en) * | 2011-10-20 | 2014-09-09 | Google Inc. | Providing routing information for weighted multi-path routing |
CN104219145A (zh) * | 2013-05-31 | 2014-12-17 | 英业达科技有限公司 | 网络系统及路由方法 |
US8995302B1 (en) * | 2013-01-16 | 2015-03-31 | Pmc-Sierra Us, Inc. | Method and apparatus for translated routing in an interconnect switch |
CN106063195A (zh) * | 2014-02-24 | 2016-10-26 | 第三雷沃通讯有限责任公司 | 具有单独控制设备和转发设备的网络中的控制设备发现 |
CN108092900A (zh) * | 2016-11-23 | 2018-05-29 | 镇江常畅光伏电子有限公司 | 一种多端口路由器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0208797D0 (en) * | 2002-04-17 | 2002-05-29 | Univ Cambridge Tech | IP-Capable switch |
US7860096B2 (en) * | 2004-06-08 | 2010-12-28 | Oracle America, Inc. | Switching method and apparatus for use in a communications network |
US7860106B2 (en) * | 2006-02-13 | 2010-12-28 | Wind River Systems, Inc. | System and method for routing table computation and analysis |
JP4946803B2 (ja) * | 2007-11-01 | 2012-06-06 | 富士通株式会社 | パケット中継方法及び装置 |
JP5416596B2 (ja) * | 2010-01-07 | 2014-02-12 | アラクサラネットワークス株式会社 | ネットワーク中継装置、ネットワークシステム、それらの制御方法 |
US10044820B2 (en) * | 2013-09-23 | 2018-08-07 | Infosys Limited | Method and system for automated transaction analysis |
US9813290B2 (en) * | 2014-08-29 | 2017-11-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for supporting distributed relay control protocol (DRCP) operations upon misconfiguration |
US9813323B2 (en) * | 2015-02-10 | 2017-11-07 | Big Switch Networks, Inc. | Systems and methods for controlling switches to capture and monitor network traffic |
EP3681166B1 (en) * | 2015-07-29 | 2021-09-01 | ViaSat Inc. | Systems and methods for managing content distribution to an in-transit media system |
US10079695B2 (en) * | 2015-10-28 | 2018-09-18 | Citrix Systems, Inc. | System and method for customizing packet processing order in networking devices |
CN105657748B (zh) * | 2016-03-16 | 2020-06-26 | 华为技术有限公司 | 基于隧道绑定的通信方法和网络设备 |
CN109120524B (zh) * | 2018-08-23 | 2020-12-08 | Oppo广东移动通信有限公司 | 链路聚合方法及相关设备 |
-
2019
- 2019-12-02 US US16/700,611 patent/US11233730B2/en active Active
-
2020
- 2020-03-16 CN CN202010181536.3A patent/CN112217730B/zh active Active
- 2020-03-30 DE DE102020108751.9A patent/DE102020108751A1/de active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864535A (en) * | 1996-09-18 | 1999-01-26 | International Business Machines Corporation | Network server having dynamic load balancing of messages in both inbound and outbound directions |
US7072817B1 (en) * | 1999-10-01 | 2006-07-04 | Stmicroelectronics Ltd. | Method of designing an initiator in an integrated circuit |
US6847647B1 (en) * | 2000-09-26 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | Method and apparatus for distributing traffic over multiple switched fiber channel routes |
EP1583296A2 (en) * | 2004-03-31 | 2005-10-05 | Matsushita Electric Industrial Co., Ltd. | Relay equipment and communication system |
US7707331B1 (en) * | 2004-12-16 | 2010-04-27 | Emc Corporation | Path determination using preferred paths or randomly selecting source and target ports |
CN1968431A (zh) * | 2005-10-28 | 2007-05-23 | Qnx软件操作系统德国有限公司 | 用于在网络中配置交换机的系统 |
US8055286B1 (en) * | 2008-08-27 | 2011-11-08 | Sprint Spectrum L.P. | Modification of en-route message to add destination port number selected based at least in part on message originator |
US7962672B1 (en) * | 2009-09-28 | 2011-06-14 | Emc Corporation | Techniques for data storage configuration |
US8831010B1 (en) * | 2011-10-20 | 2014-09-09 | Google Inc. | Providing routing information for weighted multi-path routing |
US8995302B1 (en) * | 2013-01-16 | 2015-03-31 | Pmc-Sierra Us, Inc. | Method and apparatus for translated routing in an interconnect switch |
CN104219145A (zh) * | 2013-05-31 | 2014-12-17 | 英业达科技有限公司 | 网络系统及路由方法 |
CN106063195A (zh) * | 2014-02-24 | 2016-10-26 | 第三雷沃通讯有限责任公司 | 具有单独控制设备和转发设备的网络中的控制设备发现 |
CN108092900A (zh) * | 2016-11-23 | 2018-05-29 | 镇江常畅光伏电子有限公司 | 一种多端口路由器 |
Non-Patent Citations (1)
Title |
---|
项纯昶.《片上互连网络组件设计及其验证研究》.《中国优秀硕士学位论文全文数据库信息科技辑》.2008,(08),全文. * |
Also Published As
Publication number | Publication date |
---|---|
DE102020108751A1 (de) | 2021-01-14 |
US20210014156A1 (en) | 2021-01-14 |
CN112217730A (zh) | 2021-01-12 |
US11233730B2 (en) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7864792B2 (en) | Load balancing for communications within a multiprocessor computer system | |
US8397010B1 (en) | Convenient, flexible, and efficient management of memory space and bandwidth | |
US7165120B1 (en) | Server node with interated networking capabilities | |
US8320369B1 (en) | Systems and methods for implementing virtual switch planes in a physical switch fabric | |
US8401012B2 (en) | Packet routing | |
US8964559B2 (en) | Deadlock prevention in direct networks of arbitrary topology | |
JP6618610B2 (ja) | ルーティング管理 | |
US20050068946A1 (en) | Multi-dimensional lattice network | |
US9565096B1 (en) | Traffic distribution over multiple paths in a network | |
US20230327976A1 (en) | Deadlock-free multipath routing for direct interconnect networks | |
Wang et al. | SprintNet: A high performance server-centric network architecture for data centers | |
US20060268691A1 (en) | Divide and conquer route generation technique for distributed selection of routes within a multi-path network | |
EP3278520B1 (en) | Distributed routing table system with improved support for multiple network topologies | |
CN107786497B (zh) | 生成acl表的方法和装置 | |
CN112217730B (zh) | 使用聚合链路进行网络路由 | |
US9860132B2 (en) | Multiple petabit-per-second switching system based on orthogonal formations of sets of access nodes | |
US6584073B1 (en) | Network topologies | |
CN109952809A (zh) | 四元全网状以维度驱动的网络架构 | |
EP1217796A2 (en) | Recursion based switch fabric | |
US9503395B1 (en) | Multi-stage switching topology | |
CN108259205A (zh) | 一种路由发布方法及网络设备 | |
US8942232B1 (en) | Multi-stage switching topology | |
CN103370910A (zh) | 利用链路聚合进行下一跳缩放的方法、系统和计算机可读介质 | |
CN112187642A (zh) | 自适应路由的加权带宽分配 | |
JP2004260365A (ja) | 高速高ポート密度なネットワーク中継装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |