CN110301116B - 通过绑定连接传送和接收数据分组的方法和系统 - Google Patents

通过绑定连接传送和接收数据分组的方法和系统 Download PDF

Info

Publication number
CN110301116B
CN110301116B CN201780086539.5A CN201780086539A CN110301116B CN 110301116 B CN110301116 B CN 110301116B CN 201780086539 A CN201780086539 A CN 201780086539A CN 110301116 B CN110301116 B CN 110301116B
Authority
CN
China
Prior art keywords
packet
network node
session
time
transport
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
Application number
CN201780086539.5A
Other languages
English (en)
Other versions
CN110301116A (zh
Inventor
宋浩伟
吴锦超
梁允俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pismo Labs Technology Ltd
Original Assignee
Pismo Labs Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pismo Labs Technology Ltd filed Critical Pismo Labs Technology Ltd
Publication of CN110301116A publication Critical patent/CN110301116A/zh
Application granted granted Critical
Publication of CN110301116B publication Critical patent/CN110301116B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2863Arrangements for combining access network resources elements, e.g. channel bonding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2863Arrangements for combining access network resources elements, e.g. channel bonding
    • H04L12/2865Logical combinations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及用于通过绑定连接在第一网络节点和第二网络节点之间传送和接收数据分组的方法和系统。在第一网络节点处,数据分组、数据分组的会话标识和数据分组的时间值被封装在封装分组中。第一网络节点通过绑定连接将封装分组从第一网络节点发送到第二网络节点。然后,第二网络节点在接收到封装分组后存储封装分组,并确定封装分组的到期时间。当封装分组的到期时间到期时,第二网络节点使封装分组出列,并根据数据分组的目的地转发数据分组。

Description

通过绑定连接传送和接收数据分组的方法和系统
技术领域
本申请涉及数据通信,并且更具体地涉及优化多个逻辑路径上的数据传输的吞吐量。
背景技术
多广域网(WAN)站点到站点路由器是支持绑定多个互连(例如,用于访问一个或多个远程网络的WAN连接)的路由器。属于一个会话的数据可以通过多个互连中的一个或多个互连从发送路由器发送到接收路由器。在该实现中,仅使用一个互连(例如,一个WAN连接)来路由数据。在这种配置中,单个TCP文件传输会话只能在每端使用一个WAN连接的带宽。例如,在基于会话的站点到站点虚拟专用网络(VPN)连接中,VPN流量被路由到两个站点(例如,站点A和站点B)之间的多个WAN连接。在一个实现中,最初在WAN连接之间形成M×N个隧道,其中M和N分别是站点A和站点B的WAN网络连接的数量。然后,通过不同的隧道路由属于一个会话的数据。当通过这些隧道传输保持数据的分组时,分组可能会以不同的延迟到达接收站点,从而导致错误的顺序和跳动(jitter)。
例如,假设M×N个隧道利用多个连接,每个连接具有不同的吞吐量带宽能力和不同的延迟。当前的跳动减少技术主要基于对保持会话的数据的分组进行重新排序,以及减少多个连接的延迟。
发明内容
本发明公开了用于通过绑定连接在第一网络节点和第二网络节点之间传送和接收数据分组的方法和系统。在一个实施例中,在第一网络节点处,数据分组、数据分组的会话标识和数据分组的时间值被封装在封装分组中。第一网络节点通过绑定连接将封装分组从第一网络节点发送到第二网络节点。然后,第二网络节点在接收到封装分组后存储封装分组,并确定封装分组的到期时间。当封装分组的到期时间到期时,第二网络节点使封装分组出列,并根据数据分组的目的地转发数据分组。
在另一实施例中,基于时间值确定封装分组的到期时间。还可以基于由第二网络节点较早接收到的其他封装分组的到期时间来确定到期时间,该较早接收到的封装分组和封装分组具有相同的会话标识。
在另一实施例中,第二网络节点调整由第二网络节点较早接收到的至少一个封装分组的到期时间。
在另一实施例中,基于数据分组到达第一网络节点的时间来确定时间值。或者,时间值也可以是第一网络节点发送(sent)数据分组的时间或者第一网络节点即将发送(uponbeing sent)数据分组时的时间。在一些实施例中,时间值以微秒精度或纳秒精度记录。
在另一实施例中,多个连接中的至少两个具有不同的延迟。
在另一实施例中,第一网络节点还将全局序列号封装在封装分组中。第一网络节点还可以将会话序列号封装在封装分组中。
在一个实施例中,提供了用于在分组处理期间减少跳动的网络节点,该网络节点包括网络接口、处理单元和包括程序指令的非暂时性计算机可读存储介质。网络节点的处理单元能够执行程序指令以执行以下操作:确定传送分组的缓冲时段;从发送网络节点接收传送分组;识别传送分组的会话;根据会话确定队列;确定传送分组的到期时间。当队列不为空时,基于一个或多个当前存储的传送分组的对应时间值与传送分组的对应时间值之间的时间值的差来确定到期时间。当队列为空时,基于缓冲时段来确定到期时间。传送分组根据到期时间被存储在队列中。
根据一个实施例,当时间已经到了(expired)或即将到到期时间(upon beingexpired)时,传送分组从队列中出列,然后解封装以检索数据分组。然后根据数据分组的目的地址将数据分组转发到目的网络节点。
根据一个实施例,缓冲时段可以对于每个绑定连接、每个会话或每个绑定连接的每个会话可配置。
根据一个实施例,根据传送分组中的会话标识来执行会话的识别。
根据一个实施例,传送分组由发送网络节点通过在发送网络节点和接收网络节点之间建立的多个连接之一传送到接收网络节点。
根据一个实施例,其中时间值以微秒精度或纳秒精度记录。在另一实施例中,基于发送网络节点处的数据分组的到达时间来确定传送分组的对应时间值。或者,使用发送网络节点处的数据分组的传输时间来确定时间值。
根据一个实施例,当先前到达的传送分组的相应会话序列号都不是1时,没有数据分组将被转发到目的节点。
根据一个实施例,当在第一队列中当前存储的分组中,传送分组的会话序列号最小时,增加所有当前存储的传送分组的到期时间。
附图说明
为了更完整地理解本发明,现在参考以下结合附图的描述,附图中:
图1(现有技术)示出了根据本发明实施例的用于优化多个可变带宽连接的吞吐量的整个系统;
图2是示出了不同隧道在一段时间内的延迟的变化的表;
图3(现有技术)示出了根据本发明实施例的可以封装在传送IP分组中的信息类型的示例实施例;
图4A(现有技术)示出了根据本发明实施例的可以封装在反馈分组中的信息类型的示例实施例;
图4B是现有技术,示出了图4A的反馈分组的字段的可能值的图表;
图5是现有技术,描绘了适用于实现本发明的处理系统的框图;
图6示出了根据本发明实施例的数据分组和嵌入式IP分组的时间序列;
图7示出了根据本发明实施例的可以封装在传送IP分组中的信息的类型;
图8示出了描绘根据本发明实施例的用于减少绑定连接的跳动的方法的流程图;
图9示出了描绘根据本发明实施例的用于减少绑定连接的跳动的方法的流程图。
图10示出了描绘根据本发明实施例的用于减少绑定连接的跳动的方法的流程图;
图11示出了描绘根据本发明实施例的用于减少绑定连接的跳动的方法的流程图;和
图12示出了根据本发明实施例的数据分组和嵌入式IP分组的时间序列。
具体实施方式
图1示出了根据实施例适用的系统100,其被配置为通过在数据传输会话期间调整隧道带宽加权模式来优化绑定的多个可变带宽连接的吞吐量。系统100包括多个站点102和104,站点102和104各自包括至少一个通信路由器106和108。通信路由器106和108可以体现为支持聚合多个因特网连接的带宽的多WAN路由器。通信路由器106和108通过网络110连接。网络110可以包括局域网(LAN)、城域网(MAN)、广域网(WAN)、无线网络、公共交换电话网(PSTN)、因特网、内联网、外联网等。图1示出了根据实施例适用的系统100,其被配置为通过在数据传输会话期间调整隧道带宽加权模式来优化绑定的多个可变带宽连接的吞吐量。系统100包括多个站点102和104,站点102和104各自包括至少一个通信路由器106和108。通信路由器106和108可以体现为支持聚合多个因特网连接的带宽的多WAN路由器。通信路由器106和108通过网络110连接。网络110可以包括局域网(LAN)、城域网(MAN)、广域网(WAN)、无线网络、公共交换电话网(PSTN)、因特网、内联网、外联网等
站点102和路由器106可以包括M个连接112,站点104和路由器108可以包括N个连接114。连接112和114是用于在站点102和104之间在网络110内通信信息的数据连接。在所示实施例中,M等于3,N等于2;但是,这些值可根据所需的路由器和配置而变化。连接112和114可以具有相似或不同的带宽能力。此外,连接112和114可以包括不同类型的WAN连接,例如WiFi、电缆、DSL、T1、3G、4G、卫星连接等。还应注意,站点102和站点104可以被认为是发送者或接收者,并且关于任一站点的功能的讨论可以在另一个站点上实现。换句话说,系统100可以实现为对称网络。没有限制M和N分别与路由器106和108的物理网络接口的数量相同。例如,路由器106具有五个物理网络接口,用于连接到不同的WAN,并且M可以是1、10、100或1000。可以聚合MxN个隧道以形成绑定隧道、绑定VPN或绑定连接。隧道和连接在本发明中可互换使用,以描述两个网络接口之间的逻辑连接,这两个网络接口可以是物理网络接口或虚拟网络接口。
图2示出了在一段时间内在第一网络节点和第二网络节点之间建立的不同隧道的延迟的变化。如表中所示,有六个隧道(隧道A到隧道F)聚合以形成绑定连接。封装分组封装数据分组,封装分组由一个网络节点接收并发往另一个网络节点或通过另一个网络节点可到达的目的地。在t=0s,在隧道A-F中,隧道D具有最低延迟(5ms),而隧道F具有最高延迟(100ms),并且第一网络节点向第二网络节点发送多个封装分组。期望通过隧道D发送的封装分组将最早到达第二网络节点,而通过隧道F发送的封装分组将最后到达。但是,有许多因素会影响每个隧道的延迟,从而导致隧道的延迟不断变化。在t=10s,在隧道A-F中,隧道A具有最高延迟(80ms),而隧道B具有最低延迟(5ms)。因此,当通过绑定连接依次发送会话的多个数据分组时,由于不同隧道的延迟的变化,接收端的顺序可能与发送端的顺序不同。这会在接收端的数据分组之间引起不希望的跳动。本发明的目的之一是减少这种不希望的跳动。
为了监视各种隧道116的带宽,本发明的一些实施例用各种信息封装每个传送IP分组。在本发明中,可以将传送IP分组称为封装分组,因为IP分组被封装在传送分组中。图3(现有技术)示出了可以封装在传送IP分组中的信息类型300的示例实施例。版本字段302可以包含关于正在使用的协议版本的信息,并且协议类型字段303可以包含有效载荷分组(payload packet)的协议类型。隧道ID字段304可以包含用于标识IP分组的当前隧道的标识符。高级加密标准(AES)初始化矢量字段306可以是32位字段,并且可以包含用于AES加密的初始化矢量。全局序列号字段308可以包含序列号,当各个会话的分组从各自的隧道中出现时,该序列号用于将各个会话的每个分组重新排序成适当的顺序。每个隧道序列号字段310可以表示分配给路由到特定隧道的每个分组的序列号。
所讨论的每个隧道序列号能够用于分组丢弃监视和重新排序分组,不能用于减少属于会话数据的跳动。
图4A(也是现有技术)示出了可以封装在反馈分组中的信息类型400的示例实施例,该反馈分组被发送到传送路由器以便报告在接收端路由器处接收的分组丢弃率或其他带宽相关数据。类型字段402可以包括关于将包括在数据1字段404和数据2字段406中的数据类型的数据。数据1字段404和数据2字段406可以包含任何信息,这些信息可以用于帮助路由器确定关于隧道数量、隧道带宽、隧道中丢弃分组数量等的隧道信息。在图4B(现有技术)的图表中示出了数据字段404和406中的类型字段402的可能值的示例。
如现有技术中所公开的,封装在传送IP分组中的信息(例如图3和图4中所示)也可以用于分组缓冲和重新排序。由于每个隧道的延迟可能不同,当同一TCP会话的两个连续分组通过绑定的VPN隧道发送到VPN对等体时,它们可能无法按顺序到达,因为它们经由两个不同的隧道路由。如果TCP会话从VPN接收到无序分组,则TCP会话将因TCP重传而变慢。因此,接收端应缓冲过早到来的分组,直到较慢的分组到达或者到期时间已经过去。通过这种缓冲,在到期时间之前到来的最近分组将被顺序地转发到目标设备。这种缓冲有助于优化端到端吞吐量。
注意,有时在VPN连接的上下文中讨论本文描述的实施例。呈现这些讨论是为了示出绑定连接的示例实施例。本文要求保护的发明构思不限于这种连接。实际上,可以利用本发明的实施例来实现可以获得和交换足够数据以便动态地监视正在数据传输会话中使用的多个通信路径的带宽的任何连接。
实施例或其部分可以体现在可在用于执行本文所述的功能和操作的基于处理器的系统(例如,计算机/处理系统或计算平台)上操作的程序或代码段中。构成各种实施例的程序或代码段可以存储在计算机可读介质中,该计算机可读介质可以包括用于临时或永久地存储这样的代码的任何合适的介质。计算机可读介质的示例包括有形计算机可读介质,例如,电子存储器电路、半导体存储器设备、随机存取存储器(RAM)、只读存储器(ROM)、可擦除ROM(EROM)、闪存、磁性存储设备(例如,软盘)、光学存储设备(例如,光盘(CD)、数字通用盘(DVD)等)、硬盘等。
实施例或其部分可以体现在计算机数据信号中,该计算机数据信号可以是用于通过传输介质进行通信的任何合适的形式,使得该计算机数据信号可读取以由执行本文描述的操作的功能设备(例如,处理器)执行。计算机数据信号可以包括可以通过诸如电子网络信道、光纤、空气、电磁介质、射频(RP)链路等传输介质传播的任何二进制数字电子信号,因此数据信号可以是电信号、光信号、射频信号或其他无线通信信号等形式。在某些实施例中,可以经由诸如因特网、内联网、LAN、MAN、WAN、PSTN、卫星通信系统、电缆传输系统之类的计算机网络下载代码段。
图6示出了根据本发明实施例的由通信路由器106和108接收和传送的数据分组和传送IP分组的时间序列。
在一个示例中,为了说明的目的,在时间序列611中,通信路由器106分别在时间t=1ms、t=4ms、t=7ms和t=8ms处从发送设备接收数据分组602a-602d。出于说明目的,数据分组602a-602d属于同一会话并且目的地是通过通信路由器108可到达的目标设备。出于可读性目的,数据分组602a-602d的内容分别用“Data-1”,“Data-2”、“Data-3”和“Data-4”标记。当通信路由器106将传送IP分组传送到通信路由器108时,通信路由器106是发送路由器,而通信路由器108是接收路由器。
在时间序列612中,传送IP分组603a-603d由通信路由器106通过至少一个连接传送到通信路由器108。传送IP分组603a-603d分别封装数据分组602a-602d,并分别在时间t=11ms、t=14ms、t=17ms和t=18ms处传送。传送IP分组603a-603d的阴影区域示出了可以由通信路由器106创建的信息,并且可以被封装在传送IP分组603a-603d中。信息的细节在图7中示出。
没有限制必须通过相同的WAN接口或相同的隧道发送所有传送IP分组。也没有限制所有数据分组必须以WAN接口或隧道之间的任何特定顺序或权重分布。例如,传送IP分组603a、603b、603c和603d可以分别通过第一隧道、第二隧道、第一隧道和第三隧道传送。
图7示出了可以封装在传送IP分组中的信息类型700的示例实施例。与图3相比,添加了字段711-713。字段711用于在发送路由器处记录数据分组(例如数据分组602之一)的到达时间。到达时间可以由接收路由器(例如通信路由器108)使用,以确定何时将数据分组转发到目标设备。在一个变型中,字段711用于记录传送IP分组的传输时间。在发送路由器发送传送IP分组之前,用时间更新字段711。因此,接收路由器可以依赖于字段711来转发具有连续数据分组之间的对应时间差的连续数据分组。对于不快于100Gbps的网络,优选使发送路由器记录的时间至少精确到微秒。如果记录的时间不够精确,则存在具有在字段711中的相同时间值的许多传送IP分组。接收路由器然后可能无法精确地转发具有精确时间差的连续数据分组。对于快于100Gbps的网络,时间记录可能是纳秒精度。
时间值可以基于发送路由器的内部时钟。然而,没有限制字段711中的时间值必须是正确的时钟时间。也没有限制字段711的大小。字段711越大,需要重置或重新开始时间值的频率越少。
会话标识字段712用于保存会话标识的值,该会话标识用于识别会话。有许多方法可以识别会话。例如,可以通过深度分组检测(DPI)或通过源地址、源端口号、目的地址和目的端口号的组合来识别会话。例如,会话标识的值可以是基于源地址、源端口号、目的地址和目的端口号的组合的散列值。在另一示例中,可以基于会话的第一数据分组的到达时间来创建会话标识的值。封装会话的数据分组的后续传送IP分组将使用相同的值用于会话标识。
会话序列号字段713用于保存会话序列号的值。会话序列号允许数据分组在通信路由器108处重新排序,该通信路由器108是接收路由器。例如,属于同一会话的连续数据分组可以具有连续的会话序列号。
在一个变型中,当使用会话标识字段712和会话序列号713时,可以省略全局序列号字段308,因为会话序列号可以用于对属于同一会话的数据分组和/或属于同一会话的传送IP分组进行排序。
没有限制对字段302-312和711-713的排序必须按照图7中所示的顺序。也没有限制字段的长度必须与图7中所示的位数相同。
应当理解,如果发送路由器可以正确地记录每个数据分组的到达时间或传输时间,则接收路由器然后可以能够确定数据分组的正确顺序。在一个变型中,当字段711用于记录到达时间或传输时间时,可以省略会话序列号字段713,因为接收路由器可以依赖到达时间或传输时间来确定将数据分组转发到目标设备的顺序。在一个变型中,当字段711用于记录到达时间或传输时间时,可以省略全局序列号字段308和每个隧道序列号字段310。在一个变型中,当会话序列号字段713和会话标识字段712用于确定传送IP分组的正确顺序时,可以省略全局序列号字段308和每个隧道序列号字段310。
返回参考时间序列612,封装在传送IP分组603a-603d的信息中的会话序列号分别是1、2、3和4,以便指示传送IP分组603a正在封装会话的第一数据分组;传送IP分组603b正封装会话的第二数据分组;等等。
优选地,接收的连续数据分组602之间的时间差和发送的连续传送IP分组603之间的时间差是相同的。例如,优选地,数据分组602a(t=1ms)和数据分组602b(t=4ms)之间的时间差约为传送IP分组603a(t=11ms)和传送IP分组603b(t=14ms)之间的时间差。这可以在传送IP分组到达通信路由器108时减少跳动。在另一个示例中,在数据分组602c之后立即接收数据分组602d。为了减少跳动,优选在数据分组603c之后立即发送传送IP分组603d。封装在传送IP分组603a-603d中的信息可以分别包括数据分组602a-602d的到达时间。或者,该信息可以分别包括传送IP分组603a-603d的传输时间。
没有限制传送IP分组603必须以与接收数据分组602的顺序相同的顺序发送,或者必须在相同的连接中传送。例如,传送IP分组603a和603c通过第一连接(例如连接112-1)传送,而传送IP分组603b和603d通过第二连接(例如连接112-3)传送。
在时间序列613中,为了说明的目的,分别在时间t=31ms、t=34ms、t=36ms和t=39ms时由通信路由器108接收传送IP分组603a-603d。未按正确顺序接收传送IP分组。连续的传送IP分组603a-603d之间的时间差也改变并导致跳动。
为了以相同顺序转发数据分组602a-602d并减少跳动,当传送IP分组603a-603d到达通信路由器108时,首先将这些传送IP分组603a-603d缓存在一个或多个队列中。然后通过分别解封装传送IP分组603a-603d来检索数据分组602a-602d。最后,将数据分组602a-602d以相同的顺序并且以与对应先前数据分组大体相同的时间差转发到目标设备,以便减少跳动。可以使用存储在传送IP分组的字段711中的对应时间值来确定时间差。
没有限制不同会话的传送IP分组必须存储在不同的队列中。队列的数量可以小于会话的数量,因此,不同会话的传送IP分组可以存储在同一队列中。接收路由器可以根据字段712中的会话标识来识别每个传送IP分组的会话。当确定每个传送IP分组的到期时间时,即使可能存在存储在同一队列中的不同会话的传送IP分组,计算是基于具有相同会话标识的一个或多个传送IP分组。
图8示出了接收路由器的描绘了用于在将数据分组转发到目标设备时减少跳动的方法800的高水平流程图。出于说明的目的,接收路由器是通信路由器108,并且结合图6讨论图8。应当理解,图8中提供的特定功能、功能的顺序等旨在作为根据本发明概念的操作的示例。因此,本文的概念可以以与所示实施例的方式不同的各种方式实现。
对于不快于100Gbps的网络和对于快于100Gbps的网络,接收路由器处的时钟分别应该至少为微秒精度和纳秒精度。时钟可以是接收路由器的BIOS时钟或基于BIOS时钟。当接收路由器接收到传送IP分组时,处理单元将传送IP分组与传送IP分组的到期时间一起存储在队列中。到期时间可以存储在同一队列中、列表中、表格中或接收路由器处的任何非暂时性计算机可读存储介质中。当达到传送IP分组的到期时间时,封装在传送IP分组中的数据分组然后将被转发到目标设备。对于传送IP分组603b,该传送IP分组603b在步骤801在时间t=31ms处由接收路由器接收,然后在步骤802中由接收路由器的处理单元存储到与会话标识相对应的队列中。为了说明的目的,传送IP分组603b是在时间序列613中接收的第一传送IP分组。会话标识被封装在信息中,该信息由传送IP分组603b的阴影区域示出。
当传送IP分组603b的会话序列号是2时,处理单元能够确定存在具有会话序列号1的传送IP分组在时间t=31ms处尚未到达,并且因此接收路由器的处理器可以不处理传送IP分组603b和/或不将封装在IP分组603b中的数据分组转发到数据分组的目标设备。此时,可以将传送IP分组603b的到期时间设置为任何值。例如,在步骤802将到期时间设置为t=44ms。在步骤804,传送IP分组603b将等待并保持存储在队列中。在一个变型中,对于较长的缓冲区,在步骤802将到期时间设置为61ms,以改善序列顺序。在一个变型中,对于较短的缓冲区,在步骤802将到期时间设置为36ms,以便较早地转发数据分组。
当时间t=44ms,传送IP分组603b的时间在步骤803中是到期的或者即将到期时,传送IP分组603b在步骤805出列。然后,从传送IP分组603b解封装数据分组602b。最后,在步骤806,在t=44ms将数据分组602b传送到目标设备。
对于传送IP分组603a,它封装数据分组602a,该数据分组602a由发送通信设备早于数据分组602b而接收。当在步骤801由接收路由器接收到传送IP分组603a时,在步骤802将其存储在与会话标识相对应的队列中。在步骤802,由于传送IP分组603a的会话序列号在传送IP分组603b的会话序列号之前,所以传送IP分组603a在队列中被放置在比传送IP分组603b的位置更早的位置处。此外,如会话序列号所指示,接收路由器的处理单元能够确定数据分组602a是会话中的第一分组。在另一个示例中,在具有会话序列号1的传送IP分组到达之前,不会将数据分组转发到目标设备。这确保了转发到目标设备的第一数据分组是具有会话序列号1的数据分组,并且可以减少跳动。
将缓冲时段分配给传送IP分组603a。传送IP分组603a的缓冲时段基于由接收路由器的管理员配置或从远程管理服务器检索的时间值。具有大缓冲时段的好处包括:减小将无序数据分组转发到目标设备的可能性;以及减少在将数据分组转发到目标设备时的跳动。具有短缓冲时段的好处包括:需要更小的队列并且更早地转发数据分组。
在一个实施例中,缓冲时段的值可由用户或管理员通过命令行、网页或通信路由器的图形用户界面(GUI)来配置。缓冲时段的值也可由通信路由器的供应商预先配置。在一个示例中,将相同的缓冲时段值应用于所有传送IP分组。在另一个示例中,不同的会话或流可以具有不同的缓冲时段值。因此,GUI可以允许用户或管理员输入与不同会话或流相对应的缓冲时段值。例如,源IP地址A、源端口A、目的IP地址B和目的端口B的会话的缓冲时段值可以由用户配置为10ms,而源IP地址C、源端口C、目的IP地址D和目的端口D的会话的缓冲时段值可以配置为300ms。
例如,如果会话中的第一数据分组的缓冲时段被配置为7ms,则封装会话的第一数据分组的传送IP分组将被存储在队列中7ms,然后第一数据分组将被转发到目标设备。因此,传送IP分组603a将被存储在队列中7ms。数据会话的后续数据分组在被存储在队列中短于或长于7ms之后将被转发到目标设备,这取决于在传输期间每个传送IP分组所经历的时间变化。
在一个变型中,没有封装会话中的第一数据分组的传送IP分组也可以根据第二缓冲时段(例如缓冲时段的至少一半或者高达两倍的缓冲时段)存储在队列中。这允许灵活地确定传送IP分组的到期时间。或者,接收路由器的用户或管理员可以将缓冲时段的范围输入到接收路由器。
在一个变型中,如果队列为空,则没有封装会话中的第一数据分组的传送IP分组将被存储在队列中达缓冲时段。
通过参考封装第一数据分组的传送IP分组的到期时间,可以计算封装后续数据分组的其他传送IP分组的到期时间。此外,还可以通过从每个传送IP分组到达接收路由器的时间减去其到期时间来确定该传送IP分组的存储时间。传送IP分组的存储时间可以根据即将接收的传送IP分组而改变。通常,在队列中,具有较早会话序列号的传输IP分组应具有较早到期时间。如果具有较早会话序列号的传送IP分组晚到,则可能需要调整当前存储的传送IP分组的存储时间。应当注意,当调整当前存储的传送IP分组的存储时间时,也调整当前存储的传送IP分组的到期时间。在这种情况下,可以延长当前存储的传送IP分组的存储时间。如果具有较晚会话序列号的传送IP分组早到,则可能需要调整当前存储的传送IP分组的存储时间,并且可缩短当前存储的传送IP分组的存储时间。
由于传送IP分组603a的到期时间是t=41ms,参考时间序列611,发送路由器处数据分组602a和602b之间的时间差是3ms(4ms-1ms)。因此,如时间序列614所示,传送IP分组603b的到期时间是t=44ms(41ms+3ms)。此外,传送IP分组603b的存储时间被计算为13ms(44ms-31ms)。
对于传送IP分组603c,参考时间序列611,发送路由器处数据分组602a和602c之间的时间差是6ms(7ms-1ms)。因此,如时间序列614所示,接收路由器处传送IP分组603c的到期时间是t=47ms(41ms+6ms)。此外,传送IP分组603c的存储时间被计算为11ms(47ms-36ms)。
由于传送IP分组可以以随机顺序到达接收路由器,所以具有在前序列号的一些传送IP分组可能晚到。在一个变型中,如果计算出的新接收的传送IP分组的到期时间已经到期,因此,封装在传送IP分组中的数据分组应被解封装并且无进一步延迟地转发到目标设备。在这种情况下,新接收的传送IP分组的存储时间应为零,或者新接收的传送IP分组将不存储在队列中。接收但尚未出列的其他传送IP分组将保留在队列中,其他当前存储的传送IP分组的到期时间可保持不变。在一个变型中,如果计算出的新接收的传送IP分组的到期时间已经到期,则新接收的传送IP数据分组仍将存储在队列中,但会立即出列。在一个变型中,如果计算出的新接收的传送IP分组的到期时间已经到期,则将调整当前存储的传送IP分组的到期时间。为当前存储的传送IP分组计算新的到期时间,以恢复该序列;并且通过保持传送IP分组中到期时间的时间差与传送IP分组中的字段711中的时间值的时间差接近来减少跳动。
没有限制在确定到期时间时,必须使用发送路由器处的数据分组的到达时间。在一个示例中,可以使用发送路由器处的传送IP分组的传输时间。例如,参考时间序列612,发送路由器处的传送IP分组603a和603c之间的时间差是6ms(17ms-11ms)。传送IP分组603c的到期时间计算为47ms(41ms+6ms)。接收路由器的处理单元可以使用传送IP分组的信息的字段711中的时间值作为多个参数之一来确定到期时间。
在步骤803,接收路由器的处理单元将确定传送IP分组的到期时间是否已经到期。当传送IP分组的到期时间是到期的或者即将到期时,然后将执行步骤805以使传送IP分组出列并解封装传送IP分组以检索封装的数据分组。在步骤806,然后将数据分组传送到目标设备。使用传送IP分组603b作为示例,当传送IP分组603b的相应到期时间是到期的或者即将到期时并且在执行步骤803和步骤805之后,数据分组602b将被传送到目标设备。
图9示出了接收路由器的描绘了用于在将数据分组转发到目标设备时减少跳动的方法900的高水平流程图。在该实施例中,基于方法800,步骤802由步骤901-904代替。
在会话的传送IP分组的传输期间,在一段时间内经历长延迟的情况。结果,会话的所有先前到达的传送IP分组可能已经被出列、解封装并转发到目标设备,从而在同一会话内产生空队列。当队列为空时,当前没有存储的传送IP分组。当同一会话的传送IP分组到达接收路由器时,其计算出的到期时间可能已经到期,因此,传送IP数据分组将立即被解封装并转发到目标设备,以避免进一步延迟。然而,忽略了序列正确性和剩余分组之间的时间差。方法900提供额外的过程以减少在这种情况下引起的跳动。
在步骤901中,在接收到传送IP分组之后,接收路由器108的处理单元将在步骤901中确定队列的状态。如果队列不为空,则将相应地执行步骤902。基于传送IP分组的字段711中的时间值与一个或多个当前存储的传送IP分组的字段711中的时间值之间的时间差来确定到期时间。如果队列为空,则当前没有存储的传送IP分组,也没有参考来确定到期时间。因此,在步骤903中,使用缓冲时段来确定传送IP分组的到期时间。在一个变型中,记录最后的传送IP分组的到期时间和会话序列号并用于确定到期时间的参考。
缓冲时段可以由接收路由器108的制造商预定义,或者可以由用户或管理员通过命令行、网页或通信路由器的GUI来设置。在一个变型中,到期时间是接收路由器处传送IP分组的到达时间加上缓冲时段。在步骤904中,将传送IP分组存储在队列中以便出列。
图10示出了接收路由器的描绘了用于在将数据分组转发到目标设备时减少跳动的方法1000的高水平流程图。在步骤1001,接收路由器,例如通信路由器108,接收传送IP分组。在步骤1002,处理单元将确定传送IP分组是否具有早于当前存储在队列中的所有传送IP分组的序列号的序列号。
如果传送IP分组具有最早的序列号,很可能该传送IP分组晚到。为了减少跳动,在步骤1003,将增加当前存储在队列中的传送IP分组的到期时间以反映由传送IP分组引起的延迟。因此,将延迟封装在当前存储的传送IP分组中的数据分组的转发。
如果传送IP分组不具有最早的序列号,该传送IP分组可提前到达或者可晚到(但是不能太晚以至于影响跳动)。因此,可以跳过步骤1003。
在步骤1004,将传送IP分组存储在与存储在会话标识字段712中的会话标识相对应的队列中。在一个变型中,如果传送IP分组已经到期,则跳过步骤1004并且然后将封装在该传送IP分组中的数据分组转发。
图11示出了接收路由器的描绘了用于在将数据分组转发到目标设备时减少跳动的方法1100的高水平流程图。结合图6讨论图11。在该实施例中,接收路由器接收的每个传送IP分组仅被允许存储在队列中最大存储时间(MST)。确定每个传送IP数据分组的到期时间有两个阶段。
在步骤1101,接收路由器(例如通信路由器108)通过多个连接从发送路由器(例如通信路由器106)接收传送IP分组。根据会话标识,处理单元能够识别会话及其对应的队列。在步骤1102,处理单元将执行第一阶段,即计算接收的传送IP分组的初始到期时间。
基于与队列中的一个或多个当前存储的传送IP分组的时间差来计算初始到期时间。例如,出于说明的目的,传送IP分组603a的到期时间是41ms。由于数据分组602d和602a之间的时间差是7ms,所以传送IP分组602d的初始到期时间然后被设置为t=48ms(41ms+7ms)。
在步骤1103,处理单元将确定初始存储时间是否大于MST。如果时间现在是40ms并且MST被配置为10ms,则传送IP分组603d将被存储在队列中8ms(48ms-40ms),其小于MST(8ms<10ms)。因此,执行步骤1106,将传送IP分组603d的存储时间设置为初始存储时间的值,即8ms。因此,传送IP分组603d将被存储在队列中直到t=48ms(40ms+8ms)。因此,当传送IP分组的到期时间是到期的或者即将到期时,传送IP分组将从队列中出列并被解封装以检索封装在传送IP分组的有效载荷中的数据分组,然后该数据分组将被转发到目标设备。
在步骤1103,如果根据初始到期时间的存储时间大于MST,则处理单元将执行步骤1104和1105所示的第二阶段。
在步骤1104,将接收的传送IP分组的到期时间设置为MST。例如,出于说明的目的,传送IP分组603a的到期时间是41ms。由于数据分组602c和602a之间的时间差是6ms,所以传送IP分组603c的初始到期时间然后被设置为t=47ms(41ms+6ms)。如果时间现在是36ms并且MST被配置为5ms,则传送IP分组603c将被存储在队列中11ms(47ms-36ms),其大于MST(11ms>5ms)。因此,传送IP分组603c的存储时间被设置为MST的值,即5ms。传送IP分组603c被存储在队列中直到t=41ms(36ms+5ms)。
在步骤1105,将调整当前存储在队列中的传送IP分组的到期时间,以便减少跳动。这也确保了接收的传送IP分组没有被存储在队列中长于MST。
在步骤1105调整之后,如果当前存储的传送IP分组的到期时间到期,则将立即解封装该传送IP分组。相应的数据分组将相应地被转发到目标设备。
在一个变型中,如果队列中没有传送IP分组,则将传送IP分组的初始存储时间设置为MST或大体接近MST的值。
在结合图11所示的高水平流程图查看的图12所示的另一示例中,通信路由器106在时间序列1201中分别在时间t=1ms、t=2ms和t=8ms处从发送设备接收数据分组1202a-1202c。传送IP分组1203a-1203c分别封装数据分组1202a-1202c,并且在时间序列1211中分别在t=9ms、t=11ms和t=10ms处到达通信路由器108。
为了说明的目的,MST被配置为16ms。将会话的第一到达的传送IP分组的存储时间设置为MST。当传送IP分组1203a在t=9ms处到达时,则它将被存储在队列中16ms,因此,数据分组1202a被调度为在t=25ms(9ms+16ms)处被转发到目标设备。当传送IP分组1203c在t=10ms处到达时,由于数据分组1202c和1202a之间的时间差是7ms,所以在步骤1102,初始到期时间被设置为t=32ms(25ms+7ms)。存储时间基于初始到期时间,因此存储时间将为22ms(32ms-10ms)。由于在步骤1103中存储时间大于MST(22ms>16ms),所以在步骤1104将存储时间设置为MST。结果,传送IP分组1203c的到期时间被设置为t=26ms(10ms+16ms)。然后,在步骤1105,将当前存储的传送IP分组1203a的到期时间调整为t=19ms(26ms-7ms)。
当传送IP分组1203b在t=11ms处到达时,初始到期时间将被计算为t=20ms,因为传送IP分组1203a的到期时间被调整为t=19ms并且数据分组1202b在数据分组1202a之后1ms和数据分组1202c之前6ms由通信路由器106接收。在步骤1103,基于初始到期时间的存储时间将是9ms并且小于MST。然后在步骤1106将到期时间设置为t=20ms。
在一个变型中,MST仍然被配置为16ms,但是会话的第一到达的传送IP分组的存储时间仅是MST的一半。为了便于阅读,要存储的第一传送IP分组的MST的初始百分比称为PPMST。在该变型中,PPMST被设定为50%。当传送IP分组1203a在t=9ms处到达时,它将被存储在队列中8ms(16ms×50%),因此,数据分组1202a被调度为在t=17ms(9ms+8ms)处被转发到目标设备。当传送IP分组1203c在t=10ms处到达时,初始到期时间被设置为t=24ms(17ms+7ms)。因此,根据初始到期时间的存储时间将是14ms(24ms-10ms)。由于在步骤1103中存储时间小于MST,所以在步骤1106将到期时间设置为初始到期时间的相同值,即t=24ms。
当传送IP分组1203b在t=11ms处到达时,初始到期时间将被计算为t=18ms(17ms+1ms),因为传送IP分组1203a的到期时间是t=17ms并且数据分组1202b在数据分组1202a之后1ms和数据分组1202c之前6ms由通信路由器106接收。然后,在步骤1103,基于初始到期时间的存储时间将是6ms并且小于MST。在步骤1106,到期时间将被设置为t=18ms。
没有限制MST的值。也没有限制PPMST,只要PPMST不超过百分之百。如在最后一个图示中所示,当会话的第一到达的传送IP分组被设置为小于MST的值时,这降低了调整当前存储的传送IP分组的到期时间的概率。观察到的益处之一是减少对比其他传送IP分组更早到达的传送IP分组的跳动的影响。
在一个实施例中,MST的值可由用户或管理员通过命令行、网页或通信路由器的图形用户界面来配置。还可以从远程服务器检索MST的值,或者由通信路由器的供应商预先配置MST的值。在一个示例中,一个MST应用于所有传送IP分组。在另一示例中,不同的会话或流可以具有不同的MST值。因此,GUI可以允许用户或管理员输入与不同会话或流相对应的MST值。例如,源IP地址A、源端口A、目的IP地址B和目的端口B的会话的MST值可以由用户配置为10ms,而源IP地址C、源端口C、目的IP地址D和目的端口D的会话的MST值可以由用户或管理员配置为300ms。
没有限制接收路由器仅存在一个MST。在一个变型中,一个MST适用于在发送路由器和接收路由器之间绑定的所有连接。因此,多WAN路由器上绑定的站点到站点VPN连接中的所有连接或隧道具有相同的MST。在一个变型中,对于绑定连接的每个连接存在一个MST。在一个变型中,对于绑定连接的每个连接的每个会话存在一个MST。
在一个实施例中,PPMST的值还可由用户或管理员通过命令行、网页或通信路由器的GUI来配置。还可以从远程服务器检索PPMST的值,或者由通信路由器的供应商预先配置PPMST的值。在一个示例中,一个MST应用于所有传送IP分组。在另一示例中,不同的会话或流可以具有不同的PPMST值。因此,GUI可以允许用户或管理员输入与不同会话或流相对应的PPMST值。例如,第一会话的PPMST值为10%,而第二会话的PPMST值为80%。
没有限制接收路由器仅存在一个PPMST。在一个变型中,一个PPMST适用于在发送路由器和接收路由器之间绑定的所有连接。在一个变型中,绑定连接的每个连接具有其自己的PPMST。在一个变体中,每个会话具有其自己的PPMST。在一个变型中,绑定连接的每个会话和每个连接具有其自己的PPMST。
在一个变型中,当队列中没有传送IP分组时,传送IP分组的到期时间被设置为MST或大体接近MST的一半的值。这有助于减少当下一个传送IP分组晚到和/或未来的传送IP分组比其他的传送IP分组更早到达时的情况中的跳动。
本发明的实施例不限于因特网协议分组。这些实施例也适用于其他非电路交换通信协议,包括以太网。
图5示出了根据某些实施例的可用于实现系统、设备和方法的基于处理器的示例性系统500。中央处理单元(CPU)501耦接到系统总线502。CPU 501可以是任何通用CPU,或者可以是设计用于实现上述教导的专用CPU。只要CPU 501(和系统500的其他组件)支持如本文所述的发明性操作,本公开不受CPU 501(或示例性系统500的其他组件)的体系结构的限制。CPU 501可以执行本文描述的各种逻辑指令。例如,CPU 501可以执行机器级指令。当执行指令时,CPU501成为专用计算平台的专用处理器,该专用计算平台被专门配置为根据本文所述教导的各种实施例进行操作。
系统500还包括随机存取存储器(RAM)503,其可以是SRAM、DRAM、SDRAM等。系统500包括只读存储器(ROM)504,其可以是PROM、EPROM、EEPROM等。RAM 503和ROM 504保持如本领域所公知的用户和系统数据和程序。
系统500还包括输入/输出(I/O)适配器505、通信适配器511、用户接口适配器508和显示适配器509。I/O适配器505、用户接口适配器508和/或通信适配器511可以在某些实施例中,使用户能够与系统500交互以便输入信息。
I/O适配器505将诸如硬盘驱动器、光盘(CD)驱动器、软盘驱动器、磁带驱动器等中的一个或多个的存储设备506连接到系统500。除了RAM 503之外,还使用存储设备来执行与执行上述实施例中讨论的操作相关联的存储器要求。通信适配器511适于将系统500耦接到网络512,通信适配器511可以使信息能够经由这样的网络512(例如,因特网或其他广域网、局域网、公共或专用交换电话网络、无线网络、前述的任何组合)输入到系统500和/或从系统500输出。用户接口适配器508将用户输入设备(例如,键盘513、指示设备507和麦克风514)和/或输出设备(例如,扬声器515)耦接到系统500。显示适配器509由CPU 501驱动以控制显示设备510上的显示。显示适配器509发送用于变换或操纵显示设备510使用的各种像素数的状态的指令,以在视觉上向用户呈现所需信息。这些指令包括用于将状态从开启改变为关闭,设置特定颜色、强度、持续时间等的指令。每个这样的指令构成控制如何在显示设备510上显示以及在显示设备510上显示什么的渲染指令。用户接口适配器508和显示适配器509是可选的。例如,路由器可能不需要用户接口适配器508和显示适配器509,因为路由器可以通过网络512远程配置。
应当理解,本公开不限于系统500的体系结构。例如,可以利用任何合适的基于处理器的设备来实现上述教导,包括但不限于路由器、个人计算机、膝上型计算机、计算机工作站、多处理器服务器、甚至移动电话。而且,某些实施例可以在专用集成电路(ASIC)或超大规模集成(VLSI)电路上实现。实际上,本领域普通技术人员可以使用能够执行根据实施例的逻辑操作的任何数量的合适结构。
尽管已经详细描述了本发明的实施例及其优点,但是应理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变、替换和变更。此外,本申请的范围不旨在限于说明书中描述的过程、机器、制造、物质组成、装置、方法和步骤的特定实施例。本领域普通技术人员从本发明的公开内容将容易理解,根据本发明,可以使用目前存在的或稍后开发的与本文所述的相应实施例基本相同的功能或实现基本相同的结果的过程、机器、制造、物质组成、装置、方法或步骤。因此,所附权利要求旨在在其范围内包括这样的过程、机器、制造、物质组成、装置、方法或步骤。

Claims (40)

1.一种通过多个连接在第一网络节点和第二网络节点之间传送和接收数据分组的方法,其中,所述连接被绑定以形成绑定连接,所述方法包括:
a.在所述第一网络节点处,将数据分组、所述数据分组的会话标识、所述数据分组的会话序列号和所述数据分组的时间值封装在封装分组中;
b.在所述第一网络节点处,通过所述绑定连接将所述封装分组从所述第一网络节点发送到所述第二网络节点;
c.在所述第二网络节点处,在接收到所述封装分组后,将所述封装分组存储在队列中;
d.在所述第二网络节点处,确定所述封装分组的到期时间;
e.在所述第二网络节点处,当所述封装分组的所述到期时间是到期的:
i.使所述封装分组出列;和
ii.根据所述数据分组的目的地转发所述数据分组;
其中所述多个连接是通过所述第一网络节点的多个网络接口及所述第二网络节点的多个网络接口而建立的;
其中所述队列的选择是基于所述数据分组的所述会话标识;
其中所述数据分组的所述会话标识用于识别所述数据分组的会话;
其中所述数据分组的所述会话序列号允许每个会话的所述数据分组重新排序。
2.根据权利要求1所述的方法,其中基于所述时间值来确定所述封装分组的所述到期时间。
3.根据权利要求2所述的方法,其中,还基于由所述第二网络节点较早接收到的至少一个封装分组的到期时间来确定所述封装分组的所述到期时间,其中,所述至少一个封装分组和所述封装分组具有相同的会话标识。
4.根据权利要求3所述的方法,还包括步骤:调整由所述第二网络节点较早接收到的所述至少一个封装分组的所述到期时间。
5.根据权利要求1所述的方法,其中,基于所述数据分组到达所述第一网络节点的时间来确定所述时间值。
6.根据权利要求1所述的方法,其中,基于所述第一网络节点发送所述数据分组的时间或者所述第一网络节点发送时的时间来确定所述时间值。
7.根据权利要求1所述的方法,其中,所述时间值以微秒精度或纳秒精度记录。
8.根据权利要求1所述的方法,其中,所述多个连接中的至少两个具有不同的延迟。
9.根据权利要求1所述的方法,还包括步骤:将全局序列号封装在所述封装分组中。
10.根据权利要求1所述的方法,还包括步骤:将会话序列号封装在所述封装分组中。
11.一种用于通过在第一网络节点和第二网络节点之间建立的多个连接来传送和接收数据分组的系统;其中,所述连接被绑定以形成绑定连接;
所述第一网络节点包括:
至少一个第一网络接口;
至少一个第一处理单元;
至少一个第一主存储器;
存储程序指令的至少一个第一辅助存储器,所述程序指令可由所述至少一个第一处理单元执行用于以下步骤:
a.将数据分组、所述数据分组的会话标识、所述数据分组的会话序列号和所述数据分组的时间值封装在封装分组中;
b.通过所述绑定连接将所述封装分组从所述第一网络节点发送到所述第二网络节点;
所述第二网络节点包括:
至少一个第二网络接口;
至少一个第二处理单元;
至少一个第二主存储器;
存储程序指令的至少一个第二辅助存储器,所述程序指令可由所述至少一个第二处理单元执行用于以下步骤:
c.接收到所述封装分组后,将所述封装分组存储在队列中;
d.确定所述封装分组的到期时间;
e.当所述封装分组的所述到期时间是到期的:
i.使所述封装分组出列;和
ii.根据所述数据分组的目的地转发所述数据分组;
其中所述多个连接是通过所述第一网络节点的多个网络接口及所述第二网络节点的多个网络接口而建立的;
其中所述队列的选择是基于所述数据分组的所述会话标识;
其中所述数据分组的所述会话标识用于识别所述数据分组的会话;
其中所述数据分组的所述会话序列号允许每个会话的所述数据分组重新排序。
12.根据权利要求11所述的系统,其中,基于所述时间值来确定所述封装分组的所述到期时间。
13.根据权利要求12所述的系统,其中,还基于由所述第二网络节点较早接收到的至少一个封装分组的到期时间来确定所述封装分组的所述到期时间,其中,所述至少一个封装分组和所述封装分组具有相同的会话标识。
14.根据权利要求13所述的系统,其中,所述第二辅助存储单元还存储可由所述第二处理单元执行的程序指令,用于调整由所述第二网络节点较早接收到的所述至少一个封装分组的所述到期时间。
15.根据权利要求11所述的系统,其中,基于所述数据分组到达所述第一网络节点的时间来确定所述时间值。
16.根据权利要求11所述的系统,其中,基于所述第一网络节点发送所述数据分组的时间或者所述第一网络节点发送时的时间来确定所述时间值。
17.根据权利要求11所述的系统,其中,所述时间值以微秒精度或纳秒精度记录。
18.根据权利要求11所述的系统,其中,所述多个连接中的至少两个具有不同的延迟。
19.根据权利要求11所述的系统,其中,所述第一辅助存储单元还存储可由所述第一处理单元执行的程序指令,用于将全局序列号封装在所述封装分组中。
20.根据权利要求11所述的系统,其中,所述第一辅助存储器还存储可由所述第一处理单元执行的程序指令,用于将会话序列号封装在所述封装分组中。
21.一种第一接收网络节点处的分组处理方法,包括:
a.确定缓冲时段;
b.从第一发送网络节点接收第一传送分组;
c.识别第一传送分组的第一会话;
d.根据第一会话确定第一队列;
e.确定所述第一传送分组的第一到期时间;
f.当所述第一队列不为空时,基于一个或多个当前存储的传送分组的对应时间值与所述第一传送分组的对应时间值之间的时间值的差来确定所述第一到期时间;
g.当所述第一队列为空时,基于所述缓冲时段来确定所述第一到期时间;
h.将所述第一传送分组存储在所述第一队列中;
其中,所述第一传送分组封装第一数据分组的对应时间值。
22.根据权利要求21所述的方法,其中,当所述第一到期时间是到期的或者即將到期时,所述第一传送分组从所述第一队列中出列,然后被解封装以检索所述第一数据分组;其中,根据所述第一数据分组的目的地址将所述第一数据分组转发到目的网络节点。
23.根据权利要求21所述的方法,其中,所述缓冲时段对于每个绑定连接、每个会话或每个绑定连接的每个会话可配置。
24.根据权利要求21所述的方法,其中,根据所述第一传送分组中的会话标识来执行所述第一会话的识别。
25.根据权利要求21所述的方法,其中,所述第一传送分组由第一发送网络节点通过在所述第一发送网络节点和所述第一接收网络节点之间建立的多个连接之一传送到所述第一接收网络节点。
26.根据权利要求21所述的方法,其中,所述时间值以微秒精度或纳秒精度记录。
27.根据权利要求26所述的方法,其中,基于所述第一发送网络节点处的第一数据分组的到达时间来确定所述第一传送分组的所述对应时间值。
28.根据权利要求26所述的方法,其中,基于所述第一发送网络节点处的第一数据分组的传输时间来确定所述第一传送分组的所述对应时间值。
29.根据权利要求21所述的方法,其中,当先前到达的传送分组的相应会话序列号都不是1时,没有数据分组将被转发到目的节点。
30.根据权利要求21所述的方法,还包括步骤:当在所述第一队列中当前存储的分组中,所述第一传送分组的会话序列号最小时,增加所有当前存储的传送分组的到期时间。
31.一种用于分组处理的网络设备,包括:
至少一个网络接口;
至少一个处理单元;和
非暂时性计算机可读存储介质,包括可由所述处理单元执行的程序指令以执行以下操作:
a.确定缓冲时段;
b.从第一发送网络节点接收第一传送分组;
c.识别第一传送分组的第一会话;
d.根据第一会话确定第一队列;
e.确定所述第一传送分组的第一到期时间;
f.当所述第一队列不为空时,基于一个或多个当前存储的传送分组的对应时间值与所述第一传送分组的对应时间值之间的时间值的差来确定所述第一到期时间;
g.当所述第一队列为空时,基于所述缓冲时段来确定所述第一到期时间;
h.将所述第一传送分组存储在所述第一队列中;
其中,所述第一传送分组封装第一数据分组的对应时间值。
32.根据权利要求31所述的网络设备,其中,当所述第一到期时间是到期的或者即將到期时,所述第一传送分组从所述第一队列出列,然后被解封装以检索所述第一数据分组;其中,根据所述第一数据分组的目的地址将所述第一数据分组转发到目的网络节点。
33.根据权利要求31所述的网络设备,其中,所述缓冲时段对于每个绑定连接、每个会话或每个绑定连接的每个会话可配置。
34.根据权利要求31所述的网络设备,其中,根据所述第一传送分组中的会话标识来执行所述第一会话的识别。
35.根据权利要求31所述的网络设备,其中,所述第一传送分组由第一发送网络节点通过在所述第一发送网络节点和第一接收网络节点之间建立的多个连接之一发送到所述第一接收网络节点。
36.根据权利要求31所述的网络设备,其中,所述时间值以微秒精度或纳秒精度记录。
37.根据权利要求36所述的网络设备,其中,基于所述第一发送网络节点处的第一数据分组的到达时间来确定所述第一传送分组的所述对应时间值。
38.根据权利要求36所述的网络设备,其中,基于所述第一发送网络节点处的第一数据分组的传输时间来确定所述第一传送分组的所述对应时间值。
39.根据权利要求31所述的网络设备,其中,所述非暂时性计算机可读存储介质还包括可由所述处理单元执行的程序指令以执行以下操作:
当先前到达的传送分组的相应会话序列号都不是1时,没有数据分组将被转发到目的节点。
40.根据权利要求31所述的网络设备,其中,所述非暂时性计算机可读存储介质还包括可由所述处理单元执行的程序指令以执行以下操作:
当在所述第一队列中当前存储的分组中,所述第一传送分组的会话序列号最小时,增加所有当前存储的传送分组的到期时间。
CN201780086539.5A 2017-11-27 2017-11-27 通过绑定连接传送和接收数据分组的方法和系统 Active CN110301116B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2017/057399 WO2019102257A1 (en) 2017-11-27 2017-11-27 Methods and systems for transmitting and receiving data packets through a bonded connection

Publications (2)

Publication Number Publication Date
CN110301116A CN110301116A (zh) 2019-10-01
CN110301116B true CN110301116B (zh) 2021-09-28

Family

ID=66631861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780086539.5A Active CN110301116B (zh) 2017-11-27 2017-11-27 通过绑定连接传送和接收数据分组的方法和系统

Country Status (4)

Country Link
US (2) US11245546B2 (zh)
CN (1) CN110301116B (zh)
GB (1) GB2573911B (zh)
WO (1) WO2019102257A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11606118B2 (en) * 2020-08-27 2023-03-14 Connectify, Inc. Data transfer with multiple threshold actions
CN117221045A (zh) * 2020-08-28 2023-12-12 柏思科技有限公司 用于传输基于会话的包的方法和系统
CN115412488A (zh) * 2021-05-28 2022-11-29 中兴通讯股份有限公司 信息处理方法、网络设备、网络系统及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697631A (zh) * 2009-10-28 2010-04-21 中兴通讯股份有限公司 一种可序数据包的乱序调整方法及装置
CN106603407A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 组播地址的传输方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246684B1 (en) * 1997-12-24 2001-06-12 Nortel Networks Limited Method and apparatus for re-ordering data packets in a network environment
US6680933B1 (en) * 1999-09-23 2004-01-20 Nortel Networks Limited Telecommunications switches and methods for their operation
JP2003338837A (ja) * 2002-05-22 2003-11-28 Fujitsu Ltd パケット通信システムにおける通信品質保証方法及び転送遅延保証機能付きパケット通信装置
US7554929B1 (en) * 2005-11-02 2009-06-30 Verizon Services Corp. Mobility aware performance evaluation
US8499212B2 (en) * 2007-10-23 2013-07-30 Thomson Licensing Method and apparatus for adaptive forward error correction with merged automatic repeat request for reliable multicast in wireless local area networks
US8228923B1 (en) * 2008-01-09 2012-07-24 Tellabs Operations, Inc. Method and apparatus for measuring system latency using global time stamp
JP5157577B2 (ja) * 2008-03-27 2013-03-06 富士通株式会社 到着パケット廃棄決定を行うパケットバッファ管理装置及びその廃棄決定方法
US20100250747A1 (en) * 2009-03-31 2010-09-30 Jeyhan Karaoguz ADAPTIVE MULTIPLE PATHWAY SESSION SETUP TO SUPPORT QoS SERVICES
US8014295B2 (en) * 2009-07-14 2011-09-06 Ixia Parallel packet processor with session active checker
US9584443B2 (en) * 2014-08-08 2017-02-28 Pismo Labs Technology Limited Methods and systems for transmitting data through an aggregated connection
US8537697B2 (en) * 2010-02-19 2013-09-17 Gigamon Inc. Packet timing measurement
US9729350B1 (en) * 2010-05-07 2017-08-08 Amazon Technologies, Inc. Maintaining packet order in network flows over an autonomous network
WO2014064486A1 (en) * 2012-10-25 2014-05-01 Pismo Labs Technology Limited A method, device and system to prioritize encapsulating packets in a plurality of logical network connections
US10462065B2 (en) 2014-06-29 2019-10-29 Vmware, Inc. Path maximum transmission unit discovery
CN110337121B (zh) * 2014-07-14 2023-03-24 柏思科技有限公司 用于评估聚合的连接的网络性能的方法和系统
GB2532587B (en) * 2014-08-08 2021-08-04 Pismo Labs Technology Ltd Methods and systems for transmitting data through an aggregated connection
US9787776B2 (en) * 2014-08-29 2017-10-10 Pismo Labs Technology Limited Methods and systems for transmitting packets through an aggregated connection
US9948561B2 (en) * 2015-04-14 2018-04-17 Cisco Technology, Inc. Setting delay precedence on queues before a bottleneck link based on flow characteristics
US10462066B2 (en) * 2016-09-01 2019-10-29 Qualcomm Incorporated Apparatus and method for reordering data radio bearer packets

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697631A (zh) * 2009-10-28 2010-04-21 中兴通讯股份有限公司 一种可序数据包的乱序调整方法及装置
CN106603407A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 组播地址的传输方法和装置

Also Published As

Publication number Publication date
CN110301116A (zh) 2019-10-01
US20220263681A1 (en) 2022-08-18
US20200052926A1 (en) 2020-02-13
GB201910987D0 (en) 2019-09-18
US11245546B2 (en) 2022-02-08
WO2019102257A1 (en) 2019-05-31
GB2573911B (en) 2022-07-20
GB2573911A (en) 2019-11-20

Similar Documents

Publication Publication Date Title
CN109412964B (zh) 报文控制方法及网络装置
CN111682952B (zh) 针对体验质量度量的按需探测
Kuhn et al. DAPS: Intelligent delay-aware packet scheduling for multipath transport
CN106576073B (zh) 用于通过聚合连接传输数据的方法及系统
EP2959645B1 (en) Dynamic optimization of tcp connections
US10122645B2 (en) Output queue latency behavior for input queue based device
US20220263681A1 (en) Methods and systems for transmitting and receiving data packets through a bonded connection
CN110022264B (zh) 控制网络拥塞的方法、接入设备和计算机可读存储介质
EP3120253B1 (en) Flow aware buffer management for data center switches
US9584414B2 (en) Throughput optimization for bonded variable bandwidth connections
US9419902B1 (en) Method and system for network micro flow control
CN111800351B (zh) 由交换机进行的拥塞通知分组生成
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US9444741B2 (en) Facilitating network flows
KR102177574B1 (ko) 컴퓨팅 디바이스에서 패킷 수명을 예측하기 위한 큐잉 시스템
US10560383B2 (en) Network latency scheduling
EP3895398B1 (en) Communication system with de-jitter buffer for reducing jitter
US20180176144A1 (en) APPARATUS FOR SELF-REGULATER (SR) LAST-IN, FIRST-OUT (LIFO) SCHEDULING IN SOFTWARE DEFINED NETWORKS (SNDs) WITH HYBRID TRAFFIC
US8838782B2 (en) Network protocol processing system and network protocol processing method
KR20180013174A (ko) 무선 통신 시스템에서 데이터의 전송 방법 및 장치
US11729099B2 (en) Scalable E2E network architecture and components to support low latency and high throughput
CN118368038A (zh) 通信方法及装置
CN114157399A (zh) 一种tcp反馈包ack包的优化方法、装置以及系统
EP3488571A1 (en) Resource efficient forwarding of guaranteed and non-guaranteed data packets

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40014525

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant