自适应路由通知的单播转发的制作方法

文档序号:11436546阅读:175来源:国知局
自适应路由通知的单播转发的制造方法与工艺

发明领域

本发明总体涉及通信网络,并且具体涉及用于转发自适应路由通知的方法和系统。

发明背景

在本领域中,用于通过通信网络路由数据包的各种技术是已知的。一些已知的技术基于网络状态(例如,流量负荷或者拥塞)来选择用于数据包的路由路径。这种技术有时候被称作自适应路由(ar)。例如,其公开内容通过引用并入本文的美国专利8,576,715描述了一种用于通信的方法,该方法包括通过通信网络在第一路由路径上路由属于给定的数据包流的第一数据包。使用有时限的自适应路由(ar)模式,将在给定的数据包流中跟随第一数据包的第二数据包路由,通过评估在第一数据包和第二数据包之间的时间差,如果时间差没有超过预定的阈值,则在第一路由路径上路由第二数据包,并且如果时间差超过了预定的阈值,则选择可能不同于第一路由路径的、通过通信网络的第二路由路径,并且在第二路由路径上路由第二数据包。

其公开内容通过引用并入本文的美国专利申请公开2015/0372916描述了一种网络元件,其包括电路以及一个或多个接口。接口被配置成连接于通信网络。电路被配置成将多个出口接口经由通信网络分配成对应于各自不同的路径,以用于将数据包路由到给定的目的地址分组;针对给定的目的地址分组,保持对于在多组散列结果中的每组散列结果的各自的状态信息;经由入口接口接收预定到达给定的目的地址分组的数据包;计算用于数据包的给定的散列结果,并且确定给定的散列结果落入其中的给定的一组散列结果;并且根据对应于给定的目的地址分组和给定的一组散列结果的状态信息,经由在多个出口接口中的一个出口接口转发数据包。

其公开内容通过引用并入本文的美国专利9,014,006和美国专利申请公开2015/0195204描述了一种包括在通信网络的网络交换机中接收通信流量的方法,该通信流量发源于源节点,并且通过通信网络在路线上到达穿过一个或多个前位网络交换机以用于转发到目的节点。响应于在网络交换机中检测到将通信流量转发到目的节点的能力受损,向前位网络交换机发送通知。该通知将由前位网络交换机消耗,并且请求前位网络交换机修改路线,以免穿过网络交换机。

发明概述

本文描述的实施例提供了一种用于通信的方法,包括在作为具有拓扑结构的通信网络的一部分的第一网络交换机中检测将发源于源端点的数据包流转发到目的端点的受损的能力。响应于检测到受损的能力,第一网络交换机基于拓扑结构来识别位于该流的当前路线上的、并且同样位于从源端点到目的端点不穿过第一网络交换机的一个或多个可替换的路线上的第二网络交换机。从第一网络交换机发送单独向第二网络交换机寻址的、并且请求第二网络交换机重路由该流的通知。

在一些实施例中,该方法还包括由第二网络交换机接收通知,并且响应于通知,将该流重路由到可替换的路线中的一个路线。在实施例中,发送通知包括在与该流的当前路线的反向路线不同的路线上路由通知。

在一些实施例中,拓扑结构是胖树(ft)拓扑结构,其中网络交换机被布置在至少包括叶级和脊级的多个级中,并且其中每个路线首先穿过开始于叶级并且穿过递增级的向上段,并且随后穿过其穿过递减级并且终止于叶级的向下段。在示例实施例中,第一网络交换机属于ft拓扑结构的给定层,并且识别第二网络交换机包括在低于给定级的中间级中选择位于该流的当前路线的向上段上的唯一的网络交换机。在公开的实施例中,中间级比给定级低一级。

在一些实施例中,识别第二网络交换机包括在第一网络交换机中保持数据结构,其为每个端点记录在位于从该端点到第一网络交换机的路线的向上段上的、中间级中的各自的网络交换机,并且还包括在数据结构中查询与源端点关联的网络交换机。在实施例中,数据结构也用于将数据包从第一网络交换机路由到目的端点。在其他实施例中,识别第二网络交换机并且发送通知包括识别两个或更多个第二交换机,并且将各自的单播通知发送到所识别的两个或更多个第二交换机。

根据本发明的实施例,另外提供了在具有拓扑结构的通信网络中的网络交换机。网络交换机包括被配置成与通信网络交换数据包的多个端口以及数据包处理电路。数据包处理电路被配置成检测经由端口将发源于源端点的数据包流转发到目的端点的受损的能力;响应于检测到受损的能力,基于拓扑结构来识别位于该流的当前路线上的、并且同样位于从源端点到目的端点的、不穿过网络交换机的一个或多个可替换的路线上的第二网络交换机,并且经由端口之一来发送单独向第二网络交换机寻址的、并且请求第二网络交换机重路由该流的通知。

根据本发明的实施例,进一步提供了一种计算机软件产品,该产品包括其中存储了程序指令的有形的非暂态计算机可读介质,该指令在由作为具有拓扑结构的通信网络的一部分的第一网络交换机中的处理器读取时,使处理器检测将发源于源端点的数据包流转发到目的端点的受损的能力;响应于受损的能力,基于拓扑结构来识别位于该流的当前路线上的、并且同样位于从源端点到目的端点的、不穿过第一网络交换机的一个或多个可替换的路线上的第二网络交换机,并且从第一网络交换机发送单独向第二网络交换机寻址的、并且请求第二网络交换机重路由该流的通知。

从与附图结合的本发明的实施例的下列详细描述中,本发明将得到更完全地理解,其中:

附图简述

图1是根据本发明的实施例示意性示出胖树(ft)网络的框图;以及

图2是根据本发明的实施例示意性示出用于在ft网络中转发自适应路由通知(arn)的方法的流程图。

实施例的详细描述

概述

本文描述的本发明的实施例提供用于在通信网络中自适应地路由数据包的改良的方法和系统。本文描述的实施例主要指的是多级全ft网络。然而,所公开的技术也可应用于其他合适的网络拓扑结构中,诸如,准ft网络、使用多机箱链路聚合(mlag)的网络以及多端口的主机。

在一些实施例中,ft网络包括布置在多个级中的多个互连的网络交换机。端点(即,由网络服务的主机)连接于在最低级中的交换机(也被称作叶交换机)。在最高级中的交换机被称作脊交换机。

通过ft网络的任何路线均包括“向上”段以及随后的“向下”段。向上段开始于服务源端点的叶交换机,并且按照级的次序向上行进。向下段按照级的次序向下行进,直到到达服务目的端点的叶交换机为止。

如以下将显示并且表明的,全ft网络具有下列性质:

■当向上路由数据包时,交换机总是在到达给定的目的端点的途中具有两个或更多个可能的路线的选择。另一方面,在向下的方向上,只有在唯一可能的路线上可从给定的交换机到达给定的目的端点。

■在处于级x中的给定的交换机中,从更高级的交换机接收的数据包的源地址唯一地定义了在向上转发该数据包的级(x-1)中的交换机。

本文描述的实施例提供了利用了这些性质的高性能的自适应路由方案。出于清楚的目的,下列的描述将全ft网络简称作ft网络。以下进一步解决准ft和其他网络拓扑结构的一般化。

在一些实施例中,当前的路线是为了从源端点向目的端点转发数据包流而建立的。在一些时间点处,沿着当前路线的向下段的交换机识别到用于转发该流的输出端口上的拥塞,并因此该交换机在当前路线上继续转发该流的数据包的能力受损。

由于拥塞的交换机是全ft网络的向下段的一部分,因此该交换机不能经由不同的端口在本地重路由该流。相反地,拥塞的交换机识别将会重路由该流的可替换的交换机。所识别的交换机(被称作“重路由交换机”)属于ft网络中的下一更低级,并且是当前路线的向上段的一部分。根据以上的ft性质,这个选择保障了重路由交换机具有至少一个可替换的路由选项。此外,针对具体的拥塞的交换机,通过源端点的身份(并且因此通过指定在该流中的数据包中的源地址)来唯一地定义重路由交换机的身份。

通常,拥塞的交换机保持指定每个源端点各自的重路由交换机的数据库。通过采用从该流的数据包中提取的源地址来查询数据库,拥塞的交换机识别重路由交换机。在一些实施例中,为了在相反的方向上路由数据包,在拥塞的交换机中总是存在相同的数据库。在这种实施例中,不需要为了自适应路由的目的而创造并维护数据库。可以为每个源地址添加额外的属性,该属性指定了将要被选择的重路由交换机的地址。

在识别重路由的交换机之后,拥塞的交换机生成并且发送自适应路由通知(arn),其请求重路由交换机重路由该流。arn通常包括单独向重路由交换机寻址的单播数据包。响应于接收到arn,重路由交换机向到达目的端点而不穿过拥塞的交换机的可替换的路线重路由该流。

与其他可能的解决方案不同的是,本文描述的技术不涉及在寻找合适的重路由交换机的尝试中在当前路线的反向路线上逐跳地发送通知或者发送任何多播通知。相反,在公开的实施例中,拥塞的交换机使用其对于网络拓扑结构的知识来选择适当的重路由交换机,并且随后发送向该交换机寻址的单播通知。因此,公开的技术快速而准确,并且几乎不引发流量开销。

系统描述

图1是根据本发明的实施例示意性地示出通信网络20的框图。网络20包括由网络链路28互连的多个网络交换机24。网络20向多个端点32提供连接性和通信服务。

端点32(也被称作主机)可以包括任何合适的通信平台,诸如,服务器、工作站或者个人计算机。网络20可根据任何合适的通信协议(诸如,以太网或无线带宽技术)运行。

交换机24可以包括网络交换机、路由器或者路由或转发数据包的任何其他合适的网络元件。在本专利申请的上下文中以及在权利要求中,术语“交换机”和“网络交换机”指的是任何的这种网络元件。在本文描述的实施例中的大部分实施例(包括图1的示例)中,网络20具有肥树(ft)拓扑结构。在ft拓扑结构中,交换机24被布置在(表示为l0、l1、l2、……的)两个或更多个级中。端点32连接于在(表示为l0的)最低级中的交换机24。这个级被称作叶级。最高级(在本示例中是l2)被称作脊级。

在图1底部处的插图显示了交换机24的内部结构。在这个实施例中,每个交换机24均包括多个端口36、交换结构40、控制单元44和存储器48。端口36连接于各自的网络链路28,并且被配置成向网络发送数据包并且从网络接收数据包(例如,至或者来自邻近的交换机24或者端点32)。结构40被配置成在端口36之间转发数据包。控制单元44被配置成控制并且管理交换机24,包括配置结构40来施加期望的转发操作。存储器48被配置成储存转发表和/或其他相关的信息。

在图1中显示的网络20和交换机24的配置是单纯为了概念上清晰起见而描绘的示例配置。在可选实施例中,可使用任何其他合适的网络和/或交换机的配置。例如,虽然图1显示了三级ft网络,但是公开的技术可在具有任何其他合适数量的级的ft网络中使用。进一步可选地,公开的技术不限于ft网络,并且可以在具有任何合适的拓扑结构的网络中使用。

交换机24的不同元件可使用诸如在专用集成电路(asic)或现场可编程门阵列(fpga)中的任何合适的硬件来实施。存储器48可以包括例如随机访问存储器(ram)或者闪存存储器或者其他合适类型的存储器。在一些实施例中,可使用软件或使用硬件和软件元件的组合来实施交换机24中的一些元件。在本专利申请的上下文中以及在权利要求中,结构40、控制单元44和存储器48被称作执行公开的技术的数据包处理电路。在可选的实施例中,可以以任何其他合适的方式来实施数据包处理电路。

在一些实施例中,交换机24的控制单元44包括通用处理器,通用处理器以软件编程来执行本文描述的功能。软件可以例如以电子形式通过网络被下载到处理器,或者其可以可选地或额外地被提供和/或储存在非暂时性有形介质(诸如,磁存储器、光学存储器或电子存储器)上。

生成单播拥塞通知

在ft网络中,从源端点到目的端点的任何路线均包括“向上”段以及随后的“向下”段。向上段开始于在叶级l0中服务源端点的交换机,并且按照级的次序向上行进(但不必一路到达脊级)。向下段按照级的次序向下行进,直到到达在叶级l0中服务目的端点的叶交换机为止。

例如,设想在图1中加粗显示的从表示为s的源端点32到表示为d的目的端点32的路线。这个路线的向上段穿过了表示为s1、s2和s3的交换机。这个路线的向下段穿过表示为s3、s4和s5的交换机。在图中采用短划线标示的从s到d的另一个可能的路线具有穿过表示为s1、s6和s7的交换机的向上段以及随后的穿过表示为s7、s8和s5的交换机的向下段。

通常,全ft拓扑结构具有下列性质:

■性质i:在向上的方向上,交换机总是在到达给定的目的端点的途中具有两个或更多个可能的路线的选择。另一方面,在向下的方向上,只有在唯一可能的路线上可从给定的交换机到达给定的目的端点。

■性质ii:对于给定的目的端点,由沿着向上段的交换机采取的任何路由决定明确地限定了将要穿过的最高级的交换机以及路线的全部向下段。

■性质iii:对于给定的源端点,以及对于在沿着路线的向下段的级x中的给定的交换机,向上段在低于x的任何级中只可穿过单个可能的交换机。具体来说,对于在沿着向下段的级x中的给定交换机,向上段只可在级x-1中穿过一个可能的交换机。因此,在处于级x中的给定的交换机中,从更高级的交换机接收的数据包的源地址唯一地限定了在向上转发该数据包的级x-1中的交换机。这个性质基于更基本的性质-经由在级x中的指定交换机向下转发的数据包唯一地限定了(对于给定的源地址)数据包经由其被向上转发的在级x中的另一个交换机。对于指定的源地址,为了经由在向上段中的级x处的指定交换机通过,仅存在对于在向上段中的级x-1处的交换机的单个可能的选择。

在本发明的一些实施例中,交换机24执行利用了以上性质的自适应路由方案。设想发源于源端点s并且预定到达目的端点s的数据包流。该流首先沿着具有向上段和向下段的某个路线通过ft网络20进行路由。

在示例实施例中,位于该路线的向下段上的交换机24在其用于向下转发该流的输出端口处遇到拥塞。拥塞阻止该交换机继续在当前的线路上转发该流的数据包。由于所讨论的交换机在向下段上,因此该交换机不能选择到达相同目的端点的可替换的路线(见以上的性质i)。

为了从这种情况恢复,交换机沿着当前路线选择可替换的交换机,并且请求可替换的交换机重路由该流。在下列的描述中,前面的交换机被称作拥塞交换机,并且后面的交换机被称作重路由交换机。

由于以上的性质i,重路由交换机应当位于当前路线的向上段上,使得重路由交换机将具有至少一个可替换的路由选项。在实施例中,拥塞交换机在ft网络的级x上。拥塞交换机选择位于当前路线的向上段上的级(x-1)中的交换机充当重路由交换机。根据以上的性质iii,在级(x-1)中只有单个交换机位于当前路线的向上段上,并且对于给定的拥塞交换机,这个重路由交换机的身份由源端点的身份(并且因此由在该流中的数据包的源地址)唯一地限定。

在一些实施例中,每个交换机24保持数据库或者任何其他合适的数据结构,其为每个源地址记录在下一更低级中将要充当重路由交换机的交换机的身份。数据库通常被储存在交换机的存储器48中。注意,给定的源地址在不同交换机的数据库中可被映射到不同的重路由交换机。然而,在给定的交换机中,每个源地址被映射到唯一的各自的重路由交换机。

每个交换机24均可以使用任何合适的技术以用于构建数据库,即,用于获得在每个源地址和在下一更低级中的各自的重路由交换机之间的映射。在一个实施例中,总是在交换机中存在这个映射–它是用于在对这个端点的相反方向上转发数据包的相同的映射。可选地,数据库可被预编程到每个交换机中,或者数据库可以在操作期间自适应地学习。在一些实施例中,在网络20中使用的寻址方案是基于位置的,在这种情况下,数据库24可被简化。

因此,当出现对于重路由流的需求的时候,拥塞交换机采用该流的源地址来查询它的数据库,并且检索重路由交换机的身份(例如,地址)。拥塞交换机随后生成被称作“自适应路由通知(arn)”、“拥塞通知”或者简称为“通知”的通知数据包。arn包括单独向由拥塞交换机选择的指定重路由交换机寻址的单播数据包。

拥塞交换机向重路由交换机发送arn。重路由交换机接收到arn,并且作为响应可以向到达目的端点而不穿过拥塞交换机的可替换的路线重路由该流。注意,由于arn被明确寻址到重路由交换机,因此arn可以在任何期望的路线上而不必在该流的路线的反向路线上被转发到重路由交换机。

例如,参考图1,设想其中(在加粗标示的从s到d的当前路线的向下段上的)交换机s4是拥塞交换机的场景。交换机s4在级l1中,因此重路由交换机是级l0中的交换机之一。根据在交换机s4中的数据库,重路由交换机必然是交换机s1。因此,交换机s4向交换机s1发送arn。作为响应,交换机s1向(以短划线显示的)到达端点d但不穿过拥塞交换机s4的可替换的路线重路由该流。

图2是根据本发明的实施例示意性示出用于在ft网络20中转发arn的方法的流程图。该方法在数据包接收步骤60处开始于在ft网络20的级x处的交换机24接收来自级(x+1)的某个流的数据包。数据包发源于源端点s,并且数据包在到达目的端点s途中被向下转发到级(x-1)。

在拥塞检查步骤64处,交换机检查在被指派用于转发该流的数据包的出口端口处的拥塞。如果不存在拥塞,则该方法环回到以上的步骤60。

如果检测到拥塞,则拥塞交换机在重路由识别步骤68处查询其数据库,以识别在级(x-1)中的适当的重路由交换机。在通知步骤72处,拥塞交换机生成并发送单独向所识别的重路由交换机寻址的单播arn。接着,重路由交换机接收arn并且重路由该流。

在以上的示例中,在ft网络的级x中的拥塞交换机在级(x-1)中选择重路由交换机。在可选实施例中,在级x中的拥塞交换机可以在比x更低的任何级中(例如,在级(x-2)或(x-3)中(如果这些级存在的话))选择重路由交换机。后面的对于重路由交换机的选择也将导致不穿过拥塞交换机而是可以重路由起初不穿过拥塞交换机的一些额外的流量的路线。

以上的示例主要指的是在下游段中的拥塞交换机。在可选实施例中,也可以在作为上游段的一部分但是然而不能在本地重路由流量的交换机中执行公开的技术。例如,在这样的交换机中,通向可能的可替换路线的所有可能的出口端口可能均拥塞。例如,在交换机的上游端口(连接于上级交换机的端口)上的聚合带宽可能小于在下游端口(连接于下级交换机的端口)上的聚合带宽。这个场景有时被称作超额订阅。在这样的实施例中,在意识到网络拓扑结构之后,拥塞交换机可以选择在向上段中先前的交换机作为重路由交换机,并向该交换机发送单播arn。

如以上注意到的,公开的技术不限于全ft网络。例如,在一些实施例中,公开的技术是在准ft网络中实施的。不同于全ft网络,在准ft网络中,在路线的向下段中的交换机在当前出口端口拥塞的情况下可以具有一个或多个用于重路由的选项。在这种情况下,术语“拥塞”或者“转发数据包的受损能力”指的是在所有可能的出口端口上的拥塞或者受损能力。此外,在准ft网络中,对于给定的拥塞交换机和给定的源地址,可以存在两个或更多个重路由交换机。因此,在一些实施例中,拥塞交换机识别两个或者更多个重路由交换机,并且向在该两个或者更多个重路由交换机中的每个重路由交换机发送各自的单播arn。

在一些实施例中,源端点s例如使用端点的多端口网络接口控制器(nic)的不同端口连接于在级l0中的两个或者更多个叶交换机。这种配置有时被称作多机箱链路聚合(mlag)。当使用mlag时,发源于源端点的数据包可以经由两个或更多个不同的交换机进入网络20,并且因此穿过两个或更多个不同的路线到达目的端点d。因此,在这些实施例中,拥塞交换机识别两个或更多个重路由交换机(在从s到d的两个或更多个当前路线中的每个路线均有一个重路由交换机),并且向重路由交换机中的每个交换机发送arn。

虽然本文描述的实施例主要指的是拥塞控制,但是公开的技术也可用于消除诸如端口故障或者链路故障的故障。在当前上下文中,拥塞与故障在本文中均被称作交换机将数据包转发到目的端点“受损的能力”。一旦检测到转发数据包的能力受损,交换机就可以将公开的技术用于识别重路由交换机并且向重路由交换机发送单播arn。

将认识到,以上描述的实施例是通过示例的方式引用的,并且本发明不限于上文中已经具体显示和描述的那些实施例。相反,本发明的范围包括上文所描述的各种特征的组合及子组合以及本领域技术人员在阅读以上描述之后将想到的且在现有技术中未公开的其变型和修改。通过引用并入本专利申请中的文档被视为本申请的组成部分,除了在这些并入的文档中定义的任何术语与本说明书中明确地或隐含地作出的定义冲突时,仅应考虑本说明书中的定义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1