掌桥专利:专业的专利平台
掌桥专利
首页

用于在网络中分发封包的系统和方法

文献发布时间:2023-06-19 09:33:52


用于在网络中分发封包的系统和方法

技术领域

本发明涉及通过网络分发数据封包的系统和方法,具体是通过具有多个可聚合链路的网络,例如,在无线电网络中。

背景技术

在计算机网络的上下文中,链路聚合(link aggregation)是将多条链路组合并将它们作为单个链路呈现给外部世界的实践。与使用单个非聚合链路相比,这可以提高容量和可靠性。

图1示出了使用链路聚合的网络。具有分发器10,其通过多条链路与收集器12相连:链路0、链路1、…、链路n。分发器10接收数据封包,并根据某种平衡机制在各种链路之间将数据封包分割。收集器12从各种链路接收封包,可选地对封包进行重新排序,并将它们传送到网络的下一部分,例如,网络堆栈的上层。

与链路聚合相关的容量和可靠性改进的清晰量化,取决于所采用的机制及其配置方式。简单地,直觉显示,聚合链路的容量可能与每个单独链路的容量总和一样大。得益于这样一个事实,即我们不再处于单个链路故障足以导致通信中断的情况,可靠性也提高。由N条简单链路组成的聚合链路可能在通信中断前经受住N-1次同时发生的故障,尽管会带来容量损失。

一个挑战是确定如何在各种链路之间分发数据封包。这个问题的一些实例具有已知的解决方案。例如,当每个链路的容量已知时,分发器10可以简单地分割业务量,使得每个链路获得与其在总容量中的份额成比例的业务量。例如,假定具有容量C={c

在已知解决方案的另一变型中,每个链路都有一个队列,其占用率是已知的。然后分发器10可以简单地通过队列占用率最低的链路转发给定的封包。

作为另一解决方案的示例,US2011/0116443A1描述了具有一组发送无线电装置和一组接收装置的无线电网络的示例。存在一种负载平衡无线电装置,该装置从起始网络接收数据封包,并用顺序号标记数据封包。然后,基于发送无线电装置的相对容量和状态,在发送数据封包中分发标记的数据封包。US2017/0170981描述了通过响应于带宽能力的变化调整隧道带宽加权方案来增加无线通信吞吐量的方法。US2016/0261507描述了用于控制和管理流的方法,该方法将流管理空间分类为多个空间,并且由于控制业务处理开销而可变地调整流管理空间。US9762495描述了通过确定每个链路的权重并将较低权重与降级链路相关联来调整多个通信链路之间的网络业务平衡的方法。US2002/0161925描述了用于与负载平衡器进行安全通信的敏捷网络协议。通常,在现有技术文献中,每个链路的容量和/或延迟是可获得的,例如,在US2017/0170981中,会生成心跳封包来监控隧道性能。

申请人已经认识到需要一种当很少或没有关于每个链路的信息(包括其容量、状态和/或延迟)时能够分发封包的方法和系统。

发明内容

根据本发明,提供了所附权利要求中阐述的设备和方法。从从属权利要求和随后的描述中,本发明的其他特征将变得显而易见。

因此,我们描述了通过包括多个节点和连接每对节点的多个链路的网络分发数据封包的方法,方法包括:在第一节点从第二节点接收至少一个数据封包,其中,第一节点经由第一多个链路连接到第二节点;确定由第二节点应用以在第一多个链路上分发数据封包的当前权重集,其中,当前权重集包括第一多个链路中的每个链路的当前权重;分析在第一节点从第二节点接收的至少一个数据封包,以确定是否要调整当前权重集;并且当确定要调整当前权重集时,通过确定要应用于第一多个链路中的选定链路的当前权重的调整因子,生成调整后的权重集;并且将调整因子应用于选定链路的当前权重和当前权重集中的至少一个其他当前权重。

多个链路可以被称为聚合链路,并且可以是双向的,例如,一旦确定了调整后的权重;该方法还可以包括向第二节点发送调整后的权重。然后这些调整后的权重可以如下所述用于从第二节点向第一节点发送后续数据封包。可以在第一节点的收集器处接收和分析该至少一个数据封包,并且可以从第一节点的分发器发送。调整后的权重集可被视为反馈,因为它指定了如何在链路上分发后续业务量。以这种方式,聚合链路的双向特性可以用于将反馈从第一节点传送到第二节点(对于另一方向,反之亦然)。

应用调整因子可以包括以下中的一个:将调整因子添加到选定链路的当前权重,以增加在选定链路上分发的业务量,或者从选定链路的当前权重中减去调整因子,以减少在选定链路上分发的业务量。换言之,可以应用正调整因子来增加业务量,并且可以应用负调整因子来减少特定链路上的业务量。

例如,在有N个链路的情况下,当前权重集可以被定义为W

W

并且调整后的权重集可以被定义为:

调整因子可以应用于当前权重集中的多个权重,使得与权重的当前值成比例地调整调整后的权重。通过与其原始值成比例地调整权重,可以更快地收敛到一个解。例如,当调整因子被添加到选定链路的当前权重时,调整因子可以被应用到多个权重,以从具有较高权重的链路传输更多的业务,反之亦然,当从选定链路的当前权重中减去调整因子时,调整因子可以被应用到多个权重,以向具有较高权重的链路传输更多的业务。这可以表示为:

其中,

乘以调整因子的比率(即,w

或者,调整因子可以仅应用于当前权重集中的一个其他权重。调整后的权重集中的剩余权重可以具有与当前权重集相同的值。通过这种方式,可以在选定链路及其配对链路之间传输业务。为了平衡业务负载,当调整因子被添加到选定链路的当前权重时,从另一权重中减去调整因子,从而将权重从配对链路传输到选定链路,并且当从选定链路的当前权重中减去调整因子时,将调整因子添加到另一权重中,从而将权重从选定链路传输到配对链路。这可以表示为:

其中,

确定当前权重集可以包括:从附接到至少一个数据封包的报头中读取当前权重集,例如,通过背载在数据封包上。以这种方式,不需要像现有技术(例如,US2017/0170981)中那样创建新封包(例如,心跳封包)来获得关于链路延迟的信息或监控封包丢失。在关于链路的信息不可用的情况下,例如,因为不可以生成心跳封包,问题域可以被认为不同于可以获得或可获得链路信息的现有技术文档。报头可以包括额外信息,包括一组每链路序列号、全局序列号、前一链路字段和时间戳中的一些或全部。该组每链路序列号可以包括每个链路i的序列号s

分析至少一个数据封包可以包括:分析一个或多个逻辑块,这些逻辑块可以驻留在收集器中,并且可以包括封包丢失控制逻辑和无损控制逻辑。可以在封包丢失控制逻辑之前应用无损控制逻辑,由此可以使用无损控制逻辑在多个链路上实现封包分布的平衡。无损控制逻辑可用于从队列累积推断拥塞,即,当链路超额预订时,发送端的封包队列开始增长。这些较长的队列会导致延迟增加,并且这可以由无损控制逻辑检测到,以在任何封包丢失发生之前更新权重。

因此,分析至少一个数据封包可以包括:使用封包丢失控制逻辑,并确定当存在封包丢失时将调整当前权重集。这种逻辑可以使用封包丢失事件来推断给定链路上的拥塞,从而可以将业务从这种链路上引导开。即,如果给定的封包或一组封包在给定链路上丢失,则可以推断所讨论链路被超额预订的概率很高,即,队列已满。因此,封包丢失控制逻辑会将业务从检测到封包丢失的链路上引导开。

可以通过比较在同一链路上接收的两个数据封包中的每一个的每链路序列号,来完成使用封包丢失控制逻辑的分析。例如,分析至少一个数据封包可以包括:确定在哪个链路上接收至少一个数据封包,获得所确定链路的第一每链路序列号;存储所确定的每链路序列号;确定在与所确定链路相同的链路上接收到第二数据封包的时间;获得第二数据封包的第二每链路序列号;并且通过比较第一每链路序列号和第二每链路序列号来确定是否存在封包丢失。比较可以包括确定第一每链路序列号和第二每链路序列号之间的差值,并且当该差值小于封包丢失阈值(例如,1)时,确定没有封包丢失。当差值大于封包丢失阈值时,可以确定存在封包丢失。如上所述,可以从报头中读取每链路序列号中的每个。因此换言之,数据封包丢失检测使用分发器添加到每个数据封包的每链路序列号字段。当存在封包丢失时,可以在上面的等式中应用负调整因子,例如:

a=-P

P

其中,P

分析至少一个数据封包可以包括:使用无损控制逻辑进行分析,并且当多个链路中的链路的延迟增加时,确定要调整当前权重集。换言之,无损控制逻辑可以跟踪每个链路的延迟的代理,并且如果延迟增加,则可以推断队列中的封包数量逐渐增加,这是超额预订的表现。无损控制逻辑可以基于时间戳或基于全局序列。

可以通过对在同一链路上接收的两个数据封包中的每一个使用远程时间戳和本地时间戳来计算延迟差异,来完成这种基于时间戳的无损控制逻辑分析,其中,远程时间戳表示发送每个数据封包的时间,本地时间戳表示接收每个数据封包的时间,以及延迟差异表示链路上的延迟。例如,分析至少一个数据封包可以包括:确定在哪个链路上接收到第一数据封包,获得第一数据封包的第一时间戳,该第一时间戳指示从第二节点发送数据封包的时间;获得第一数据封包的第二时间戳,该第二时间戳指示在第一节点接收第一数据封包的时间;确定在与第一数据封包相同的链路上接收第二数据封包的时间;获得第二数据封包的第三时间戳,该第三时间戳指示从第二节点发送第二数据封包的时间;获得第二数据封包的第四时间戳,该第四时间戳指示在第一节点接收第二数据封包的时间;并且使用第一时间戳、第二时间戳、第三时间戳和第四时间戳计算延迟差异值,该延迟差异值表示接收第一数据封包和第二数据封包的链路上的延迟。

确定要调整当前权重集可以包括:将延迟差异值与延迟增长阈值进行比较。当延迟差异值大于延迟增长阈值时,可以确定要调整权重。如上所述,可以从报头中读取第一时间戳和第三时间戳中的每一个。可以从第一节点中的时钟获得第二时间戳和第四时间戳。当存在延迟时,可以在上面的等式中应用负调整因子,例如:

a=-P

P

其中,P

时间戳可用于检测单向延迟增加。延迟差异值表示延迟,但不等于实际延迟。延迟差异值可以是延迟增长,即,延迟的导数。这是有利的,因为它可以使用单向业务来计算,而不需要任何类型的同步机制。例如,计算延迟差异值可以包括:通过从第二时间戳中减去第一时间戳来计算第一延迟值;通过从第四时间戳中减去第三时间戳来计算第二延迟值;并且通过从第二延迟值中减去第一延迟值来计算延迟差异值,即,通过计算:

λ

其中,λ

λ

λ

其中,α

无论是否调整权重,然后可以针对随后接收的数据封包重复确定步骤、计算步骤和获得步骤。

该方法还可以包括存储一组延迟值,该组延迟值包括每个链路的最近计算的延迟值。类似地,该方法还可以包括存储一组延迟差异值,该组延迟差异值包括每个链路的最近计算的延迟差异值。

时间戳可以是可选的,因此作为替代,无损控制逻辑还可以使用全局序列号来确定是否存在任何延迟。相反,这种全局序列号可以在发送之前被添加到每个封包,例如,通过分发器。使用这种全局序列无损控制逻辑的分析可以包括:计算在一对链路上在阈值时间内接收的第一对数据封包、和在同一对链路上在阈值时间内接收的第二对数据封包之间的差异增长值。计算差异增长值可以包括:计算第一对数据封包的第一全局序列差异值;计算第二对数据封包的第二全局序列差异值;并且通过从第二全局序列差异值中减去第一全局序列差异值来计算差异增长值。例如,可以设置阈值时间,使得在链路i和链路j上快速连续地接收该对封包。

分析(例如,通过收集器)可以包括:查看在每个链路上接收的封包的全局序列号,并注意两个号码之间的差异。如果这种差异随着时间的推移而增加,则可以推断一个链路可能被超额预订,更具体地,具有较小全局序列号的链路可能被超额预订,因此引导开业务。例如,分析至少一个数据封包可以包括:获得第一对数据封包中的第一数据封包的第一全局序列号;获得第一对数据封包中的第二数据封包的第二全局序列号;获得第二对数据封包中的第一数据封包的第三全局序列号;获得第二对数据封包中的第二数据封包的第四全局序列号;使用第一全局序列号、第二全局序列号、第三全局序列号和第四全局序列号计算差异增长值,该差异增长值表示接收第一对数据封包和第二对数据封包的链路上的延迟。

例如,可以通过从第二全局序列号中减去第一全局序列号来计算第一全局序列差异值;并且可以通过从第四全局序列号中减去第三全局序列号来计算第二全局序列差异值;并且可以通过例如从第二全局序列差异值中减去第一全局序列差异值来计算差异增长值。通过计算:

Δ

其中,Δ

Δg

Δg

其中,g

在该示例中,响应于通过确定第一对封包中的两个数据封包的接收时间之间的差值低于阈值时间,来确定已经在阈值时间内接收第一对封包,可以获得第一全局序列号和第二全局序列号。类似地,响应于通过确定第二对封包中的两个数据封包的接收时间之间的差值低于阈值时间,来确定已经在阈值时间内接收第二对封包,可以获得第三全局序列号和第四全局序列号。可以从接收到的数据封包的报头中读取全局序列号。

在另一示例中,可以通过从第一对封包中的第一数据封包的接收时间中减去第一对封包中的第二数据封包的接收时间,来计算第一全局序列差异值;并且可以通过从第二对封包中的第一数据封包的接收时间中减去第二对封包中的第二数据封包的接收时间,来计算第二全局序列差异值。然后可以通过例如从第二全局序列差异值中减去第一全局序列差异值来计算差异增长值,例如,通过计算:

Δ

其中,Δ

Δg

Δg

其中,α

响应于确定用标志接收第一对封包中的第二数据封包,可以获得第一全局序列号和第二全局序列号,该标志指示在第一对封包中的第一数据封包的阈值时间内发送第二数据封包。类似地,响应于确定用标志接收第二对封包中的第二数据封包,可以获得第三全局序列号和第四全局序列号,该标志指示在第二对封包中的第一数据封包的阈值时间内发送第二数据封包。当确定存在标志时,该方法可以还包括使用第一全局序列号、第二全局序列号、第三全局序列号和第四全局序列号来识别第一对数据封包和第二对数据封包。例如,当存在标志时,该方法可以包括获得第二数据封包的全局序列号,并通过在存储器(例如,表格)中搜索具有比第二数据封包的全局序列号小1的全局序列号的数据封包,来识别第一数据封包。类似地,该方法可以包括获得第四数据封包的全局序列号,并通过在存储器(例如,表格)中搜索具有比第四数据封包的全局序列号小1的全局序列号的数据封包,来识别第三数据封包。该方法还可以包括确定在与第一数据封包和第二数据封包相同的一对链路上发送第三数据封包和第四数据封包,如果不是,则拒绝它们。因此,以这种方式,可以使用第一全局序列号、第二全局序列号、第三全局序列号和第四全局序列号来计算差异增长值。

在两个示例中,可以根据接收封包的节点的时钟来确定接收时间。阈值时间可以很小,以指示快速连续接收该对封包。因此差异增长值可以表示接收第一对数据封包和第二对数据封包的链路上的延迟,并且可以使用数据封包的全局序列号来计算。

无论是否调整权重,然后可以针对链路对上随后接收的数据封包对重复计算步骤和获得步骤。该方法还可以包括存储包括每对链路的最近计算的全局序列差异值的一组全局序列差异值。类似地,该方法可以包括存储包括每对链路的最近计算的差异增长值的一组差异增长值。该组全局序列差异值和该组差异增长值中的一者可以存储在有向图表中。可以使用接收到的数据封包的封包速率来调整该差异增长值或每个差异增长值,并且可以在存储之前进行该调整。

确定是否要调整当前权重集可以包括:将差异增长值与差异阈值进行比较。当差异增长值的幅度大于差异阈值的幅度时,该方法可以包括应用无损调整因子作为调整因子,来改变该对链路的权重。例如,如果增长值高于差异阈值,则业务可以从第二链路转向该对链路中的第一链路。如果增长低于负形式的差异阈值,则可以将业务从第一链路转向第二链路。如果增长接近于零,则可能不会采取任何措施。在这个示例中,可以不使用全权重调整机构,因为只有与一对链路i和链路j相关联的权重被改变。调整后的权重集可定义为:

为了将业务从链路j转向链路i,可以通过将调整因子P

a=P

P

分析至少一个数据封包可以包括:确定网络中的链路不正常运行的时间;并且当确定链路不运行时,生成调整后的权重集,以通过调整因子来调整不运行链路的权重。确定链路不运行可以包括:确定在同一链路上接收一对封包之间经过的时间大于阈值;响应于该确定,在倒计时内监控同一链路上接收的封包;并且当在倒计时内没有接收到数据封包时,确定链路不正常运行。在上述公式中,调整因子可以是负调整因子a,其可以是当前权重或平均权重的最小值,即:

或者,该方法可以包括通过以下确定链路不运行:确定该权重集中的权重为零;响应于该确定,开始倒计时;并且一旦倒计时达到零,则与该权重集中的最低权重成比例地增加零权重链路的权重。在上述公式中,调整因子可以是负调整因子a,定义如下:

a=γ·min(W)

其中,γ是常数。

即使当每个链路的容量未知、时变和/或可能不对称时,也可以执行上述每个分析步骤。类似地,当延迟未知、时变和/或可能不对称时,可以应用分析步骤。也可能不知道队列占用率和/或上下状态。这样一组约束在面向封包的网络中是常见的,因此上述方法特别有用。

我们还描述了包括多个节点的网络中的第一节点中的收集器,其中,收集器被配置为执行上述方法的步骤。

我们还描述了在包括多个节点的网络中的第二节点中的分发器,该分发器包括处理器,该处理器被配置为:当向收集器发送至少一个数据封包时,应用当前权重集;从收集器接收调整后的权重集;并且向收集器发送后续数据封包时,应用调整后的权重集。处理器还可以被配置为在发送数据封包之前向数据封包添加报头,其中,报头包括多个报头值,多个报头值包括全局序列号、一组每链路序列号、前一链路字段和时间戳中的至少一项。处理器还可以被配置为在重置阶段重置每个报头值,并且随后在发送数据封包时更新每个报头值。

不管链路的具体性质如何,都可以应用上述链路聚合机制。因此,它可以应用于封包化网络上的链路聚合领域,例如,不同无线协议上的聚合(例如,LTE和Wi-Fi;Wi-Fi_33和WiGig)、相同无线协议的多个信道的聚合(例如,多个Wi-Fi_33连接)、无线和有线之间的混合聚合(例如,Wi-Fi+WiGig+以太网)、多种有线协议的链路聚合(例如,DOCSIS+ADSL;多个ADSL连接;多个以太网连接)和传输层的聚合。上述分发器和收集器可以位于无线电控制器和/或远程终端中。

根据本发明的另一方面,还提供了一种计算机可读介质,即,能够存储可由计算机系统读取的数据的任何存储装置,用于存储计算机程序,当该计算机程序在计算机系统(包括分发器和/或收集器)上实现时,促使执行上述方法的步骤。计算机可读介质的示例包括硬盘驱动器、只读存储器、随机存取存储器、光盘、CD-ROM、数字多功能盘、磁带、其他非暂时性装置和其他非光学存储装置。计算机可读介质也可以分布在网络耦合系统上,使得以分布式方式存储和执行计算机程序代码。计算机可读介质优选地是非暂时性的。

虽然已经示出和描述了本发明的几个优选实施例,但是本领域技术人员将会理解,在不脱离所附权利要求中限定的本发明的范围的情况下,可以进行各种改变和修改。

附图说明

为了更好地理解本发明,并示出如何实施本发明的实施例,现在将仅通过示例的方式参考附图,其中:

图1是网络中链路聚合的示意图;

图2a是根据一个实施例的用于链路聚合的网络的示意图;

图2b是示出在图2a的网络中执行的步骤的流程图;

图2c是作为图2b的方法的一部分的权重调整机构的示意图;

图3a是包括在通过网络传送的封包中的示例报头;

图3b是示出由图2a的网络内的分发器执行的步骤的流程图;

图4a是图2a的网络内的链路的示意模型;

图4b是在封包丢失控制逻辑的一个示例中由收集器执行的步骤的流程图;

图5a是在无损控制逻辑的一个示例中由收集器执行的步骤的流程图;

图5b是时钟读数相对于时间的曲线图;

图5c是分发器和收集器之间的时间延迟的图示;

图6a是在无损控制逻辑的第二示例中由收集器执行的步骤的流程图;

图6b是快速连续到达的两对封包的图示;

图6c和图6d是用于存储可以在图6a的方法中使用的信息的曲线图;

图7a是包含在通过网络传送的封包中的替代报头;

图7b是在图6a所示的方法的替代部分中由收集器执行的步骤的流程图;

图7c是在图7b的方法中使用的一对封包的时间的图示;

图8a是由收集器执行的用于确定是否存在死链路的步骤的流程图;

图8b是在图8a的方法中使用的一对封包的时间的图示;

图9a和图9b分别是分发器和收集器内部件的示意图;以及

图9c是可以包含所述分发器和收集器的系统的示意图。

具体实施方式

图2a示出了根据一个实施例的包含链路聚合的计算机网络。为简单起见,仅示出了一对节点20、30,但是应当理解,网络可以包括更多这样的节点。这些节点中的每一个可以位于不同的物理位置,因此可以被称为彼此远离。第一节点20(标记为节点A)包括第一分发器22和第一收集器24。第二节点20(标记为节点B)包括第二分发器32和第二收集器34。第一分发器22可以被认为在第一收集器24的本地,即,它们位于相同的位置,但是可以被认为远离第二收集器34。类似地,第二分发器32可以被认为在第二收集器34的本地,但是可以被认为远离第一收集器24。

节点20、30经由双向链路连接,以允许两个节点发送和接收封包。双向链路包括从第一节点20中的分发器22到第二节点30中的收集器34的第一多个链路、以及从第二节点30中的分发器32到第一节点30中的收集器24的第二多个链路。第一多个链路和第二多个链路可以具有相同数量的链路。当一个节点正在发送封包时,它可以被称为发送端,因为它向接收封包的另一节点发送封包,因此该另一节点可以被称为接收端。双向业务的存在是有用的,因为它还允许反馈从接收端传送到发送端,即,从节点B的收集器传送到节点A的分发器,同样,从节点A的收集器传送到节点B的分发器。

图2b是当节点A向节点B发送封包时,节点A和节点B之间的通信的流程图。第一步骤S100是节点A的分发器22向节点B的收集器34发送封包。根据一组权重W

W

类似地,对于第二多个链路也存在一组独立的权重W

W

权重指定了应该如何在各种链路上分发业务。权重之和等于常数值C

作为一个示例,可能存在四个权重,并且C

如果给定链路i上的业务由t

初始或默认的权重集可以在每条链路上平均分发业务。因此:

一旦节点B的收集器34接收到输入业务,则在步骤S102中对其进行分析。该分析包括封包丢失控制逻辑、无损控制逻辑和死链路检测机制中的至少一项,这将在下面更详细地描述。该分析允许在步骤S104确定调整后的权重集

在上面的等式中,假设除了链路i之外,具有至少一个非死链路。如果不是这样,则权重调整机构将不会采取任何措施,因为没有链路来传输权重。

图2c示出了上述等式的实现的示例。直观地说,上面的等式如下工作:从链路i中移除一定量的权重a,并在其他链路之间与其原始权重成比例地重新分发该权重。如图2c所示,当重新分发时,上述等式将不会向死链路传输权重,即具有0权重的链路,例如,链路2,将在后面描述使死链路复活的方法。在该示例中,三个权重块被示为从链路0传输,但是如果权重被传输到链路0,则该机制将以类似的方式工作,只有箭头的方向会改变。

如图所示,当从给定链路i传输权重时,或者当在给定链路i上施加更多权重时,权重分发机制满足以下特性:每个剩余链路j(j≠i)从绝对值来看随着w

使用这种比例调整权重可以使得更快地收敛到解,其中,计算的权重(按比例)是对每个链路容量的良好估计,因此系统中的封包丢失和延迟最小化或不存在。如果向链路1和链路3中的每一个传输相等的量,则需要传输较小的量,以确保不超过链路的容量,因此收敛可能需要更长的时间。

上面的等式满足与权重的现有值成比例地改变权重的特点,但是技术人员将会理解,存在许多其他方法来满足。例如,至少在第一近似下,以满足该特点的方式分发权重的任何链路聚合机制都是可预期的,即使并不总是满足该特点,而是以高概率满足。

返回图2b,然后收集器34将调整后的权重集

节点A的收集器24接收调整后的权重集

当封包到达时,如果计时器处于非活动状态(因为这是第一个封包,或者因为之前已经发射),则收集器将查看链路聚合报头的反馈部分,提取它刚刚接收到的权重集

收集器还可以检查权重更新是否是新的(即,调整后的权重集

然后收集器22将在分发后续封包时(步骤S112)使用更新的权重集

应当理解,镜像方法可以用于更新由节点B的分发器32使用的权重集W

分发器

在发送封包之前,分发器可以被配置为将一些额外的数据背载到封包上。数据插入的确切位置取决于底层的性质。在图3a所示的一个示例中,该数据的前面只是一个额外的报头。该报头可以包括每链路序列号40、全局序列号42、前一链路字段44、时间戳46(如下面更详细解释的,这是可用的)以及另一分发器应该使用的权重48(例如,如关于步骤S108所述)。例如,包含权重的字段可以使用每权重1个字节。

每个分发器都有一组每链路序列号S={s

用于每链路序列号的位数可能很低,可能只有一位,但更通常是三位,而更多的位(通常是十八位)用于全局序列号。决定位数很重要,因为在漏报率和报头大小之间存在折衷。例如,对于每链路序列号,如果使用了两个位并且丢失了四个封包,则每链路序列号将循环每链路序列号,并且封包丢失控制逻辑将不会认为这是封包丢失事件,从而导致误报。合理的折衷用三个位来表示。对于全局序列号,决定位数并不简单,并且需要考虑诸如最大封包速率、最大延迟和接收比较的全局序列号的时间窗口的因素,因为确保全局序列号周围的逻辑正确处理整数溢出很重要。

前一链路字段44识别哪个链路发送了前一封包,并且如下所述,由死链路检测机制使用。作为一个示例,两位信息可用于该字段。在一些实施例中,分发器将向发送的每个封包添加时间戳46。更具体地,分发器具有本地时钟C

图3b示出了可以在分发器处执行的包括该额外信息的步骤。在过程开始时,例如,在一天开始时,存在重置阶段,在该阶段,由分发器插入的一些或所有额外信息被重置为默认值。每个序列的每链路序列号被设置为一个基值,例如,0(S200),并且全局序列号被设置为基值,例如,0(S202)。前一链路字段被设置为基值,以指示没有发送前一封包(S204)。在使用时间戳的情况下,时钟可以被设置为基值,例如,0(S206)。注意,下面描述的逻辑不需要频率精度要求,因此可以省去时钟的同步机制。权重也被重置为默认值,例如,

W

W

下一步骤是通过附加默认值的链路发送封包(S210)。因此,当通过链路i发送封包时,每链路序列号s

然后,分发器通过相同或不同的链路发送下一个封包(S216)。更新后的信息附到数据封包中。作为示例,如果通过链路j发送封包,则每链路序列号s

如箭头所示,下一步骤是返回到每链路序列号和全局序列号的更新(S212)。例如,如果通过链路j发送封包,则每链路序列号更新为s

如果发送两个封包之间的时间大于被称为最新阈值的预定阈值,则前一链路字段的标识符可以被重置为基值,以指示没有发送前一封包,如S204中所述。最新阈值的值可以是可配置的,但是作为示例,也可以设置为0.5ms(例如,作为默认值)。

如上所述,在收集器处确定调整后的权重集

封包丢失控制逻辑使用封包丢失事件来推断给定链路上的拥塞。即,如果在给定链路上丢失给定的封包或一组封包,则推断出存在所讨论的链路被超额预订的概率,即,队列已满。在这种情况下,封包丢失控制逻辑旨在将业务从检测到封包丢失的链路上引导开。

如下面更详细解释的,无损控制逻辑跟踪每个链路的延迟代理。如果延迟增加,则推断队列中的数据封包数量正在逐渐增加。这可以是超额预订的表现,并且因此无损控制逻辑旨在将业务从检测到延迟增加的链路上引导开。理想情况下,无损控制逻辑将在封包丢失控制逻辑之前启动,并且将实现多条链路上的无损平衡。

封包丢失控制逻辑

图4b示出了可以由收集器执行以实现封包丢失控制逻辑的步骤。图4b示出了与单个链路i相关的步骤,但是应当理解,由跟踪在每个链路S={s

另一方面,如果它们不同,则至少一个封包已经丢失,然后可以使用上面概述的权重调整机制将业务从该链路引导开。因此,可以使用上面的等式来定义调整后的权重集,即:

其中,a是负调整,并且可以通过将调整因子P

a=-P

P

例如,合适的值是0.05。

一旦调整了权重,该方法重复步骤S402至S408。本发明的一个更复杂的实施例可以在这个阶段使用PID控制器。

基于时间戳的无损控制逻辑

图5a至图5c示出了第一方法,该方法可以由收集器执行,以实现无损控制逻辑。在这种方法中,时间戳出现在聚合报头上。在图5a所示的可选复位步骤中,本地时钟计数器C

图5b示出了远端(远程)分发器时钟C

返回图5a,下一个步骤S502是在收集器处从链路i上的远程分发器接收封包i。如上所述,当给定的封包i离开分发器时,分发器确定分发器C

如图5c所示,通过链路i发送封包会增加未知的延迟δ

α

然而,已知,γ

α

返回图5a,下一步骤将α

λ

λ的两个值可以用两个未知数k和δ

λ

即,通过λ

下一步骤是将延迟差异与阈值进行比较,该阈值可称为延迟增长阈值。该阈值可以是可配置的,但是合适的示例值是0.4ms。如果该值低于阈值,则逻辑除了返回到步骤S510以在接收到后续封包时重复该方法之外,将不采取任何动作。

另一方面,如果当前值高于延迟增长阈值,则可以使用上面概述的权重调整机制从该链路引导开业务。因此,调整后的权重集可以定义为:

其中,a是负调整,并且可以通过将调整因子P

a=-P

P

例如,合适的值是0.01。

一旦已经调整了权重,该方法返回到步骤S510,以等待后续封包。本发明的更复杂的实施例可以在该阶段使用PID控制器。

应当理解,该方法仅针对单个链路进行了详细描述,但适用于所有链路。因此,收集器可以保持集合,∧={λ

基于全局序列的无损控制逻辑

图6a至图6d示出了可以由收集器执行的第二种方法,以实现无损控制逻辑。在这种方法中,聚合报头上不存在时间戳,而是使用全局序列号,如下所述。

图6a示出第一步骤S600是识别在一对链路(即链路i和链路j)上快速连续接收的一对封包。快速连续的确切性质将取决于应用,但是作为示例,应该在彼此的阈值内(例如,0.01ms)接收该对封包。应当理解,这个数字仅仅是说明性的。在图6b中示出这种封包对的一个示例。链路i上的封包以全局序列号gi到达,并且链路j上的封包以全局序列号g

Δg=g

注意,如果Δg>0,则与链路i相关联的延迟可能大于与链路j相关联的延迟(例如,如果g

全局序列号差异与延迟差异成正比。然而,尽管延迟差异是解释给定全局序列差异的一个因子,但是影响该值的第二个主要因子是封包速率,即,每单位时间发送的封包数量。例如,考虑快速连续接收的两个封包i和j,在给定的聚合封包速率r

注意,分子的单位是“封包”,而分母的单位是“每秒封包”。因此,

如果该对封包是已经在该特定链路对上接收的第一对封包,则存在计算该链路对的估计延迟差异的可选步骤S606。计算这种估计延迟差异的一种方法依赖于各种链路之间的延迟差异是固定的假设,并使用其他链路之间的延迟差异的知识。例如,如果链路i和k之间的延迟差异为0.5毫秒,并且链路k和j之间的延迟差异为1.3毫秒,则可以推断链路i和j之间的估计延迟差异为1.8毫秒。估计延迟差异可以与基于全局序列号计算的延迟差异一起使用,以确定差异增长,如下文关于步骤S614所述。

如果该对封包是已经在该特定链路对上接收的第一对封包,则该方法也可以通过在同一组链路i和j上快速连续地识别第二对封包来继续,如步骤S608所示。这样的第二对封包如图6b所示。如前所述,收集器读取每个封包的全局序列号,并且下一步骤S610确定后续的全局序列号差异Δg

先前的全局序列号差异可以表示为Δg

Δ

类似地,调整后的差异增长(也称为延迟差异增长)可以通过以下计算:

先前的全局序列号差异Δg可以被认为是两个链路之间的倾斜,并且差异增长Δ

链路i的延迟增加,但链路j上的延迟增加更多;

链路i的延迟稳定,但链路j上的延迟增加;

链路i的延迟降低,但链路j上的延迟增加;

链路i的延迟降低,但链路j上的延迟保持稳定;

链路i上的延迟降低,但链路j上的延迟降低较小量。

在上面列出的所有场景中,较好的权重集将一些业务从链路j导向链路i。

在步骤S616,将增长与已知为差异阈值的阈值进行比较。如果增长的值高大于差异阈值,则业务从链路j导向链路i(步骤S618)。如果增长小于负形式的差异阈值,则业务从链路i导向链路j。如果增长接近于零,即,在从-差异阈值到差异阈值定义的范围内,则不采取任何动作。差异阈值可以是可配置的,但示例值为默认值0.2ms。

在这个示例中,没有使用全权重调整机构,因为只有与链路i和链路j相关的权重被改变。调整后的权重集可定义为:

为了将业务从链路j导向链路i,可以通过将调整因子P

a=P

P

例如,合适的值是0.02。

更新的公式可改写如下:

类似地,为了从链路i向链路j传输权重,更新的公式可以改写如下:

本发明的更复杂的实施例将在这个阶段使用PID控制器。

图6a示出了用于两条链路的方法的细节,但是应当理解,该方法可以应用于所有链路。因此,收集器需要存储每对链路的(调整的)全局序列差异和(调整的)差异增长的值。收集器可以将该信息存储在一对有向图表Q和P中,如图6c和图6d所示的示例。在每个图中,每个链路都有一个顶点。当在链路i和链路j上快速连续接收到两个封包时,收集器计算延迟差异

如果在图6c中的图表Q中已经存在i和j之间的边,值为

指数移动平均值可以平滑变化的值,但是可以理解这仅是一种选择。我们刚刚计算的延迟差异增长

如果在i和j之间存在现有测量的路径,则这些图表允许概括图6a中估计链路i和链路j之间的延迟差异

可行链路对的数量与链路数量成二次方增长,更具体地,对于具有N个链路的链路聚合实例,我们有

图7a至图7c示出了第二种更精确但也更复杂的方法,用于测量链路之间的延迟差异。这种方法涉及到对分发器的细微改变和收集器中的一些额外逻辑。图7a是该方法所需的修改的链路聚合报头的图示。如图所示,报头包括如上所述的特征,但是还需要额外的标志140,其可以被称为“准同时传输”。该标志140指示是否在可忽略的时间量之前(如果不是同时)发送先前的封包,并且该标志在发送封包时由分发器添加。

图7b示出了收集器执行的步骤。在第一步骤S700中,在链路i上接收封包。然后,收集器将信息输入到存储在收集器的存储器中的表格中(S702)。该表格包括来自所接收封包中的链路聚合报头的信息,具体是全局序列号和“准同时传输”标志的值。收集器还输入接收封包的链路的编号以及接收时的本地时钟读数。

随后收集器确定当前封包上是否设置了“准同时传输”标志(步骤S704)。如果未设置标志,收集器返回到流程的开始。如果设置标志,则收集器通过确定表中是否存在全局序列号来确定表中是否存在与前一封包相关的信息,该全局序列号是与我们刚刚接收的封包相关联的全局序列号的单减少。如果不存在全局序列号,则收集器返回到流程的开始。如果不存在全局序列号,则收集器通过检查表中的链路号来确定是否在同一链路上接收到具有该序列号的封包。如果链路相同,则收集器返回到流程的开始,等待下一个数据封包。如果链路不同,则计算两条链路之间的延迟差异。

图7c示出了两个封包的示例。链路j上接收到的封包具有相关的本地时钟读数β,而前一封包的接收时间为α并且在链路i上接收。由于两个封包几乎同时发送,因此我们可以推断延迟差异

然后,可以对后续接收的封包重复该过程,以计算额外链路对的额外延迟差异。还可以通过识别表中是否存在下一封包来计算额外的延迟差异,即,全局序列号是与我们刚刚接收到的封包相关联的全局序列号的单增量的封包。如果存在该封包,并且设置了“准同时传输”标志,则可以针对不同的封包重复步骤S706至S710。

与使用图6a的步骤计算的延迟差异相比,上面计算的延迟差异可以被认为是延迟差异

死链路检测机制

图8a和图8b示出了当链路断开时可用于控制业务的第三种机制。这是有帮助的,因为上述封包丢失控制逻辑和无损控制逻辑都依赖于业务的存在来操作。

如图8a所示,当在链路i上接收到封包时,该方法开始(步骤S800)。下一步骤是确定自在该链路上接收到最后一个封包以来已经过去了多少时间,该时间可以被表示为e

E={e

下一个示出的步骤(可能与前一步骤同时发生或在前一步骤之前发生)是收集器查看聚合报头上的“前一链路”字段(步骤S806)。该字段将告诉我们前一封包是在哪个链路上发送的。如果该字段指示前一封包在链路i上发送,则我们知道应该在链路i上看到一些业务。如果链路i上没有业务,则可以推断至少有一个封包丢失。这样,死链路检测机制将引导业务远离链路i。

为了确定链路i上是否存在业务,收集器将查找e

调整后的权重集可定义为:

其中,a是负调整,如下定义:

其中,C和N如上定义。

该公式保证不应用负权重,并且需要多次通过机制来认为具有较高权重的链路是死的。

图8b示出了收集器在时间α在给定链路i上从分发器接收封包a。链路聚合报头的“前一链路”字段指示,前一封包(称之为封包x)最近已经通过链路i发送。延迟可以被假设为具有上限,该上限可以被称为最大延迟(示例值是40毫秒,这是很少达到的最坏情况值)。还添加了一个下限,即最小延迟,其被认为是零(不失一般性,因为延迟必须总是正的)。根据这两个界限,假设在时间α接收到封包a,我们知道它一定是在由下式定义的间隔A内发送:

A=[α-最大延迟,α-最小延迟]=[β,α]

如果前一封包是在最近阈值内发送的,则分发器被配置为仅填写“前一链路”字段。由此可以推断,在由下式定义的时间间隔B内发送封包x:

B=[α-最大延迟-最近阈值,α-最小延迟]=[γ,α]

假设在间隔B内发送封包x,则在由下式定义的间隔C内接收:

C=[α-最大延迟-最近阈值,α-最小延迟+最大延迟]=[γ,δ]

其中,γ和β是收集器时钟上阈值的开始时间和结束时间。

因此,在步骤S808中使用的阈值可以被定义为最大延迟+最近阈值。如前所述,当描述分发器时,默认最近阈值是0.5毫秒。由于最大延迟+最近阈值可以是很长的时间(例如,在示例系统中为40.5毫秒),则阈值可以由更小的数字代替,以便提高反应时间(例如,等待10毫秒,而不是40.5毫秒)。可能的缺点是可能存在误报(即,认为封包已经丢失,而实际上它只是大大延迟了)。注意,当考虑阈值时,检测到的业务可能不是封包x,而是某个其他封包,但对于我们的目的来说,这并不重要,重要的是链路容量不是零。

死链路恢复机制

在上述所有设置中,可以包括可选的死链路恢复机制,其中,收集器还可以确定任何给定链路i的权重是否已经下降到零。如果收集器识别出零权重,则收集器将开始倒计时,倒计时的持续时间具有称为恢复延迟的值。一旦倒计时到达零,收集器将死链路的权重w

其中,a是负调整,如下定义:

a=γ·min(W)

其中,γ是常数,例如,0.25。

图9a和图9b示意性地示出了分发器和收集器的一些部件。收集器包括执行上述方法的处理器910。处理器910可以在硬件中实现,例如,微处理器、现场可编程门阵列(FPGA)或专用集成电路(ASIC)。收集器还包括存储器912,存储器912可以包括易失性和非易失性存储器。存储器912可以存储例如参考图7b描述的表格。可以理解的是,当业务通过聚合链路时,必须保持顺序。即,对于通过聚合链路发送的任意两个封包a和b。如果在封包b之前发送封包a,则封包a也应该在封包b之前到达。由于链路具有不同的延迟,封包可能无序地到达收集器,因此可能需要使用重新排序引擎914。存在许多机制可以实现这一点,上述方法不知道使用哪一种。最后,收集器910与本地分发器和远程分发器通信,因此必须包含通信模块916。

分发器的组件反映了收集器中的组件,并且包括处理器920、存储器922(例如,用于存储每序列号的集合和全局序列号)和用于与本地收集器和远程收集器通信的通信模块926。

不管链路的特定性质或者实现相关逻辑的基底的确切性质,都可以应用上述链路聚合机制。因此,当底层链路的确切性质未知时,该链路聚合机制可以应用于封包化网络上的链路聚合领域,这将包括以下场景:通过不同无线协议的聚合(例如,LTE和Wi-Fi;Wi-Fi_33和WiGig)、相同无线协议的多个信道的集合(例如,多个Wi-Fi_33连接)、无线和有线之间的混合聚合(例如,Wi-Fi+WiGig+以太网)、多种有线协议的链路聚合(例如,DOCSIS+ADSL;多个ADSL连接;多个以太网连接)和传输层级的聚合。然而,作为示例,该机制可以用于聚合无线电链路,例如,在GB2377596(B)中描述的点对多点无线电系统中,并且在图9c中示出。

图9c示出了包括无线电控制器930、一个或多个接入点932a、932b以及每个接入点的一个或多个远程终端934a、934b、934c、934d的系统。无线电控制器930和接入点932a、932b可以共同位于中枢站点,而远程终端可以分布在给定的区域。作为示例,远程终端934b、934c中的两个是共同定位的并且通过交换机936相互连接,以允许使用上述链路聚合。

上述分发器和收集器位于无线电控制器和远程终端中。每个分发器和收集器都有在FPGA上实现的处理器来实现上述方法。链路聚合逻辑可以存在于所有远程终端中,但是在配置链路聚合之前是休眠的。当在一组远程终端上配置链路聚合时,会发生领导者选举过程,该过程决定哪个聚合的远程终端将承担“主要”角色,即,将启用收集器和分发器逻辑的远程终端。

每个信道由三元组定义,该三元组包括带宽、调制和频带。带宽可以是以下中的一个:10MHz、14MHz、20MHz、28MHz、30MHz、40MHz、50MHz或56MHz。至于调制,每个链路可能使用QPSK、16QAM、64QAM、128QAM、256QAM或自适应。关于频带,示例包括10.5GHz、26GHz、27GHz、28GHz、31GHz和39GHz。应当理解,该方法可以适用于新的带宽、调制和频带。

本文描述的至少一些示例实施例可以部分或全部使用专用硬件来构造。本文使用的诸如“组件”、“模块”或“单元”的术语可以包括但不限于硬件装置,例如,以分立或集成组件形式的电路、现场可编程门阵列(FPGA)或专用集成电路(ASIC),其执行特定任务或提供相关功能。在一些实施例中,所描述的元件可以被配置为驻留在有形的、持久的、可寻址的存储介质上,并且可以被配置为在一个或多个处理器上执行。在一些实施例中,这些功能元件可以包括例如软件组件、面向对象软件组件、类组件和任务组件的组件、处理、功能、属性、过程、子程序、程序代码段、驱动器、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。尽管已经参考本文讨论的组件、模块和单元描述了示例实施例,但是这样的功能元件可以被组合成更少的元件或者被分离成额外元件。本文已经描述了可选特征的各种组合,并且将会理解,所描述的特征可以以任何合适的组合来组合。特别地,任何一个示例实施例的特征可以适当地与任何其他实施例的特征相结合,除非这种结合是互斥的。在整个说明书中,术语“包括(comprising)”或“包含(comprises)”是指包括指定的组件,但不排除其他组件的存在。

注意与本申请相关的与本说明书同时提交或在本说明书之前提交的所有论文和文件,这些论文和文件与本说明书一起公开供公众查阅,并且所有这些论文和文件的内容通过引用结合于此。

本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征和/或这样公开的任何方法或过程的所有步骤可以以任何组合形式进行组合,除了至少一些这样的特征和/或步骤是相互排斥的组合。

除非另外明确说明,否则本说明书(包括任何所附权利要求、摘要和附图)中公开的每个特征可以由用于相同、等同或类似目的的替代特征代替。因此,除非另外明确说明,否则所公开的每个特征仅仅是通用的一系列等同或类似特征的一个示例。

本发明不限于前述实施例的细节。本发明扩展到本说明书(包括任何所附权利要求、摘要和附图)中公开的特征的任何新颖的一个特征或任何新颖的特征组合,或者扩展到这样公开的任何方法或过程的步骤的任何新颖的一个特征或任何新颖的特征组合。

相关技术
  • 用于在网络中分发封包的系统和方法
  • 用于处理分发网络中的分发物品的系统和方法
技术分类

06120112210860