CN108111410B - 在笛卡尔拓扑的网络中构建无死锁路由的方法和装置 - Google Patents
在笛卡尔拓扑的网络中构建无死锁路由的方法和装置 Download PDFInfo
- Publication number
- CN108111410B CN108111410B CN201711192650.0A CN201711192650A CN108111410B CN 108111410 B CN108111410 B CN 108111410B CN 201711192650 A CN201711192650 A CN 201711192650A CN 108111410 B CN108111410 B CN 108111410B
- Authority
- CN
- China
- Prior art keywords
- switch
- switches
- network
- processor
- routes
- 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
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/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/12—Shortest path evaluation
-
- 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/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- 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/18—Loop-free operations
-
- 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/24—Multipath
-
- 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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种装置,包括网络接口和处理器。网络接口配置为与一个网络进行通信,所述网络包括在多维度的笛卡尔拓扑中相互连接的多个交换机。处理器配置为预定义笛卡尔拓扑的维度中的顺序,通过基于至少沿着候选路由的相应数量的交换机来评估候选路由,以搜索经由网络从源交换机到目标交换机的优选路由,所述交换机到下一跳交换机的遍历与预定义顺序相反地从一个维度变化到另一维度,并且所述处理器配置网络中的一个或多个交换机,以沿着优选路由将来自源交换机的数据包路由到目标交换机。
Description
相关申请的交叉引用
本申请要求于2016年11月24日提交的美国临时专利申请 62/426,241的权益,其公开内容通过引用并入本文。
技术领域
本文所描述的实施方式大体上涉及网络通信,具体涉及用于无损笛卡尔拓扑网络中的无死锁路由的方法和系统。
背景技术
通信网络通常包括多个网络元件,例如相互连接的交换机或路由器。交换机通常会在将数据包发送到选定的下一跳交换机之前缓冲传入的数据包,并使用流量控制措施防止上一跳交换机导致缓冲区溢出。当具有循环依赖关系的多个交换机的缓冲区变满时,网络中可能会发生死锁状态。死锁状态可能发生在某些网络拓扑中,例如网格和环形拓扑。
避免死锁状态的包路由方法在本领域中是已知的。例如,其公开内容通过引用并入本文的美国专利9,009,648描述了用于在多核系统中自动建立无死锁的互通网络的系统和方法。使用高级的规格来获取各种内核的内部依赖关系,并将其与用户指定的系统流量配置文件一起使用,以自动检测系统中的协议级死锁。当所有检测到的死锁得到解决或不存在这样的死锁时,系统的各种内核之间的流量配置文件中的信息可自动映射到互连通道并检测网络级死锁。可以通过重新分配通道资源来避免检测到的死锁。
其公开内容通过引用并入本文的美国专利6,918,063描述了一种用于促进多节点计算系统中的容错的方法和系统,其仅使用两轮并因此只需要两个虚拟通道来确保死锁自由,在节点和/或链路故障的情况下提供无死锁的消息路由。引入了一组用于消息路由的节点,该组中的每个节点只用作消息路由上的点,而不用于发送或接收消息。
用于防止笛卡尔拓扑中的死锁的一种路由方案被称为维序路由 (DOR)方案,其在例如在超立方体并行计算机和应用:结构、软件、计算机系统和普遍问题的第三次会议的会议记录中公布的“The architecture and programming of the Ametek series2010multicomputer”(卷 1,ACM,1988)中有描述,所述文献通过引用并入本文。例如,以下文献描述了用于环形拓扑的DOR变体,其通过引用并入本文: "Deadlock-free messagerouting in multiprocessor interconnection networks,"IEEE Transactions oncomputers,Volume C-36,pages 547-553, May,1987。
发明内容
本文所描述的实施方式提供了一种包括网络接口和处理器的装置。网络接口配置为与网络进行通信,所述网络包括在具有多维度的笛卡尔拓扑中相互连接的多个交换机。处理器配置为预定义笛卡尔拓扑的维度中的顺序,从而通过至少基于沿着候选路由的交换机的相应数量来评估候选路由,搜索经由网络从源交换机到目标交换机的优选路由,其到下一跳交换机的遍历与预定义顺序相反地从一个维度变化到另一维度,并且配置网络中的一个或多个交换机以沿着优选路由将来自源交换机的数据包路由到目标交换机。
在一些实施方式中,在搜索优选路由的给定阶段,源交换机具有多个已访问的相邻交换机,已经确定了其到目标交换机的优选路由,并且处理器配置为基于预定义标准从已访问的相邻交换机中为源交换机选择下一跳交换机。在其他实施方式中,预定义标准指定选择下一跳交换机,经由所选择的下一跳交换机,候选路具有由在所访问的相邻交换机中最短的路径。在其他实施方式中,预定义标准指定选择下一跳交换机,对于所述下一跳交换机,从源交换机遍历的维度在所访问的相邻交换机中顺序是最高的。
在一个实施方式中,处理器配置成对交换机进行配置,以为每个交换机分配多个虚拟缓冲器,虚拟缓冲器的数量为其遍历变化与预定义顺序相反的交换机的最大数量的整数倍。在另一实施方式中,处理器配置成对交换机进行配置,以重新关联数据包,所述数据包与给定虚拟通道 (VL)相关联地接收并且在下一跳中开始遍历具有与给定VL不同的VL的与预定义顺序相反的不同维度。
在一些实施方式中,处理器配置成通过为源交换机的给定入口接口定义至少两个出口接口来为交换机定义自适应路由规则,用于将数据包从源交换机路由到目标交换机,而不超过源交换机的VL预算,并且配置交换机以使用至少两个出口接口来应用从源交换机到目标交换机的自适应路由。在其它的实施方式中,通过考虑入口数据包的入口接口和VL值以及通过经由两个或多个出口接口中的每一个的路由和通过源交换机而导致的多次反向转向,处理器配置为定义至少两个出口接口。在其它的实施方式中,处理器配置为避免评估候选路由的同时搜索优选路由,其中至少有一个交换机或连接两个交换机的物理链路从笛卡尔拓扑或故障中丢失。
根据在本文中描述的实施方式,另外提供了一种方法,该方法包括:在与包括多维度的笛卡尔拓扑中相互连接的多个交换机的网络进行通信的处理器中,预定义笛卡尔拓扑的维度中的顺序。通过基于至少沿着候选路由的交换机(所述交换机到下一跳交换机的遍历与预定义顺序相反地从一个维度变化到另一维度)的相应数量来评估候选路由,以通过处理器搜索经由网络从源交换机到目标交换机的优选路由。将网络中的一个或多个交换机配置为沿着优选路由将数据包从源交换机路由到目标交换机。
从下面结合附图对本发明的实施方式的详细描述中,将更全面地理解这些和其它实施方式。
附图说明
图1是示意性地示出了根据本文所描述的实施方式的计算机系统的框图;
图2是示意性地示出了根据本文所描述的实施方式的网络交换机的框图;
图3是示意性地示出了根据本文所描述的实施方式的以2D网格或环形拓扑配置的网络的图,其中多个可替代路由连接在所选择的源交换机和目标交换机之间;以及
图4是示意性地示出了根据本文所描述的实施方式的用于构建笛卡尔拓扑中的路由的方法的流程图。
具体实施方式
概述
遍历通信网络的数据包通常临时缓存在沿着路由的交换机中。在使用无损链路级流量控制的网络中,交换机通常将指示交换机缓冲状态的流控制通知发送到其前一跳的相邻交换机。前一跳交换机基于这些通知来限制在所讨论的链路上的数据包的传输。在一些实际情况下,循环互连的多台交换机的缓冲器变满,因此这些交换机无法进一步发送或接收数据包。这种不期望的状态称为“死锁状态”或简称“死锁”。
一些网络拓扑允许无死锁路由。例如,在具有树形拓扑的网络中,最短路径路由是无死锁的,仅因为其按定义是没有环路的。最短路径路由对于网络的最小传输延迟和高效的带宽使用来说通常是重要的。
在一些网络中,交换机布置成笛卡尔拓扑,例如网格或环形。在笛卡尔拓扑结构中,交换机在虚拟网格中连接到它们的邻居,并且每个交换机由相应的笛卡尔坐标来标识。在环形拓扑中,虚拟网格的边界交换机是循环连接的。笛卡尔拓扑可以具有任何合适的维度,诸如二维(2D)、三维(3D)或更高维度。
原则上,可以使用如上所述的维序路由(DOR)方案来防止非循环 (例如,网格)的笛卡尔拓扑中的死锁。对于循环拓扑(例如,环形),可以使用被称为虚拟通道(VL)的多个缓冲池和DOR的组合来防止死锁。使用DOR导出的路由包括沿着拓扑的不同相应维度从交换机行进到交换机的一个或多个分段。例如,在2D笛卡尔拓扑中由DOR生成的路由包括沿x轴或y轴的单个分段,或者包括两个分段,例如沿着x轴的分段之后是沿着y轴的分段。
然而,在某些需要路由灵活性的应用中,DOR方案是不适用的。例如,DOR方案不支持自适应路由,因为DOR为网络中的每对源交换机和目标交换机定义单条路由。另外,由DOR方案为网格拓扑(如果仅允许最短路径路由,也在环形拓扑中)生成的路由不允许网络中的单个故障或缺失的交换机或交换机间链路。
本文中所描述的实施方式提供了用于在具有笛卡尔拓扑的网络中灵活构建最短路径和无死锁路由的改进的方法和系统。在所公开的技术中,在拓扑的维度上预定义了顺序,并且路由可以顺序地和反序地遍历维度。
应当注意的是,无死锁一般是组合的多个路由的特性。例如,如果使用DOR方案来定义网络中的所有路由,则保证无死锁。然而,如果给定的路由是使用DOR方案导出的,但是存在其他不遵循DOR方案的路由,则这些路由和DOR导出的路由一起产生死锁状态。
由相应的整数1≤d≤D来标识D维拓扑中的维度,并且可以例如通过序列1...D来指定维度的示例顺序。在上下文中,术语“按顺序遍历维度的路由”意味着路由的连续段根据预定的顺序沿着相应的拓扑维度遍历,例如,给定顺序1...D,从维度d到更高维度d'>d。换句话说,允许沿着顺序跳过维度。类似地,术语“反序地遍历维度的路由”意味着路由的连续段以与预定顺序相反的顺序遍历相应的拓扑维度,例如,给定顺序1...D,从维度d到更低的维度d'<d。
例如,对于在具有故障交换机或链路的网络中构建路由以及为了在自适应路由中使用的给定的一对源交换机和目标交换机构建多个路由,路由选择的这种灵活性是有用的。
在一些公开的技术中,多个虚拟通道(VL)用于遍历给定路由的数据包,以防止死锁。由于交换机通常支持有限数量的VL,因此所公开的实施方式寻求需要最小数目的VL的优选路由。
在一些实施方式中,网络管理计算机(也称为网络管理器)连接到网络并用于配置网络交换机。为了配置交换机,网络管理器使用实际网络拓扑的模型来选择成对的源交换机和目标交换机之间的路由。在一个实施方式中,网络管理器以选定的目标交换机开始,并以广度优先搜索 (BFS)顺序扫描其他交换机。
网络管理器评估每个扫描的交换机到目标交换机的多个候选路由。网络管理器基于选择标准在候选路由中选择一个或多个路由,选择标准优选包含最少数量的“相反转向”的路由,即,其中路由从沿着给定维度遍历变换到沿着较低维度遍历的最小数量的交换机。关系“较低”是指在维度上设置的预定义顺序。在所公开的实施方式中,所需的VL的数量直接与相反转向的数量相关,因此所公开的路由选择标准使VL的数量最小化。
系统描述
图1是示意性地示出了根据本文所描述的实施方式的计算机系统的框图。系统20包括通过网络30彼此通信并因此用作网络的网络节点的多个主计算机24。网络节点24通过相应的网络接口控制器(NIC)28 连接到网络。虽然在图1的示例中,计算机系统包括表示为节点_1...节点_7的七个网络节点24,但实际的计算机系统可以包括任何合适数量的网络节点。
网络30可以包括任何合适的通信网络,例如,无限带宽(IB)交换结构,或者诸如以太网或因特网协议(IP)网络的其它类型的数据包网络。可选地,网络30可以根据任何其他合适的标准或协议来操作。
网络30通常包括根据某些预定义的网络拓扑经由物理链路34互连的多个网络元件32。网络元件32可以包括例如交换机、路由器、网桥、网关或任何其他合适类型的网络元件。在本实施例中,网络元件32包括以诸如网格或环形的笛卡尔拓扑布置的交换机。每个网络节点24连接到网络中的相应交换机,并且能够通过网络与所有其他网络节点进行通信。网络30可以包括一个或多个交换机,其与网络中的其他交换机互连,但是没有连接到任何网络节点24。在一些实际的实施方式中,每个交换机可以连接到多个网络节点。
在一些实施方式中,网络30包括D-多维笛卡尔拓扑。每个维度的网络元件的数量在所有维度上可以是共同的,或者可选地可以在不同维度之间变化。本文公开的实施方式适用于虚拟网格上的所有交换机和物理链路都存在并起作用的原始网络,并且适用于至少一个交换机或物理链路缺失或失效的故障网络。
使用中央网络管理计算机(在此被称为网络管理器36)来管理网络 30,中央网络管理计算机包括用于连接网络30的接口28(例如,与在网络节点中使用的类似的NIC)和处理器40。在一些其他的实施方式中,网络管理器36可以在网络节点24中的一个的上面运行。网络管理器使得网络管理员能够设置网络并且经由NIC向网络元件提供路由信息。可选地,至少部分提供是由网络管理员自动执行的。
在一些实施方式中,网络管理器36知道网络拓扑结构,即网络元件的身份及其互连的方式,例如,其由网络管理员经由适当的接口(未示出)手动配置。另选地或另外地,网络管理器通过询问网络元件32来自动学习网络拓扑。
在其它任务中,网络管理器36基于网络拓扑来定义成对的网络元件之间的路由,并且将相关路由信息配置给属于这些路由的网络元件。在一些实施方式中,网络管理器36定义了拓扑维度的一些顺序,例如1... D,并且允许顺序以及反序遍历维度的路由,同时仍然防止死锁状态。通过允许反序遍历维度,网络管理器能够为非原始拓扑和自适应路由定义最短路径无死锁路由。
尽管在图1的计算机系统20中,网络管理器36是在专用网络节点上实现的,但是在替代的实施方式中,网络管理器可以在网络节点24中的一个内实现,并由网络节点的处理器执行。进一步可选地,网络中的至少一个交换机可以包括连接到处理器的“受管理交换机”,并且网络管理器(或其一部分)可以驻留在受管理交换机上。
图2是示意性地示出了根据本文所描述的实施方式的网络交换机32 的框图。尽管下面的描述主要涉及网络交换机,但是所公开的技术可以与各种其他类型的网络元件一起使用。
交换机32包括经由物理链路34与网络30交换数据包的多个端口 44。在一些实施方式中,给定的端口44可以用作输入数据包的入口接口或输出数据包的出口接口。可选地,端口44可以既用作入口接口又用作出口接口。
交换机32包括缓冲器46,缓冲器46包括用于存储经由端口44的入口接口从网络到达的数据包的一个或多个进入队列48;以及用于存储等待经由端口44的出口接口传送至网络的一个或多个出去队列52。在一些实施方式中,缓冲器46包括共享缓冲器,其中不同大小的队列可以动态分配给不同的入口接口或出口接口,或者根据任何其它合适的准则分配。
遍历网络的数据包可能属于不同的流量。在一些实施方式中,由多个逻辑通信链路(也被称为虚拟信道)共享网络30中的物理链路34。在无限宽带中,虚拟信道也被称为虚拟通道(VL)。
在一个实施方式中,为了支持多个VL,将每个队列48和52分成按照数据包分配到的VL来存储数据包的多个逻辑队列。可选地,队列48 和52中的每一个包括用于相应VL的多个专用队列。分别分配给VL的队列在本文也称为“虚拟缓冲”。
在一个实施方式中,交换机32经由入口接口接收被分配了输入VL 值的数据包,并且在通过出口接口中的一个将数据包发送回网络之前,将数据包标题中的输入VL值用不同的输出VL值替换。从输入VL值到输出VL值的映射是由网络管理器提供给交换机的路由信息的一部分。在下面公开的一些实施方式中,改变分配给遍历交换机的数据包的VL 值是用于防止具有笛卡尔拓扑的网络中的死锁状态。
交换机32包括可配置的交换结构54,其根据特定的路由规划在端口 44之间转发数据包。通常,每个数据包属于某个流量。通过将某个流量路由到某个端口,结构54使该流量的数据包通过网络30在特定路由路径上路由。
在本专利申请的内容和权利要求书中,术语“数据包”用于描述通过网络路由的基本数据单元。不同的网络类型和通信协议对于类似数据单元使用不同的术语,例如数据包、帧或单元格。所有数据单元在本文中称为数据包。
交换机32包括对结构54进行配置以应用期望的路由计划的交换机控制器56。通过控制路由计划,交换机32能够使数据包通过网络30遍历各种路由路径。
在一些实施方式中,交换机32通过允许在给定的入口接口中接收到的数据包经由多个出口接口中的一个路由来支持自适应路由。为了重新路由给定流量,交换机控制器56为交换机通过入口接口接收的流量数据包选择不同的出口接口。例如,交换机32可以在转发数据库(FDB)(图中未示出)中保存入口和出口接口之间的当前关联。可选地,交换机32可以例如每个流量保存一组路由规则。在某些情况下,可路由数据包,而不记录任何信息以供将来使用。
转发数据包通常基于数据包标题中的某些字段。字段可以包括例如源地址和目标地址、底层协议以及源端口和目标端口数中的至少一个。在一些实施方式中,转发数据包包括计算数据包标题中的一个或多个字段上的哈希函数,并使用结果哈希值来为数据包选择相应的出口接口。
系统20、网络管理器36和交换机32的配置是示例性配置,纯粹是为了概念上的清楚而选择的。在替代的实施方式中,也可以使用任何其他合适的配置。网络管理器36和交换机32的不同元件可以用硬件来实现,诸如使用一个或多个特定应用集成电路(ASIC)或现场可编程门阵列(FPGA)。在替代的实施方式中,诸如处理器40和/或交换机控制器 56的网络管理器36和/或交换机32的一些元件可在于合适的处理器上执行的软件中实现,或者使用硬件和软件元件的组合来实现。
在一些实施方式中,处理器40和/或交换机控制器56可以包括通用处理器,其以软件编程以执行本文所描述的网络管理器和/或交换机功能。软件可以例如通过网络以电子形式下载到处理器,或者可以替代地或附加地将软件提供和/或存储在诸如磁性、光学或电子存储器的非暂时性有形介质上。
笛卡尔拓扑中的路由
两个网络元件之间的路由可以包括一个或多个路由段。在本文中,为了简洁起见,术语“路由段”或“段”(简称)是指沿着一个维度遍历两个或更多个连续交换机的路由或路由的一部分。相邻交换机之间的段在这里也称为“跳”。
在网格和环形拓扑中,由DOR方案构建的路由例如可以包括任何拓扑维度中的单个段,或者根据维度的预定义顺序串联的多个段,其中每个段遍历不同的相应维度。
图3是示意性地示出了根据本文所描述的实施方式的以2D网格或环形拓扑配置的网络30的图,其中多个替代路由连接在所选择的源交换机和目标交换机之间。
图3中的示例性网络包括以笛卡尔拓扑排列的十六个交换机32,其中为了清楚起见而省略了互连交换机的链路(例如图1中的物理链路 34)。网络节点24A和24B分别通过连接到源交换机32A和目标交换机 32B而在网络上彼此通信。考虑从节点24A到节点24B的通信方向。在这个方向上,由节点24A发送的数据包通过交换机32A路由,以朝着目标交换机32B遍历网络中的多个其他交换机,目标交换机32B将数据包路由到节点24B。
在交换机32A和32B之间,数据包可以沿着若干备选路由中的一个遍历其他交换机。例如,从交换机32A到32B的路由70包括沿着x轴的跳70A和70B以及沿着y轴的跳70C和70D。路由70是包括四跳的从交换机32A到交换机32B的最短路径路由。应当注意的是,根据DOR 方案的要求,路由70首先沿着x轴遍历一段,然后沿着y轴线遍历另一段。
除了路由70之外,图3还示出了从交换机32A到32B的替代路由 74和78。路由74包括标记为74A...74F的六个跳,并且路由78包括标记为78A...78D的四个跳,因此是最短路径路由。应当注意的是,DOR 方案不能生成路由74和78,因为这些路由中的每一个都包含属于同一维度的两个非串接段。例如,当跳70A或交换机32C的链路发生故障时,可以使用路由74,尽管在本实施例中路由74不是最短路径路由。例如,当交换机32C和32D都发生故障时,可以使用路由78。
多段路由可以沿着一个或多个拓扑维度遍历。例如,考虑D维笛卡尔拓扑结构,其中维度是按各自的索引1...D排序的。例如,在DOR中,每个路由按照其顺序遍历拓扑维度,即1≤d≤D的维度之后为按照顺序的下一维度(d+1)或按照顺序的通常更高的维度d'>d。在所公开的实施方式中,释放该约束,并且有效路由可以以相对于拓扑维度的顺序的相反顺序来遍历维度。
在下面的描述中,术语“顺序转换”是指按照顺序从给定维度到较高维度的遍历,例如从维度d到(d+1)或者通常到d'>d。类似地,术语“反序转换”(或者“反向转换”)是指按照拓扑维度的顺序从给定维度到较低维度的遍历,例如从维度d到(d-1)或者通常到d'<d。
在2D拓扑中,假设拓扑维度是x到y顺序,顺序转换是指从x轴到 y轴的维度遍历,而反向转换是指从y轴到x轴的维度遍历。
在图3中,将顺序转换和反序转换分别描绘为90度箭头82和86。例如,路由70具有单一的顺序转换82B,路由74具有一个反序转换86A 和一个顺序转换82A,并且路由78具有两个反序转换86B和86C。
允许顺序转换和反序转换可以导致一起产生死锁状态的路由。正如下面将要详细描述的,包含反序转换的路由中的死锁可以通过在遍历反向转换时将数据包路由到不同的VL来避免。可以表明的是,防止笛卡尔(例如,网格或环形)拓扑中的所有死锁所需的VL的数量取决于沿着路由的反向转换的最大数量。
在笛卡尔拓扑结构中构造无死锁路由
接下来我们描述在具有笛卡尔拓扑的网络中构建最短路径无死锁路由的方法。对于给定的拓扑结构,检查多个路由候选,并且选择具有最小数量的反向转换的路由。选择的路由也需要最小的VL数量。也可以应用诸如最短路径选择的其他选择标准。
图4是示意性地示出了根据本文所描述的实施方式的用于构建笛卡尔拓扑中的优选路由的方法的流程图。该方法描述为由网络管理器36的处理器40执行。我们假定处理器40将网络拓扑建模为根据实际网络拓扑经由边缘互连的一组多个顶点。使用该模型,顶点对应于相应的交换机32,并且边缘对应于网络30的相应链路34。
在一些实施方式中,选择从源交换机到目标交换机的优选路由基于以下选择标准:
·选择具有最小反向转换数量(因此,也是最小VL数量)的路由。
·选择最短路径路由。
·选择遍历高维度的路由,因为通过遍历至高维度来与其他路由合并的路由不太可能遍历反向转换。
在一些实施方式中,上述三个选择标准全部用作组合标准。在替代的实施方式中,可以省略第二和第三标准中的一个或两个。
在描述该方法时,S表示网络中所有交换机32的组,s表示源交换机,并且sd表示s的目标交换机。在构建路由时,网络管理器使用以下属性来表征交换机:
·s.dist-从s到sd的距离。每一跳都给该距离增加一个距离单位。
·s.hopDim-在s和朝向sd的下一跳交换机之间遍历的维度。
·s.pinc-从s到sd的路由上的反向转换的数量。
其他定义包括:
·adj(s)表示s的相邻交换机的组。
·s→t表示从交换机s到相邻交换机t的跳。
·dim(s→t)表示s→t跳中遍历的维度。
·如果从s遍历到t导致反向转换,则布尔表达式[dim(s→t)>t.hopDim)] 等于1,否则等于0。
·Q(s)表示待处理的交换机的队列。Q(s)按先进先出(FIFO)顺序操作,使用运算符Q.push(s)将交换机s添加到队列尾部,使用运算符Q.pop() 用于将交换机弹出队列。
该方法开始于:处理器40在S中的网络交换机之中选择目标交换机 sd,并且在初始化步骤100初始化sd。处理器40可以顺序地在S中的交换机之中选择目标交换机,或使用任何其他选择标准。为了初始化sd,处理器如下设置交换机属性:
方程1:
在方程1中,符号∞实现为大于拓扑维度数的整数。进一步在步骤 100,处理器初始化网络中的其他交换机,如方程2所示:
方程2:
在方程2中,符号∞实现为大于网络中最长路由的长度的整数。在 BFS扫描步骤104中,处理器将sd的相邻交换机的距离属性设置为单位距离,并且将相邻交换机推入BFS队列,如方程3所示:
方程3:
在队列检查步骤108中,处理器检查是否有任何排队等待处理的交换机,如果有,则处理器从BFS队列中弹出交换机s'并前进到相邻的识别步骤112。
在步骤112,处理器识别已由BSF扫描访问过的交换机s'的相邻交换机t。因此,对于比s'更靠近sd一跳的邻居交换机中的每一个,已经选择到目标交换机的路由。在步骤112识别的交换机的组表示为M(s'),并由下式给出:
方程4:
M(s')={t:t∈adj(S')∧t.dist=s'.dist-1}
应当注意的是,使用方程4中定义的M(s')来选择优选路由时,处理器避免评估候选路由,其中至少一个交换机或连接沿候选路由的交换机中的两个的物理链路从笛卡尔拓扑缺失或故障,因为这样的交换机或链路不存在于拓扑中或不能满足公式4中的条件t.dist=s'.dist-1。
在子组选择步骤116,处理器选择包括M(s')中的一个或多个相邻交换机的子组N(s'),使得经由N(s')中的交换机从s'到sd的路由具有最少数量的反向转换。为此,对于M(s')中的每个交换机t,处理器如下评估所得到的反向转换的数量:
方程5:
pinc(s',t)=t.pinc+[dim(s'→t)>t.hopDim]
并且识别交换机t,从而得到沿着路由到目标交换机的最小反向转换数量:
方程6:
N(s')={t:t∈M(s')∧pinc(s',t)=minu∈M(s')pinc(s',u)}
对于N(s')中的每个交换机t,从s'经过t到sd的路由是作为最短路径并具有最小反向转换数量的候选路由。
在最大维度选择步骤120,处理器选择使得所遍历的维度(即,dim (s'→r))按照拓扑维度的顺序为最大的N(s')中的交换机r,如下所给出的:
方程7:
select r∈N(s'),such that dim(s'→r)=maxt∈N(s')dim(s'→t)
方程7中的选择设计为由于高取值的dim(s'→r),经由s'在随后所选择的路由中减少反向转换的数量。
在更新步骤124,处理器根据在步骤120选择的交换机r的属性更新交换机s'的属性,如下:
方程8:
在BSF排队步骤128处,处理器将尚未处理的s'的邻居BFS队列附近,如下所给出的:
方程9:
在方程9中,符号∞能够如上述的方程2中所述地实施。在步骤128 之后,处理器返回到步骤108,检查BFS队列的占用,并且处理随后的队列条目(如果有的话)。
如果在步骤108,BFS队列是空的,则处理器前进到路由配置步骤 132,其中处理器配置包括在为当前目标交换机选择的路由中的交换机。例如,处理器在相关交换机的交换结构54内配置相关路由信息。另外,处理器在所选择的路由中以反向转换的最大数量配置相关的交换机,或者相等地以需要分配的VL的数量配置相关的交换机,以防止死锁状态。另外,处理器以下面进一步描述的VL管理规则来配置相关交换机。
在目标交换机重新选择步骤136中,处理器选择网络中的后续目标交换机,并且返回到步骤100,以构建朝向所选择的目标交换机的优选路由。当在步骤136中已经扫描所有网络交换机为目标交换机时,该方法终止。
VL管理
如上所述,网络管理器36为网络30中的源交换机和目标交换机的一些或全部配对选择具有最小反向转换数量(或VL)的相应最短路径路由。
设定nOT表示横穿所有路由的最小反向转换数量,并设定nVL表示防止死锁所需的VL数。在一些实施方式中,所需的VL的最小数量是反向转换数量的整数倍,即nVL=A·nOT,其中A>0是正整数。在一个实施方式中,对于网格拓扑A=1,即nVL=nOT,并且对于环形拓扑A=2,即nVL=2·nOT。
表1描绘了在一个实施方式中,在网格拓扑中的交换机内执行的VL 管理规则。在该实施方式中,注入到网络中的数据包分配VL=0,并且当数据包遍历一个反向转换时,VL值增加。在该实施方式中,VL得到 0到nOT-1之间的整数指数。
表1:网格拓扑中的VL管理规则
表2描绘了在一个实施方式中,在环形拓扑中的交换机内执行的VL 管理规则。与网格拓扑类似,注入到网络中的数据包分配VL=0。然而,在环形拓扑中,VL具有两个可能的值来解决沿着循环网格线的死锁。具体来说,当越过日期线(dateline)时,VL值从VL=2i增加到VL=2i+1。在环形拓扑中,我们假设为沿着虚拟网格的网格线的循环路由来预定义日期线,其中每个日期线通常定义为闭合循环网格线的两个交换机之间的交叉点。例如,设定X>3表示沿着一个维度的交换机的数量。当数据包在具有0和(X-1)坐标的开关之间遍历时,越过日期线。另外,当遍历顺序转换时,VL值保持VL=2i或从VL=2i+1变为VL=2i。对于反向转换,VL值从VL=2i或VL=2i+1变为VL=2(i+1)。
表2:环形拓扑中的VL管理规则
根据表1和2的VL管理规则,表3描述了分配给遍历上述图2的路由70、74和78的数据包的VL索引。表3涉及网格拓扑以及没有越过日期线的环形拓扑。
表3:将VL管理应用于图2中的路由
应当注意的是,在图4的方法的实施中,选择路由受到处理器预定义的VL预算(即交换机中可用的VL的最大数量)的约束。对于静态路由,以所需VL的数量来说,网络中最坏情况下的路由也应该满足VL预算。
在自适应路由中,网络交换机配置为将在给定入口接口中接收到的数据包路由到若干个预定义出口接口中的一个。出口接口的选择在交换机内本地完成。在这种情况下,从源交换机到目标交换机的路由可能是次优的,即,如果沿着该路由路由数据包不会导致数据包中的VL值超过VL预算,则具有大于最小可能反向转换数量的反向转换数量。
在一些实施方式中,为了设计支持自适应路由的路由规则,首先,网络管理器如上所述地定义具有最小反向转换数量的静态路由,然后根据定义静态路由时收集的信息为交换机定义自适应路由规则。
在设计满足VL预算的自适应路由规则时,考虑以下因素:(i)数据包的入口接口和当前VL值,(ii)各个相邻交换机的候选出口接口和 p.inc值,(iii)经由候选出口接口的路由是否创建反向转换,以及(iv) 交换机本身是否创建取决于入口数据包到达的维度的反向转换。应当注意的是,通过使用上述设计约束,基于入口数据包的VL值,交换机可以具有可用于自适应路由的不同组的出口接口。
上面描述的实施方式是通过示例给出的,也可以使用其他合适的实施方式。例如,表1和2中的VL管理规则中分配的VL值不是强制的,也可以使用其他合适的VL分配。
应当理解的是,上面描述的实施方式是作为示例引用的,并且下面的权利要求不限于上文已经特别示出和描述的内容。相反,范围包括上文描述的各种特征的组合和子组合,以及本领域技术人员在阅读上述描述时将会想到的并且在现有技术中未公开的变化和修改。通过引用并入本专利申请中的文件是本申请的组成部分,除非在这些并入的文件中任何术语的定义方式与在本说明书中明确或隐含地做出的定义相冲突,在这种情况下应当仅考虑本说明书中的定义。
Claims (22)
1.一种用于在具有笛卡尔拓扑的网络中构建无死锁路由的装置,包括:
网络接口,配置为与一个网络进行通信,所述网络包括在多维度的笛卡尔拓扑中相互连接的多个交换机;以及
处理器,其配置为:
预定义笛卡尔拓扑的维度中的顺序;
通过基于至少沿着候选路由的相应数量的交换机来评估候选路由,以搜索经由网络从源交换机到目标交换机的路由,所述路由到下一跳交换机的遍历与预定义顺序相反地从一个维度变化到另一维度,从而选择从源到目标的多个路由,其具有与预定顺序相反的最大数量的下一跳交换机变化;
对应于与预定顺序相反的最大数量的下一跳交换机变化,为路由器配置多个虚拟通道(VL),以及
配置网络中的交换机,以沿着选择的多路由的优选路由将来自源交换机的数据包路由到目标交换机。
2.根据权利要求1所述的装置,其中,处理器配置成对交换机进行配置,以为每个交换机分配多个虚拟缓冲,虚拟缓冲的数量为遍历改变与预定义顺序相反的交换机的最大数量的整数倍。
3.根据权利要求1所述的装置,其中,处理器配置成对交换机进行配置,使得所述交换机重新关联数据包,所述数据包与给定虚拟通道(VL)相关联地被接收并且所述数据包在下一跳中与预定顺序相反地开始遍历一个不同维度,具有与给定VL不同的VL。
4.根据权利要求1所述的装置,其中,处理器配置成通过为源交换机的给定入口接口定义至少两个出口接口来为交换机定义自适应路由规则,用于将数据包从源交换机路由到目标交换机而不超过源交换机的VL预算,并且配置成对交换机进行配置,以使用至少两个出口接口来应用从源交换机到目标交换机的自适应路由。
5.根据权利要求4所述的装置,其中,通过考虑入口数据包的VL值和入口接口以及通过经由两个或多个出口接口中的每一个的路由和通过源交换机而导致的多次反向转向,处理器配置为定义至少两个出口接口。
6.根据权利要求1所述的装置,其中,处理器配置成对交换机进行配置,以利用自适应路由沿着选择的多路由而路由数据包。
7.根据权利要求1所述的装置,其中,处理器配置成对交换机进行配置,以沿着优选路由将数据包从源交换机路由到目标交换机,并且,当沿着优选路由的交换机或链路故障时,使用选择的多路由的其它路由。
8.根据权利要求1所述的装置,其中,处理器配置成搜索需要最小数量的反向转换的路由。
9.根据权利要求1所述的装置,其中,处理器配置成,通过以广度优先搜索顺序从目标交换机开始遍历网络的交换机,来搜索路由。
10.根据权利要求9所述的装置,其中,处理器配置为遍历交换机,以选择下一跳交换机,通过选择的下一跳交换机,优选路由具有相邻的交换机之间的最短路径。
11.根据权利要求9所述的装置,其中,处理器配置为遍历交换机,以选择下一跳交换机,对于所述下一跳交换机,从源交换机遍历的维度在相邻的交换机之间按照顺序是最高的。
12.根据权利要求9所述的装置,其中,处理器配置为遍历交换机,以为每个当前的交换机确定沿着从当前的交换机到目标交换机的路由的多个反向转换。
13.根据权利要求12所述的装置,其中,处理器配置为遍历交换机,以为每个交换器确定从当前交换机到目标交换机的距离。
14.根据权利要求9所述的装置,其中,处理器配置为遍历交换机,以为每个当前的交换机确定朝向目标交换机在当前的交换机和朝下一跳交换机之间遍历的维度。
15.一种用于在具有笛卡尔拓扑的网络中构建无死锁路由的方法,包括
在与一个网络进行通信的处理器中,预定义笛卡尔拓扑的维度中的顺序,所述网络包括多维度的笛卡尔拓扑中相互连接的多个交换机;
通过基于至少沿着候选路由的交换机的相应数量来评估候选路由,以通过处理器搜索经由网络从源交换机到目标交换机的路由,所述路由到下一跳交换机的遍历与预定义顺序相反地从一个维度变化到另一维度,从而选择从源到目标的多个路由,其具有与预定顺序相反的最大数量的下一跳交换机变化;
对应于与预定顺序相反的最大数量的下一跳交换机变化,为路由器配置多个虚拟通道(VL),
将网络中的交换机配置为沿着选择的多个路由将数据包从源交换机路由到目标交换机。
16.根据权利要求15所述的方法,其中,配置一个或多个交换机包括对交换机进行配置以为每个交换机分配多个虚拟缓冲,虚拟缓冲的数量为遍历变化与预定义顺序相反的交换机的最大数量的整数倍。
17.根据权利要求15所述的方法,其中,配置一个或多个交换机包括对交换机进行配置以使所述交换机重新关联数据包,所述数据包与给定虚拟通道(VL)相关联地被接收并且所述数据包在下一跳中开始遍历与预定义顺序相反的一个不同维度,具有与给定VL不同的VL。
18.根据权利要求15所述的方法,还包括,通过为源交换机的给定入口接口定义至少两个出口接口来为交换机定义自适应路由规则,用于将数据包从源交换机路由到目标交换机而不超过源交换机的VL预算,并且配置一个或多个交换机包括配置交换机以使用至少两个出口接口来应用从源交换机到目标交换机的自适应路由。
19.根据权利要求18所述的方法,其中,定义至少两个出口接口包括通过考虑入口数据包的VL值和入口接口以及通过经由两个或多个出口接口中的每一个的路由和通过源交换机而导致的多次反向转向,定义至少两个出口接口。
20.根据权利要求15所述的方法,其中,搜索路由包括通过以广度优先搜索顺序从目标交换机开始遍历网络的交换机。
21.根据权利要求20所述的方法 ,其中,遍历交换机包括选择下一跳交换机,通过选择的下一跳交换机,优选路由具有相邻的交换机之间的最短路径。
22.根据权利要求20所述的方法 ,其中,遍历交换机包括选择下一跳交换机,对于所述下一跳交换机,从源交换机遍历的维度在访问的相邻的交换机之间按照顺序是最高的。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662426241P | 2016-11-24 | 2016-11-24 | |
US62/426,241 | 2016-11-24 | ||
US15/393,284 | 2016-12-29 | ||
US15/393,284 US10404574B2 (en) | 2016-11-24 | 2016-12-29 | Deadlock-free routing in lossless multidimensional cartesian topologies with minimal number of virtual buffers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108111410A CN108111410A (zh) | 2018-06-01 |
CN108111410B true CN108111410B (zh) | 2021-08-10 |
Family
ID=60409240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711192650.0A Active CN108111410B (zh) | 2016-11-24 | 2017-11-24 | 在笛卡尔拓扑的网络中构建无死锁路由的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10404574B2 (zh) |
EP (1) | EP3328008B1 (zh) |
CN (1) | CN108111410B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11108679B2 (en) * | 2019-08-08 | 2021-08-31 | Mellanox Technologies Tlv Ltd. | Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes |
US10915154B1 (en) | 2019-08-08 | 2021-02-09 | Mellanox Technologies Tlv Ltd. | Raising maximal silicon die temperature using reliability model |
US11949595B2 (en) * | 2020-06-26 | 2024-04-02 | Intel Corporation | Reflection routing as a framework for adaptive modular load balancing for multi-hierarchy network on chips |
US11425027B2 (en) * | 2020-11-01 | 2022-08-23 | Mellanox Technologies, Ltd. | Turn-based deadlock-free routing in a Cartesian topology |
US11870682B2 (en) * | 2021-06-22 | 2024-01-09 | Mellanox Technologies, Ltd. | Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies |
CN115002034B (zh) * | 2022-06-16 | 2023-06-16 | 北京经纬恒润科技股份有限公司 | 一种报文通信网络构建、报文传输方法及装置 |
US20240137308A1 (en) * | 2022-10-14 | 2024-04-25 | Google Llc | Virtual Channel Balancing In Ring-Based Topologies |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5533198A (en) | 1992-11-30 | 1996-07-02 | Cray Research, Inc. | Direction order priority routing of packets between nodes in a networked system |
US20020091855A1 (en) | 2000-02-02 | 2002-07-11 | Yechiam Yemini | Method and apparatus for dynamically addressing and routing in a data network |
US6918063B2 (en) | 2002-02-04 | 2005-07-12 | International Business Machines Corporation | System and method for fault tolerance in multi-node system |
CN101242372A (zh) * | 2008-03-10 | 2008-08-13 | 清华大学 | k元N维mesh网中的无死锁路由方法 |
CN101335704B (zh) * | 2008-04-18 | 2011-05-11 | 清华大学 | 三维torus网中的无死锁自适应路由方法 |
US8537677B2 (en) * | 2009-10-13 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Incremental adaptive packet routing in a multi-dimensional network |
CN101834780B (zh) * | 2010-01-28 | 2014-04-16 | 武汉理工大学 | 片上网络的拓扑结构的映射优化方法 |
US9379971B2 (en) | 2012-05-11 | 2016-06-28 | Simula Inovation AS | Method and apparatus for determining paths between source/destination pairs |
GB2508891A (en) * | 2012-12-14 | 2014-06-18 | Ibm | Deadlock-free routing of data packets in fat tree networks |
US9009648B2 (en) | 2013-01-18 | 2015-04-14 | Netspeed Systems | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification |
-
2016
- 2016-12-29 US US15/393,284 patent/US10404574B2/en active Active
-
2017
- 2017-11-20 EP EP17202641.1A patent/EP3328008B1/en active Active
- 2017-11-24 CN CN201711192650.0A patent/CN108111410B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20180145900A1 (en) | 2018-05-24 |
EP3328008A1 (en) | 2018-05-30 |
CN108111410A (zh) | 2018-06-01 |
EP3328008B1 (en) | 2020-01-01 |
US10404574B2 (en) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108111410B (zh) | 在笛卡尔拓扑的网络中构建无死锁路由的方法和装置 | |
US11362934B2 (en) | Method to route packets in a distributed direct interconnect network | |
CN112350929B (zh) | 以虚拟通道在拓扑中产生无死锁路由的装置和方法 | |
US20180026878A1 (en) | Scalable deadlock-free deterministic minimal-path routing for dragonfly networks | |
CN112448900B (zh) | 一种数据传输方法及装置 | |
US20120300669A1 (en) | Topology-based consolidation of link state information | |
US20090046727A1 (en) | Routing with virtual channels | |
US9973435B2 (en) | Loopback-free adaptive routing | |
KR20140139032A (ko) | 패킷플로우 상호연결 패브릭 | |
EP3445007B1 (en) | Routing packets in dimensional order in multidimensional networks | |
CN108400922B (zh) | 虚拟局域网络配置系统与方法及其计算机可读存储介质 | |
Bogdanski | Optimized routing for fat-tree topologies | |
CN113938434A (zh) | 大规模高性能RoCEv2网络构建方法和系统 | |
US11425027B2 (en) | Turn-based deadlock-free routing in a Cartesian topology | |
US11870682B2 (en) | Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies | |
US11765103B2 (en) | Large-scale network with high port utilization |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230626 Address after: Yoknam, Israel Patentee after: Mellanox Technologies, Ltd. Address before: Israel Lai Ananna Patentee before: Mellanox Technologies TLV Ltd. |