CN106576073B - Method and system for transmitting data through aggregated connections - Google Patents
Method and system for transmitting data through aggregated connections Download PDFInfo
- Publication number
- CN106576073B CN106576073B CN201480081080.6A CN201480081080A CN106576073B CN 106576073 B CN106576073 B CN 106576073B CN 201480081080 A CN201480081080 A CN 201480081080A CN 106576073 B CN106576073 B CN 106576073B
- Authority
- CN
- China
- Prior art keywords
- oep
- packet
- gsn
- tunnel
- dep
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
技术领域technical field
本发明一般涉及计算机网络领域。更具体地,本发明涉及用于处理通过具有多个隧道的聚合连接传输的数据包、封装包以及复制封装包的方法和系统。The present invention relates generally to the field of computer networks. More particularly, the present invention relates to methods and systems for handling data packets, encapsulated packets, and replicating encapsulated packets transmitted over an aggregated connection having multiple tunnels.
背景技术Background technique
多广域网(WAN)站点到站点VPN路由器是支持聚合多个互连(例如,用于访问一个或多个远程专用网络的WAN连接)的带宽的路由器。在一些实施方式中,每个TCP/IP会话路由到仅一个WAN。在这种配置中,单个TCP文件传输会话只能利用每端上的一个WAN连接的带宽。例如,在基于会话的站点到站点虚拟专用网(VPN)连接中,VPN流量被路由至两个站点(例如,站点A和站点B)之间的多个WAN连接。A multi-wide area network (WAN) site-to-site VPN router is a router that supports aggregating the bandwidth of multiple interconnections (eg, WAN connections used to access one or more remote private networks). In some implementations, each TCP/IP session is routed to only one WAN. In this configuration, a single TCP file transfer session can only utilize the bandwidth of one WAN connection on each end. For example, in a session-based site-to-site virtual private network (VPN) connection, VPN traffic is routed to multiple WAN connections between two sites (eg, Site A and Site B).
在一种实施方式中,最初在WAN连接之间形成M×N个隧道,其中M和N分别是站点A和站点B的WAN网络连接的数量。随后,应用程序TCP/IP会话在不同的隧道上路由。然而,值得注意的是,虽然基于会话的站点到站点VPN能够针对不同的会话使用不同的隧道,但是在这种类型的连接中的单个下载会话仅能够利用一个隧道。In one embodiment, M x N tunnels are initially formed between the WAN connections, where M and N are the number of WAN network connections for Site A and Site B, respectively. Subsequently, application TCP/IP sessions are routed over different tunnels. However, it is worth noting that while a session-based site-to-site VPN can use different tunnels for different sessions, a single download session in this type of connection can only utilize one tunnel.
在无线通信中,包传输的质量可能是不可预测的,并且丢包率可频繁地改变。这会降低整个包传输的质量。即使每个隧道的带宽限制很高,但是丢包率也可能不会改善。需要一种解决方案来利用多个隧道来提高成功传输数据的几率,这可以通过使用复制包来实现。In wireless communications, the quality of packet transmission can be unpredictable, and the packet loss rate can change frequently. This degrades the quality of the entire package transfer. Even with a high per-tunnel bandwidth limit, the packet loss rate may not improve. A solution is needed to utilize multiple tunnels to improve the odds of successfully transferring data, which can be achieved by using replicated packets.
发明内容Contents of the invention
本发明公开了用于处理在第一网络节点处接收的数据包的方法和系统。当第一网络节点从第一网络节点的网络接口接收数据包时,第一网络节点根据选择策略选择第一隧道,并且还根据该选择策略不选择或选择至少一个第二隧道。随后,第一网络节点通过第一隧道传输原始封装包(OEP)。OEP将数据包封装,并且每个OEP具有原始封装包全局序列号(OEP-GSN)。OEP-GSN存储在每个OEP的字段中。当选择了至少一个第二隧道时,第一网络节点还通过至少一个第二隧道传输至少一个复制封装包(DEP)。至少一个DEP封装数据包中的至少一个。至少一个DEP中的每一个具有存储在至少一个DEP中的每一个的字段中的复制封装包全局序列号(DEP-GSN)。The present invention discloses a method and system for processing data packets received at a first network node. When the first network node receives a data packet from the network interface of the first network node, the first network node selects the first tunnel according to the selection strategy and also does not select or selects at least one second tunnel according to the selection strategy. Subsequently, the first network node transmits an original encapsulating packet (OEP) through the first tunnel. The OEP encapsulates the data packet, and each OEP has an original encapsulated packet global sequence number (OEP-GSN). OEP-GSN is stored in a field of each OEP. When at least one second tunnel is selected, the first network node also transmits at least one duplicate encapsulation packet (DEP) via the at least one second tunnel. At least one of the at least one DEP-encapsulated packets. Each of the at least one DEP has a duplicate encapsulating packet global sequence number (DEP-GSN) stored in a field of each of the at least one DEP.
第一隧道和至少一个第二隧道可包括在聚合连接中。选择策略基于以下标准中的一个或多个:用户选择、多个隧道的性能、服务提供商、使用限制、位置、时间、使用价格、安全性、用户身份、互联网协议地址范围、通信协议、通信技术、应用和装置。根据实施例之一,第一隧道的性能被确定为优于第二隧道的性能,并且性能实质上基于隧道的延迟和带宽。The first tunnel and at least one second tunnel may be included in the aggregated connection. The selection policy is based on one or more of the following criteria: user selection, performance of multiple tunnels, service provider, usage restrictions, location, time of day, usage price, security, user identity, Internet protocol address range, communication protocol, communication Technologies, Applications and Devices. According to one of the embodiments, the performance of the first tunnel is determined to be better than the performance of the second tunnel, and the performance is substantially based on the delay and bandwidth of the tunnel.
根据实施例之一,OEP的OEP-GSN与至少一个DEP的DEP-GSN相同。According to one of the embodiments, the OEP-GSN of the OEP is the same as the DEP-GSN of at least one DEP.
根据实施例之一,所述至少一个DEP包括OEP-GSN的列表。OEP-GSN的列表包含至少一个OEP-GSN。According to one of the embodiments, said at least one DEP comprises a list of OEP-GSNs. The list of OEP-GSNs contains at least one OEP-GSN.
根据实施例之一,当针对每个OEP传输多个DEP时,通过聚合连接的不同隧道来传输多个DEP中的每一个。According to one of the embodiments, when multiple DEPs are transmitted for each OEP, each of the multiple DEPs is transmitted over a different tunnel of the aggregated connection.
本发明还公开了用于在第二网络节点处处理通过聚合连接从第一网络节点接收的封装包的方法和系统。第二网络节点通过聚合连接的隧道中的一个接收封装包。封装包可以为OEP或DEP。当封装包为OEP时,其封装数据包。作为替代,当封装包是DEP时,其封装实质上基于数据包的数据包信息。数据包可源自第一网络节点,或者通过第一网络节点接收数据包。第二网络节点确定是否之前已经通过聚合连接接收了数据包。该确定实质上基于缺失的全局序列号(GSN)的记录。当第二网络节点确定转发数据包时,如果封装包是OEP,则第二网络节点从封装包中解封装数据包。如果封装包是DEP,则第二网络节点实质上基于数据包信息重新创建数据包。随后,第二网络节点将数据包转发至其目的地。在数据包的报头中指示目的地。随后,第二网络节点可更新缺失的GSN的记录。The invention also discloses a method and system for processing at a second network node an encapsulated packet received from a first network node over an aggregated connection. The second network node receives the encapsulated packet through one of the tunnels of the aggregated connection. The encapsulation package can be OEP or DEP. When the encapsulating packet is OEP, it encapsulates a data packet. Alternatively, when the encapsulating packet is DEP, its encapsulation is substantially based on the packet information of the packet. The data packet may originate from the first network node, or be received by the first network node. The second network node determines whether the data packet has been previously received over the aggregated connection. This determination is essentially based on missing Global Sequence Number (GSN) records. When the second network node determines to forward the data packet, if the encapsulated packet is an OEP, the second network node decapsulates the data packet from the encapsulated packet. If the encapsulated packet is DEP, the second network node essentially recreates the data packet based on the data packet information. Subsequently, the second network node forwards the data packet to its destination. Indicates the destination in the header of the packet. Subsequently, the second network node may update the records of the missing GSNs.
根据实施例之一,当封装包是DEP且数据包信息保存多个封装的包或纠错信息时,封装包包括OEP-GSN的列表。According to one of the embodiments, when the encapsulation package is DEP and the data package information stores multiple encapsulated packages or error correction information, the encapsulation package includes a list of OEP-GSNs.
根据实施例之一,第二网络节点确定与数据包对应的GSN是否在缺失的GSN的记录中。如果GSN不在缺失的GSN的记录中,则第二网络节点确定不转发数据包,作为替代,如果GSN在缺失的GSN的记录中,则第二网络节点确定转发数据包。According to one of the embodiments, the second network node determines whether the GSN corresponding to the data packet is in the record of the missing GSN. If the GSN is not in the record of the missing GSN, the second network node determines not to forward the data packet, instead, if the GSN is in the record of the missing GSN, the second network node determines to forward the data packet.
根据实施例之一,第二网络节点可在确定是否要转发数据包之后进一步更新预期的全局序列号。According to one of the embodiments, the second network node may further update the expected global sequence number after determining whether to forward the data packet.
附图说明Description of drawings
图1A示出了根据本发明的实施例的用于优化多个可变带宽连接的吞吐量的整个系统;FIG. 1A shows an overall system for optimizing the throughput of multiple variable bandwidth connections according to an embodiment of the present invention;
图1B示出了根据本发明的各实施例的网络环境;Figure 1B shows a network environment according to various embodiments of the present invention;
图1C示出了根据被配置为优化绑定的多个可变带宽连接的吞吐量的实施例所适配的系统100;FIG. 1C illustrates a system 100 adapted in accordance with an embodiment configured to optimize throughput of bonded multiple variable bandwidth connections;
图2A示出了描绘根据本发明的实施例的用于提高绑定连接的吞吐量的方法的流程图;FIG. 2A shows a flowchart depicting a method for increasing throughput of a bonded connection according to an embodiment of the present invention;
图2B示出了描绘根据本发明的实施例的用于提高绑定连接的吞吐量的方法的流程图;FIG. 2B shows a flowchart depicting a method for increasing the throughput of a bonded connection according to an embodiment of the present invention;
图3是示出根据本发明的实施例的可以封装在所传输的IP包中的信息的类型的示例实施例;Figure 3 is an example embodiment illustrating the types of information that may be encapsulated in transmitted IP packets according to an embodiment of the invention;
图4A是示出根据本发明的实施例的可以封装在反馈包中的信息的类型的示例实施例;FIG. 4A is an example embodiment illustrating the types of information that may be encapsulated in a feedback packet according to an embodiment of the invention;
图4B是示出图4A的反馈包的字段的可能值的图表;Figure 4B is a chart showing possible values for the fields of the feedback packet of Figure 4A;
图5描绘了适于实现本发明的处理系统的框图;Figure 5 depicts a block diagram of a processing system suitable for implementing the present invention;
图6是示出根据本发明的各实施例的用于通过聚合连接传输封装包的处理的流程图;FIG. 6 is a flowchart illustrating a process for transmitting encapsulated packets over an aggregated connection, according to various embodiments of the invention;
图7是示出用于处理接收到的封装包的处理的流程图;FIG. 7 is a flowchart illustrating a process for processing a received encapsulated packet;
图8A示出了根据各实施例的原始封装包(OEP)的结构;Figure 8A illustrates the structure of an original encapsulation packet (OEP) according to various embodiments;
图8B示出了根据本发明的实施例之一的复制封装包(DEP)的结构;Figure 8B shows the structure of a duplicate encapsulation package (DEP) according to one of the embodiments of the present invention;
图8C示出了根据本发明的实施例之一的DEP的结构;Figure 8C shows the structure of a DEP according to one of the embodiments of the present invention;
图9是示出根据本发明的实施例之一的用于传输DEP的处理的流程图;FIG. 9 is a flowchart showing a process for transmitting DEP according to one of the embodiments of the present invention;
图10是示出根据本发明的实施例之一的处理的流程图;Figure 10 is a flowchart showing processing according to one of the embodiments of the present invention;
图11是示出处理通过聚合连接接收到的封装包的处理的流程图;FIG. 11 is a flowchart illustrating the process of processing encapsulated packets received over an aggregated connection;
图12A示出了根据示例性实施例的DEP的内容;FIG. 12A shows the contents of a DEP according to an exemplary embodiment;
图12B示出了根据实施例之一的DEP的内容;Figure 12B shows the contents of a DEP according to one of the embodiments;
图12C示出了根据实施例之一的DEP的内容;以及Figure 12C shows the contents of a DEP according to one of the embodiments; and
图13是示出根据实施例之一的用于处理DEP的处理的流程图。Fig. 13 is a flowchart illustrating a process for handling DEP according to one of the embodiments.
具体实施方式Detailed ways
图1A示出了根据被配置为通过在数据传输会话期间调整隧道带宽加权模式来优化绑定的多个可变带宽连接的吞吐量的实施例所适配的系统101。系统101包括每个包括至少一个网络节点的多个站点102和104。网络节点可以被称为通信路由器。然而,本发明的范围不限于通信路由器,使得本发明能够在网关、路由器、服务器或任何其它类型的网络节点处执行。为了简单起见,图1A示出:站点102包括通信路由器106并且站点104包括通信路由器108。通信路由器106和通信路由器108可实现为支持聚合多个互联网连接的带宽的多WAN路由器。通信路由器106和通信路由器108通过网络110连接。网络110可包括LAN、MAN、WAN、无线网络、PSTN、互联网、内联网、外联网等。FIG. 1A illustrates a system 101 adapted according to an embodiment configured to optimize throughput of bonded multiple variable bandwidth connections by adjusting tunnel bandwidth weighting patterns during a data transfer session. System 101 includes a plurality of sites 102 and 104 each including at least one network node. A network node may be referred to as a communication router. However, the scope of the invention is not limited to communication routers, so that the invention can be performed at a gateway, router, server or any other type of network node. For simplicity, FIG. 1A shows that site 102 includes communication router 106 and site 104 includes communication router 108 . Communications router 106 and communications router 108 may be implemented as multi-WAN routers that support aggregating the bandwidth of multiple Internet connections. Communication router 106 and communication router 108 are connected by network 110 . Network 110 may include a LAN, MAN, WAN, wireless network, PSTN, Internet, Intranet, Extranet, and the like.
站点102和路由器106可包括M个连接112,并且站点104和路由器108可包括N个连接114。连接112和连接114是用于在站点102和站点104之间的网络110中通信信息的数据连接。在所示实施例中,M等于3且N等于2;然而,这些值可根据期望的路由器及配置而变化。连接112和连接114可以具有类似或不同的带宽能力。此外,连接112和连接114可包括不同类型的WAN连接,比如WiFi、有线、DSL、Tl、3G、4G、卫星连接等。还应注意,站点102和站点104均可被认为是发送方或接收方,并且关于两者之中任一站点的功能的讨论可在另一个站点上实现。换言之,系统101可被实现为对称网络。Site 102 and router 106 may include M connections 112 and site 104 and router 108 may include N connections 114 . Connection 112 and connection 114 are data connections used to communicate information in network 110 between site 102 and site 104 . In the illustrated embodiment, M is equal to 3 and N is equal to 2; however, these values may vary depending on the desired router and configuration. Connection 112 and connection 114 may have similar or different bandwidth capabilities. Additionally, connection 112 and connection 114 may include different types of WAN connections, such as WiFi, cable, DSL, T1, 3G, 4G, satellite connections, and the like. It should also be noted that both site 102 and site 104 may be considered senders or receivers, and a discussion of the functionality of either site may be implemented at the other site. In other words, system 101 may be implemented as a symmetric network.
图1B示出了根据本发明的实施例之一的网络环境。在通信路由器106和通信路由器108之间建立了隧道103A、103B和103C。可以绑定隧道103A、103B和103C以形成聚合连接。FIG. 1B shows a network environment according to one of the embodiments of the present invention. Tunnels 103A, 103B and 103C are established between communication router 106 and communication router 108 . Tunnels 103A, 103B, and 103C may be bonded to form an aggregated connection.
根据实施例之一,通信路由器106和通信路由器108可具有多个网络接口。通信路由器106经由其多个网络接口中的一个或多个与通信路由器108的一个或多个网络接口建立隧道103A、103B和103C。According to one of the embodiments, communications router 106 and communications router 108 may have multiple network interfaces. Communications router 106 establishes tunnels 103A, 103B, and 103C with one or more network interfaces of communications router 108 via one or more of its plurality of network interfaces.
通信装置106和通信装置108可用作网关、路由器、交换机、接入点、集线器、网桥等。Communications device 106 and communications device 108 may function as gateways, routers, switches, access points, hubs, bridges, and the like.
图1C示出了根据被配置为优化绑定的多个可变带宽连接的吞吐量的实施例所适配的系统100。除了MxN个虚拟隧道116以外,系统100类似于系统101。当比如通过实现绑定的站点到站点的VPN连接在站点102和站点104之间创建绑定连接时,可创建MxN个隧道116。隧道116与站点102的网络连接和站点104的网络连接的唯一排列相对应。聚合连接可在通信路由器106和通信路由器108之间形成。隧道116可为虚拟隧道。FIG. 1C illustrates a system 100 adapted in accordance with an embodiment configured to optimize throughput of a bonded plurality of variable bandwidth connections. System 100 is similar to system 101 except that there are M×N virtual tunnels 116 . When a bonded connection is created between site 102 and site 104, such as by implementing a bonded site-to-site VPN connection, MxN tunnels 116 may be created. Tunnel 116 corresponds to a unique arrangement of site 102's network connections and site 104's network connections. An aggregated connection may be formed between communications router 106 and communications router 108 . Tunnel 116 may be a virtual tunnel.
多个所建立的隧道116可以被聚合、结合或绑定在一起以形成一个聚合连接。本领域技术人员应该理解,存在无数种方式来聚合、结合或绑定多个所建立的隧道以形成一个聚合隧道。聚合连接被正在使用其的会话或应用程序视为一个隧道。聚合连接可为端到端连接、虚拟专用网络连接或无面向连接的连接。例如,聚合连接可为TCP连接或UDP连接。在另一个示例中,聚合连接是多个隧道的聚合,并且每个隧道在通信路由器106和通信路由器108之间链接。在另一个示例中,聚合连接可为包括多个所建立的隧道的VPN隧道,并且每个所建立的隧道在通信路由器106和通信路由器108之间链接。Multiple established tunnels 116 may be aggregated, bonded or bound together to form an aggregated connection. Those skilled in the art will appreciate that there are countless ways to aggregate, combine or bind multiple established tunnels to form one aggregated tunnel. An aggregated connection is considered a tunnel by the session or application that is using it. Aggregated connections can be peer-to-peer, virtual private network, or non-connection-oriented. For example, the aggregate connection can be a TCP connection or a UDP connection. In another example, the aggregated connection is an aggregate of multiple tunnels, and each tunnel is linked between communications router 106 and communications router 108 . In another example, the aggregated connection may be a VPN tunnel that includes multiple established tunnels, and each established tunnel is linked between communications router 106 and communications router 108 .
图2A示出了描绘用于提高绑定连接的吞吐量的方法200的系统100的操作的高级流程图。应当理解,图2A中提供的特定功能、功能的顺序等旨在作为根据本发明构思的示例性操作。因此,可以以不同于所示实施例的方式的各种方式来实现本文中的构思。FIG. 2A shows a high-level flowchart depicting the operation of the system 100 of a method 200 for increasing throughput of a bonded connection. It should be understood that the specific functions, order of functions, etc., presented in FIG. 2A are intended as exemplary operations in accordance with the inventive concept. Thus, the concepts herein can be implemented in various ways other than those of the illustrated embodiments.
在所示实施例的块201处,当比如通过实现绑定的站点到站点VPN连接在站点102和站点104之间建立绑定连接时,可以创建如图1C中所示的MxN个虚拟隧道116。虚拟隧道116与站点102的网络连接和站点104的网络连接的唯一排列相对应。At block 201 of the illustrated embodiment, when a bonded connection is established between site 102 and site 104, such as by implementing a bonded site-to-site VPN connection, MxN virtual tunnels 116 as shown in FIG. 1C may be created . Virtual tunnel 116 corresponds to a unique arrangement of site 102's network connections and site 104's network connections.
在所示实施例的块202处,确定和/或分配隧道的默认权重。为了确定默认权重,实施例交换站点102和站点104之间的连接112和连接114的上行链路带宽数据和下行链路带宽数据。使用这种带宽数据,可以根据下述方法计算默认权重:假设站点102的连接1至连接m的下行链路带宽是d1,d2...dm,并且站点104的连接1至连接n的上行链路带宽是U1,U2,...Un;站点102的连接X和站点104的连接Y之间的隧道的默认权重可被定义为DW(x,y),其中DW(x,y)=dx.dy。使用上述方法来计算默认权重,如果连接112-1到连接112-3是具有对应的10M/6M、8M/4M和6M/6M的上行链路/下行链路带宽的多WAN路由器的WAN连接,并且连接114-1到连接114-2是具有对应的7M/5M和9M/3M的上行链路/下行链路带宽的多WAN路由器的WAN连接,则每个隧道的各自的默认权重将如下所示:At block 202 of the illustrated embodiment, a default weight for the tunnel is determined and/or assigned. To determine the default weights, an embodiment exchanges uplink bandwidth data and downlink bandwidth data for connection 112 and connection 114 between site 102 and site 104 . Using this bandwidth data, the default weights can be calculated according to the following method: Assume that the downlink bandwidth of connection 1 to connection m of site 102 is d1,d2...dm, and the uplink bandwidth of connection 1 to connection n of site 104 is The road bandwidth is U1, U2,...Un; the default weight of the tunnel between connection X of site 102 and connection Y of site 104 can be defined as DW(x,y), where DW(x,y)=dx .dy. Using the above method to calculate the default weight, if connection 112-1 to connection 112-3 are WAN connections of multi-WAN routers with corresponding uplink/downlink bandwidths of 10M/6M, 8M/4M and 6M/6M, and connection 114-1 to connection 114-2 are WAN connections of multi-WAN routers with corresponding uplink/downlink bandwidths of 7M/5M and 9M/3M, then the respective default weights for each tunnel will be as follows Show:
【表001】【Table 001】
注意,构思了用于计算默认权重的其它方式,因此上述内容仅是本发明的实施例的实施方式示例。注意,可以使用许多不同的加权模式来定义隧道的初始带宽。例如,可能期望仅使用接收站点的下行链路容量和发送站点的上行链路容量来在一个方向上对隧道加权。针对本发明的目的可以使用用于表征在建立绑定连接时隧道的容量的任何加权模式。Note that other ways to calculate default weights are contemplated, so the above are merely implementation examples of embodiments of the invention. Note that many different weighting schemes can be used to define the initial bandwidth of the tunnel. For example, it may be desirable to weight the tunnel in one direction using only the downlink capacity of the receiving site and the uplink capacity of the sending site. Any weighting scheme for characterizing the capacity of a tunnel when establishing a bonded connection may be used for the purposes of the present invention.
当根据实施例将包从站点102路由至站点104时,以根据有效权重EW(x,y)的比率将包分配给隧道。最初,将实施例的有效权重设置为等于默认权重,EW(x,y)=DW(x,y),并且如果隧道116的带宽保持初始设置不变,则该有效权重对于包分配而言是最佳的。然而,如果用户在TCP会话中正通过绑定网络连接来下载文件时一个或多个隧道丢包,则该会话的整个吞吐量会大幅下降。在某种程度上来讲,这是因为丢包将使得TCP持续重传,虽然没有丢包的隧道未被完全占用,但TCP的流量控制也将保持较低的吞吐量。When routing packets from site 102 to site 104 according to an embodiment, the packets are assigned to tunnels in a ratio according to the effective weight EW(x,y). Initially, the effective weight of an embodiment is set equal to the default weight, EW(x,y)=DW(x,y), and is The best. However, if one or more tunnels lose packets while a user is downloading a file over a bonded network connection in a TCP session, the overall throughput for that session will drop significantly. To some extent, this is because packet loss will cause TCP to continue to retransmit. Although the tunnel without packet loss is not fully occupied, TCP's flow control will also maintain a low throughput.
增加吞吐量的一种有效方式是避免这种丢包。为此,本发明的实施例在所示实施例的块203处当隧道正经历丢包率的增加或减少时进行识别。实施例还用于在块204处修改正在经历或已经经历了丢包率改变的隧道的有效权重。可以连续地监控丢包率信息,或者基于具体时间段来监控丢包率信息。一旦确定隧道正在经历不能接受的丢包率时(块204-1),则所示实施例块在204-2处减小隧道的有效权重。在一些实施例中,不能接受可能意味着丢包率是非零量,而其它实施例可确定不能接受的比率为超过预先定义的阈值的任何比率。实施例以逐步方式、以连续方式、以与丢包率的增加成比例地一次性减少等方式来实现有效权重减少。当以逐步方式进行减少的时候,实施例可继续监控该隧道,以便优化所实现的减少量。An effective way to increase throughput is to avoid this packet loss. To this end, embodiments of the present invention identify at block 203 of the illustrated embodiment when a tunnel is experiencing an increase or decrease in packet loss rate. Embodiments also provide for modifying the effective weight of tunnels that are experiencing or have experienced a change in packet loss rate at block 204 . The packet loss rate information may be monitored continuously, or based on a specific time period. Once it is determined that the tunnel is experiencing an unacceptable rate of packet loss (block 204-1), the illustrated embodiment blocks at 204-2 the effective weight of the tunnel. In some embodiments, unacceptable may mean that the packet loss rate is a non-zero amount, while other embodiments may determine an unacceptable rate as any rate that exceeds a predefined threshold. Embodiments implement effective weight reduction in a step-by-step manner, in a continuous manner, with a one-time reduction proportional to the increase in packet loss rate, and the like. When reductions are made in a stepwise manner, embodiments may continue to monitor the tunnel in order to optimize the amount of reduction achieved.
可以通过从路由器106或路由器108经由每个隧道发送心跳包来建立或监控隧道116。在一些实施例中,当接收端在一段时间内未能从隧道接收心跳包时,则其将该隧道视为关闭,并且该隧道将不用于路由流量。如果心跳包再次开始被接收,则该隧道可被重新建立,并且连同其它隧道一起被加权。由此,在所有包在隧道中丢失且该隧道的有效权重减少为零的情况下,实施例可利用心跳包来监控和重新建立连接。Tunnels 116 may be established or monitored by sending heartbeat packets from router 106 or router 108 through each tunnel. In some embodiments, when the receiver fails to receive a heartbeat packet from a tunnel for a period of time, then it considers the tunnel closed and the tunnel will not be used for routing traffic. If heartbeat packets start being received again, the tunnel can be re-established and weighted along with the other tunnels. Thus, embodiments may utilize heartbeat packets to monitor and re-establish connections in the event that all packets are lost in a tunnel and the tunnel's effective weight is reduced to zero.
此外,当隧道恢复其各自带宽的全部或部分时,例如,确定丢包率下降(块204-3),则所示实施例用于增加这种隧道的有效权重(块204-4),以便充分地或更加充分地利用带宽。一些实施例使用预定步长来增加隧道的有效权重,直到重新获得精确的有效权重。其它实施例可与重新测量的丢包率相对应的重新测量的带宽成比例地增加有效权重。此外,实施例可基于预定线性或指数标度来增加隧道的有效权重。Furthermore, when a tunnel restores all or part of its respective bandwidth, e.g., it is determined that the packet loss rate has dropped (block 204-3), then the illustrated embodiment acts to increase the effective weight of such tunnel (block 204-4) so that Fully or more fully utilize bandwidth. Some embodiments increase the tunnel's effective weight using a predetermined step size until the exact effective weight is regained. Other embodiments may increase the effective weight in proportion to the remeasured bandwidth corresponding to the remeasured packet loss rate. Furthermore, embodiments may increase the effective weight of a tunnel based on a predetermined linear or exponential scale.
在调整隧道的有效权重之后,或者确定无需调整时,则在所示实施例的块205处更新系统的加权模式。该更新可包括存储任何处理的信息、在进一步处理中使用这种信息、使得系统不采取动作等。例如,可操作关于块205所执行的处理以在一段时间内平均加权模式,比如,从而减少与高度瞬态异常相关的错误。此外,如关于图2B所讨论的那样,更新的信息可在系统100上使用,以修改数据传输会话的包分配。系统100可继续在数据传输会话期间连续地或周期地实施203至205的步骤。After the tunnel's effective weights are adjusted, or when it is determined that no adjustment is necessary, the system's weighting scheme is updated at block 205 of the illustrated embodiment. This updating may include storing any processed information, using such information in further processing, causing the system to take no action, and the like. For example, the processing performed with respect to block 205 may be operable to average the weighted patterns over a period of time, eg, to reduce errors associated with highly transient anomalies. In addition, the updated information can be used on the system 100 to modify packet allocations for data transfer sessions, as discussed with respect to FIG. 2B. The system 100 may continue to implement steps 203 to 205 continuously or periodically during the data transfer session.
图2B示出了这样的实施例,其中在实施加权方法200以后,至少部分地基于修改的隧道权重来分配包。具体地,所示实施例的块206进行操作以根据由方法200的操作而确定的加权模式来分配穿过隧道的包。在一些实施例中,这种分配将在数据传输会话期间改变,因此,图2B的步骤示出为循环。一些实施例每当在块205处更新系统时改变包分配。此外,块205可响应于某些丢失率改变阈值等使得改变被周期地实施。应当理解,通过方法200的操作来确定加权与在块206处将所确定的权重应用至包分配可具有不同的周期。例如,方法200可操作为使用相对短的迭代周期来提供加权模式信息的更新,而使用更长的迭代周期来基于这种加权模式信息改变包的分配。FIG. 2B illustrates an embodiment where after weighting method 200 is implemented, packets are allocated based at least in part on the modified tunnel weights. Specifically, block 206 of the illustrated embodiment operates to distribute packets traversing the tunnel according to a weighting pattern determined by the operations of method 200 . In some embodiments, this allocation will change during the data transfer session, therefore, the steps of Figure 2B are shown as loops. Some embodiments change the packet allocation whenever the system is updated at block 205 . Additionally, block 205 may change thresholds, etc. such that changes are implemented periodically in response to certain loss rates. It should be appreciated that determining weights by the operations of method 200 and applying the determined weights to packet allocations at block 206 may have a different period. For example, the method 200 is operable to use relatively short iteration periods to provide updates of weighting pattern information, while using longer iteration periods to change the allocation of packets based on such weighting pattern information.
为了监控各个隧道116的带宽,本发明的一些实施例使每个传输的IP包封装有各种信息。图3示出了示出可被封装在传输的IP包中的信息类型300的示例实施例。传输的IP包可被称为封装包,即,原始封装包或复制封装包。原始封装包和复制封装包的细节在图8A、图8B和图8C中示出。版本字段302可包含关于正在使用的协议版本的信息,并且协议类型字段303可包含有效载荷包的协议类型。通常,该字段的值将与包的以太网协议类型相对应。然而,可在其它文档中定义附加值。隧道ID字段304可为32位字段,并且可包含用于识别IP包的当前隧道的标识符。高级加密标准(AES)初始化向量字段306可为32位字段,并且可包含用于AES加密的初始化向量。全局序列号字段308可为32位字段,并且可包含被用于当各会话的包从它们各自的隧道出现时将各种会话的各个包重新排序为适当的顺序的序列号。每个隧道序列号(per tunnel sequence number)字段310可为32位字段,其可表示分配给被路由至特定隧道的每个包的序列号。AES加密有效载荷字段312可用于传输IP包的有效载荷。为了有效载荷的更高的安全性,可应用AES加密以防止来自第三方的攻击。In order to monitor the bandwidth of each tunnel 116, some embodiments of the present invention enable each transmitted IP packet to be encapsulated with various information. FIG. 3 illustrates an example embodiment illustrating the types of information 300 that may be encapsulated in transmitted IP packets. The transmitted IP packets may be called encapsulated packets, ie original encapsulated packets or duplicate encapsulated packets. Details of the original and duplicate capsules are shown in Figures 8A, 8B and 8C. Version field 302 may contain information about the protocol version being used, and protocol type field 303 may contain the protocol type of the payload packet. Typically, the value of this field will correspond to the Ethernet protocol type of the packet. However, additional values can be defined in other documents. Tunnel ID field 304 may be a 32-bit field and may contain an identifier for identifying the current tunnel of the IP packet. Advanced Encryption Standard (AES) initialization vector field 306 may be a 32-bit field and may contain an initialization vector for AES encryption. The global sequence number field 308 may be a 32-bit field and may contain sequence numbers that are used to reorder the individual packets of the various sessions into the proper order as they emerge from their respective tunnels. A per tunnel sequence number field 310 may be a 32-bit field that may represent a sequence number assigned to each packet routed to a particular tunnel. AES encrypted payload field 312 may be used to transport the payload of the IP packet. For higher security of the payload, AES encryption can be applied to prevent attacks from third parties.
上面讨论的每个隧道序列号可用于监控隧道中丢失的包。在一个实施例中,接收端处的路由器通过监控接收到的包的每个隧道序列号,以每f秒计算每个隧道的丢包率DR(x,y)。DR(x,y)可被表征为在时间段f内缺失的序列号除以序列号增长。时间段f的长度可变,并且在一个实施例中f等于5秒。The per-tunnel sequence numbers discussed above can be used to monitor lost packets in the tunnel. In one embodiment, the router at the receiving end calculates the packet loss rate DR(x,y) of each tunnel every f seconds by monitoring the sequence number of each tunnel in the received packet. DR(x,y) can be characterized as missing sequence numbers divided by sequence number growth during time period f. The length of the time period f is variable, and in one embodiment f is equal to 5 seconds.
也可使用其它方法来监控丢失的数据包,例如:发送方可周期性地通知接收端它已经发送了多少个数据包,发送方每恒定时间段向接收端发送心跳包并且接收端能够通过监控心跳包的丢失率来估算整个丢失率,通过从物理接口/装置/层获得丢失率数据,等等。Other methods can also be used to monitor lost packets, for example: the sender can periodically notify the receiver how many packets it has sent, the sender sends a heartbeat packet to the receiver every constant period of time and the receiver can pass the monitoring Heartbeat packet loss rate to estimate the overall loss rate, by obtaining loss rate data from physical interface/device/layer, etc.
接收端可向发送路由器反馈特定隧道的丢失率、有效权重、或其它带宽指示符。当发送方接收关于包丢失的信息时,一些实施例将隧道的有效权重EW(x,y)降低EW(x,y)·DR(x,y)。其它度量标准可以用于修改隧道的有效权重。在一些实施例中,发送方可接收反馈,并且有效权重可被降低大于或小于丢包率的数。可根据通信系统的特定需求来配置这种差异。上述示例提出了这样一种度量标准,其尝试将隧道的有效权重降低至防止进一步包丢失的同时最大化隧道的可用带宽量的权重。找到这种平衡的任何度量标准可为优选的。The receiving end can feed back the loss rate, effective weight, or other bandwidth indicator for a particular tunnel to the sending router. When the sender receives information about packet loss, some embodiments reduce the tunnel's effective weight EW(x,y) by EW(x,y)·DR(x,y). Other metrics can be used to modify the effective weight of the tunnel. In some embodiments, the sender may receive feedback and the effective weight may be reduced by an amount greater or less than the packet loss rate. This difference can be configured according to the specific needs of the communication system. The above example presents a metric that attempts to reduce the effective weight of the tunnel to a weight that maximizes the amount of bandwidth available to the tunnel while preventing further packet loss. Any metric that finds this balance may be preferred.
图4A示出了可被封装在反馈包中的信息类型400的示例实施例,该反馈数据包被发送至传输路由器以报告在接收端路由器处接收到的丢包率或其它带宽相关数据。类型字段402可包括与将包括在数据1字段404和数据2字段406中的数据的类型有关的数据。数据1字段404和数据2字段406的可包含可用于辅助路由器确定关于隧道数量、隧道带宽、隧道中丢失的包的数量等的隧道信息的任何信息。在图4B的图表中示出了数据字段404和406中的类型字段402的可能值的示例。FIG. 4A illustrates an example embodiment of the type of information 400 that may be encapsulated in a feedback packet sent to a transmitting router to report packet loss or other bandwidth-related data received at a receiving router. Type field 402 may include data related to the type of data to be included in Data 1 field 404 and Data 2 field 406 . Data 1 field 404 and Data 2 field 406 may contain any information that may be used to assist the router in determining tunnel information regarding the number of tunnels, tunnel bandwidth, number of packets lost in the tunnel, and the like. An example of possible values for type field 402 in data fields 404 and 406 is shown in the diagram of FIG. 4B.
诸如图3和图4中示出的封装在传输的IP数据包中的信息还可用于包缓冲和重新排序。因为每个隧道的延迟可以是不同的,所以当相同TCP会话的两个连续的包通过绑定的VPN隧道被发送至VPN对等体时,由于经由两个不同的隧道来路由这两个连续的包,所以它们可能不按序到达。如果TCP会话从VPN接收失序包,则该TCP会话将由于TCP重新传输而降速。因此,接收端应当缓冲太早到来的包,直到较慢的包到达或已经超过到期时间。有了这种缓冲,在到期时间之前来到的延迟包将被按序转发至目标装置。这种缓冲有助于优化端到端吞吐量。Information encapsulated in transmitted IP packets such as those shown in Figures 3 and 4 can also be used for packet buffering and reordering. Because the delay for each tunnel can be different, when two consecutive packets of the same TCP session are sent to the VPN peer through the bound VPN tunnel, since the two consecutive packets are routed via two different tunnels packets, so they may arrive out of order. If a TCP session receives out-of-sequence packets from the VPN, that TCP session will be slowed down due to TCP retransmissions. Therefore, the receiver SHOULD buffer packets arriving too early until slower packets arrive or the expiration time has passed. With this buffering, delayed packets arriving before the expiration time will be forwarded in-order to the target device. This buffering helps optimize end-to-end throughput.
注意,有时在VPN连接的上下文中讨论本文中所述的实施例。提出这些讨论是为了示出绑定连接的示例实施例。本文中要求保护的发明构思不限于这种连接。事实上,可以利用本发明的实施例来实现在其中可获得并交换足够数据以便动态监控在数据传输会话中使用的多个通信路径的带宽的任何连接。Note that the embodiments described herein are sometimes discussed in the context of a VPN connection. These discussions are presented to illustrate example embodiments of bonded connections. The inventive concepts claimed herein are not limited to this connection. In fact, any connection in which sufficient data is available and exchanged to dynamically monitor the bandwidth of the multiple communication paths used in a data transfer session can be implemented with embodiments of the present invention.
如上所述,每个包可被分配两个不同的序列号、全局序列号(GSN)和每个隧道序列号(PTSN)。这些号码可用于辅助包缓冲和重新排序操作。在包被传递至上层后,接收端可更新下一个预期的每个隧道序列号(NE-PTSN)和下一个预期的全局序列号(NE-GSN)As mentioned above, each packet may be assigned two different sequence numbers, a Global Sequence Number (GSN) and a Per Tunnel Sequence Number (PTSN). These numbers can be used to assist in packet buffering and reordering operations. After the packet is delivered to the upper layer, the receiver can update the next expected per-tunnel sequence number (NE-PTSN) and the next expected global sequence number (NE-GSN)
以下将描述一种在接收和解密包之后如何可以缓冲包或将包转发至目标装置的方法。One method of how a packet may be buffered or forwarded to a target device after it has been received and decrypted will be described below.
1.如果包的GSN等于0,则立即将其转发至目标装置。1. If the packet's GSN is equal to 0, it is immediately forwarded to the target device.
2.检查包的PTSN是否等于NE-PTSN。如果否,则按序出队(转发至目标装置)具有比所述包的GSN小的GSN的所有包。保持所述包不处理。2. Check if the PTSN of the packet is equal to NE-PTSN. If not, all packets with a GSN smaller than the GSN of the packet are dequeued (forwarded to the target device) in order. Leave said packet unprocessed.
3.更新NE-PTSN(即,将NE-PTSN设置为PTSN+1)。3. Update NE-PTSN (ie, set NE-PTSN to PTSN+1).
4.如果GSN小于NE-GSN,则转发至目标装置。4. If GSN is less than NE-GSN, forward to target device.
5.如果包的GSN等于NE-GSN,则更新NE-GSN(即,将NE-GSN设置为GSN+1)并且转发至目标装置。如果报头的GSN等于新的NE-GSN,则重复更新NE-GSN并且使缓冲首部从缓冲出队。5. If the GSN of the packet is equal to the NE-GSN, update the NE-GSN (ie set NE-GSN to GSN+1) and forward to the target device. If the GSN of the header is equal to the new NE-GSN, the NE-GSN is updated repeatedly and the buffered header is dequeued from the buffer.
6.否则(GSN大于NE-GSN),以GSN的顺序将该包入队。6. Otherwise (GSN is greater than NE-GSN), enqueue the packet in the order of GSN.
7.如果包在队列中的时间长于固定时间量,则将NE-GSN设置为包的GSN+1,并且按序将该包和具有比该包的GSN小的GSN的所有包出队。7. If the packet is in the queue for longer than a fixed amount of time, set the NE-GSN to the packet's GSN+1 and dequeue the packet and all packets with a GSN less than the packet's GSN in order.
因此,图2和图3中讨论的封装包信息可包括这样的信息:通过响应于监控丢包率辅助隧道带宽的优化和通过辅助数据传输会话中接收到的包的有效排序,该信息优化了数据传输系统(比如,系统100)的整个吞吐量。Thus, the encapsulated packet information discussed in FIGS. 2 and 3 may include information that optimizes the tunnel bandwidth by assisting in the optimization of tunnel bandwidth in response to monitoring packet loss rates and by assisting in the efficient ordering of packets received in a data transfer session. The overall throughput of a data transmission system (eg, system 100).
图5示出了可用于实施根据某些实施例的系统、装置和方法的示例性基于处理器的系统500。基于处理器的系统500可表示通信路由器106和通信路由器108的架构。中央处理单元(CPU)501耦接至系统总线502。CPU 501可为任何通用CPU,或者可为被设计为实现上述教导的专用CPU。本公开不受CPU 501(或示例性系统500的其它部件)的架构的限制,只要CPU 501(和系统500的其它部件)支持本文中所述的发明操作即可。CPU 501可执行本文中所述的各种逻辑指令。例如,CPU 501可根据上面结合图2描述的示例性操作流程来执行机器级指令。当执行表示图2中示出的操作步骤的指令时,CPU 501变为专门配置为根据本文描述的教导的各种实施例进行操作的专用计算平台的专用处理器。FIG. 5 illustrates an exemplary processor-based system 500 that may be used to implement systems, apparatuses, and methods according to certain embodiments. Processor-based system 500 may represent the architecture of communications router 106 and communications router 108 . A central processing unit (CPU) 501 is coupled to a system bus 502 . CPU 501 may be any general purpose CPU, or may be a special purpose CPU designed to implement the above teachings. The present disclosure is not limited by the architecture of CPU 501 (or other components of exemplary system 500), so long as CPU 501 (and other components of system 500) support the inventive operations described herein. CPU 501 can execute various logic instructions described herein. For example, CPU 501 may execute machine-level instructions according to the exemplary operation flow described above in conjunction with FIG. 2 . When executing instructions representing the operational steps shown in FIG. 2, CPU 501 becomes a special-purpose processor of a special-purpose computing platform specifically configured to operate in accordance with various embodiments of the teachings described herein.
系统500还包括可为SRAM、DRAM、SDRAM等的随机存取存储器(RAM)。RAM 503可为存储由CPU 501可执行的程序指令的辅助存储器。系统500包括可为PROM、EPROM、EEPROM等的只读存储器(ROM)504。如本领域中公知的那样,RAM 503和ROM 504保存用户和系统数据以及程序。System 500 also includes random access memory (RAM), which may be SRAM, DRAM, SDRAM, or the like. The RAM 503 may be an auxiliary memory storing program instructions executable by the CPU 501 . System 500 includes read only memory (ROM) 504 which may be PROM, EPROM, EEPROM, or the like. RAM 503 and ROM 504 hold user and system data and programs, as is known in the art.
系统500还包括输入/输出(I/O)适配器505、通信适配器511、用户接口适配器508和显示适配器509。在某些实施例中,I/O适配器505、用户接口适配器508和/或通信适配器511可使用户能够与系统500交互以输入信息。System 500 also includes input/output (I/O) adapter 505 , communications adapter 511 , user interface adapter 508 , and display adapter 509 . In some embodiments, I/O adapter 505, user interface adapter 508, and/or communication adapter 511 may enable a user to interact with system 500 to enter information.
I/O适配器505将存储装置506(诸如硬盘驱动器、光盘(CD)驱动器、软盘驱动器、磁带驱动器等中的一个或者多个)连接至系统500。针对与执行上述实施例中讨论的操作关联的存储需求,除了RAM 503以外还利用了存储装置。通信适配器511适于将系统500耦接至网络512,这可使得能够经由这种网络512(例如,互联网或其它广域网、局域网、公共或专用交换电话网络、无线网、前述网络的任意组合)向系统500输入信息和/或从系统500输出信息。I/O adapter 505 connects storage device 506 , such as one or more of a hard disk drive, compact disk (CD) drive, floppy disk drive, tape drive, etc., to system 500 . For storage requirements associated with performing the operations discussed in the above embodiments, storage devices are utilized in addition to the RAM 503 . Communications adapter 511 is adapted to couple system 500 to a network 512, which may enable communications via such network 512 (e.g., the Internet or other wide area network, local area network, public or private switched telephone network, wireless network, any combination of the foregoing) to System 500 inputs information and/or outputs information from system 500 .
通信适配器511可被认为是网络接口,并且系统500可包括多个通信适配器511。用户接口适配器508将用户输入装置(比如,键盘513、定点装置507和麦克风514)和/或输出装置(比如,扬声器515)耦接至系统500。显示适配器509由CPU 501驱动以控制显示装置510上的显示。显示适配器509传输用于转换或操纵显示装置510所使用的各种数量的像素的状态的指令,以向用户可视地呈现所期望的信息。这种指令包括用于改变状态由开至关、设置特定颜色、强度、持续时间等的指令。每个这种指令组成控制如何在显示装置510上显示和在显示装置510上显示什么的呈现指令。Communications adapter 511 may be considered a network interface, and system 500 may include multiple communications adapters 511 . User interface adapter 508 couples user input devices (eg, keyboard 513 , pointing device 507 , and microphone 514 ) and/or output devices (eg, speakers 515 ) to system 500 . The display adapter 509 is driven by the CPU 501 to control display on the display device 510 . Display adapter 509 transmits instructions for switching or manipulating the state of various numbers of pixels used by display device 510 to visually present desired information to a user. Such instructions include instructions for changing the state from on to off, setting a specific color, intensity, duration, and the like. Each such instruction constitutes a rendering instruction that controls how and what is displayed on the display device 510 .
图6是示出根据本发明的各实施例的用于通过聚合连接将封装包从通信路由器106传输至通信路由器108的处理的流程图。聚合连接可包括多个隧道。在步骤601中,通信路由器106的CUP 501在多个隧道中选择隧道用于传输原始封装包(OEP)。所选择的隧道可被称为第一隧道。随后,通信路由器106通过第一隧道传输OEP。在步骤602中,CPU 501在多个隧道中选择另一个隧道用于传输复制封装包(DEP)。在步骤602中选择的隧道可被称为第二隧道。随后,通信路由器106通过第二隧道传输DEP。6 is a flow diagram illustrating a process for transmitting encapsulated packets from communications router 106 to communications router 108 over an aggregated connection, according to various embodiments of the invention. An aggregated connection can include multiple tunnels. In step 601, the CUP 501 of the communications router 106 selects a tunnel among multiple tunnels for transmitting an original encapsulation packet (OEP). The selected tunnel may be referred to as the first tunnel. Communications router 106 then transmits the OEP through the first tunnel. In step 602, the CPU 501 selects another tunnel among the plurality of tunnels for transmitting a duplicate encapsulation packet (DEP). The tunnel selected in step 602 may be referred to as a second tunnel. Communications router 106 then transmits the DEP through the second tunnel.
在一个变型中,图6的处理可被周期性地执行。该处理可优选地每几秒被执行一次。作为替代,一旦接收触发就执行图6的处理。例如,当CPU 501确定通过第一隧道和/或第二隧道未接收到确认或延迟接收确认时,接收触发。这可表明第一隧道和/或第二隧道的延迟已经变得非常高。随后,CPU 501再次执行图6的步骤以再次选择第一隧道和第二隧道。在另一个示例中,可在用户或管理员手动地启动图6的处理时,接收触发。In a variant, the process of Figure 6 may be performed periodically. This processing can preferably be performed every few seconds. Instead, the process of FIG. 6 is performed upon receipt of a trigger. For example, a trigger is received when the CPU 501 determines that an acknowledgment has not been received or received delayed through the first tunnel and/or the second tunnel. This may indicate that the latency of the first tunnel and/or the second tunnel has become very high. Subsequently, the CPU 501 executes the steps of FIG. 6 again to select the first tunnel and the second tunnel again. In another example, the trigger may be received when the process of FIG. 6 is manually initiated by a user or administrator.
可根据选择策略选择第一隧道和第二隧道。在一个变型中,选择策略可基于以下标准中的一个或多个:隧道的性能、服务提供商、使用限制、位置、时间、使用价格、安全性、用户身份、互联网协议地址范围、通信协议、通信技术、应用和装置。当选择策略基于隧道的性能时,可根据诸如吞吐量、错误率、包延迟、包抖动、符号抖动、服务质量、带宽、比特误码率、包错误率、帧错误率、丢包率、排队延迟、循环时间、容量、信号电平、干扰电平、带宽延迟乘积、切换延迟时间、信号接口比和信噪比之类的性能度量标准来执行选择。The first tunnel and the second tunnel may be selected according to a selection policy. In a variant, the selection strategy may be based on one or more of the following criteria: tunnel performance, service provider, usage restrictions, location, time, usage price, security, user identity, Internet protocol address range, communication protocol, Communication technologies, applications and devices. When selecting a policy based on tunnel performance, it can be based on factors such as throughput, error rate, packet delay, packet jitter, symbol jitter, quality of service, bandwidth, bit error rate, packet error rate, frame error rate, packet loss rate, queuing Performance metrics such as delay, cycle time, capacity, signal level, interference level, bandwidth delay product, switching delay time, signal-to-interface ratio, and signal-to-noise ratio are used to perform the selection.
用户或管理员可配置该选择策略。例如,用户可将该选择策略配置为仅基于多个隧道中的每个隧道的带宽。因此,选择具有最佳带宽的隧道作为通过其传输OEP的第一隧道。选择具有次佳带宽的另一个隧道作为通过其传输DEP的第二隧道。在另一个实施例中,用户可将选择策略配置为仅基于多个隧道中的每个隧道的延迟。因此,选择具有最低延迟的隧道作为通过其传输OEP的第一隧道。选择具有次低延迟的另一个隧道作为通过其传输DEP的第二隧道。A user or administrator can configure this selection policy. For example, a user may configure the selection policy to be based only on the bandwidth of each of the plurality of tunnels. Therefore, the tunnel with the best bandwidth is selected as the first tunnel through which the OEP is transmitted. Another tunnel with the next best bandwidth is chosen as the second tunnel over which to transport the DEP. In another embodiment, a user may configure the selection strategy to be based only on the delay of each of the plurality of tunnels. Therefore, the tunnel with the lowest delay is selected as the first tunnel through which the OEP is transmitted. Another tunnel with the next lowest latency is chosen as the second tunnel over which to transport the DEP.
在另一示例中,用户可将选择策略配置为基于使用限制和丢包率。选择具有最高使用限制和/或最低丢包率的隧道作为第一隧道。选择具有次最高使用限制和/或次最低丢包率的隧道作为第二隧道。In another example, a user may configure selection policies to be based on usage limits and packet loss rates. The tunnel with the highest usage limit and/or lowest packet loss rate is chosen as the first tunnel. The tunnel with the next highest usage limit and/or the next lowest packet loss rate is selected as the second tunnel.
在另一个变型中,选择策略基于用户选择。用户或管理员可将通信路由器106配置为使用某个隧道作为第一隧道,并且将另外某个隧道作为第二隧道。In another variant, the selection strategy is based on user selection. A user or administrator may configure communications router 106 to use a certain tunnel as the first tunnel and another tunnel as the second tunnel.
用户或管理员可通过由web接口、应用程序接口(API)、命令行接口或控制台来本地或远程地发送配置来配置通信路由器106的选择策略。A user or administrator can configure the selection policy of the communications router 106 by sending the configuration locally or remotely via a web interface, application programming interface (API), command line interface, or console.
本领域技术人员应当知道,在无线通信中,包传输质量可能是不可预测的,并且在某些情况下延迟可能较高。丢包率也可能较高。传输DEP增加了通信路由器108接收数据的机会,因为OEP可能丢失。然而,可以通过DEP的传输来显著提高带宽使用。DEP还可用于前向纠错(FEC),这将在下文更详细地说明。Those skilled in the art will appreciate that in wireless communications, packet transmission quality may be unpredictable, and delays may be high in some cases. There may also be a higher rate of packet loss. Transmitting the DEP increases the chances that communications router 108 will receive the data because the OEP may be lost. However, bandwidth usage can be significantly improved through the transmission of DEP. DEP can also be used for forward error correction (FEC), which will be explained in more detail below.
参照图8A、图8B和图8C,包含在OEP 800和DEP 810和DEP 820中的信息类型可与图3中示出的信息类型相似。Referring to FIGS. 8A , 8B, and 8C, types of information contained in the OEP 800 and the DEPs 810 and 820 may be similar to those shown in FIG. 3 .
封装包对数据包进行封装。因此,当通过封装包对数据包进行封装时,数据包变为封装包。可以由通信路由器106通过其网络接口中的一个或多个从可通过通信路由器106访问的站点102中的主机或节点处接收数据包。主机或节点可位于通信路由器106的LAN中。可在数据包的报头中指明数据包的源和目的地。The encapsulation package encapsulates the data packet. Therefore, when a data packet is encapsulated by an encapsulation packet, the data packet becomes an encapsulation packet. Data packets may be received by communications router 106 through one or more of its network interfaces from hosts or nodes in site 102 accessible through communications router 106 . The hosts or nodes may be located in the LAN of communications router 106 . The source and destination of the data packet can be indicated in the header of the data packet.
每个封装包可分配有两个序列号,即,全局序列号和每个隧道序列号。全局序列号可用于辅助包缓冲和重新排序操作。当封装包分配有全局序列号时,指定的主机或节点根据封装包对应的全局序列号来布置到达指定主机或节点处的封装包。每个隧道序列号表明通过多个隧道中的哪个来传输封装包。Each encapsulation packet may be assigned two sequence numbers, a global sequence number and a per-tunnel sequence number. Global sequence numbers can be used to aid in packet buffering and reordering operations. When the package is assigned a global serial number, the designated host or node arranges the package arriving at the designated host or node according to the global serial number corresponding to the package. Each tunnel sequence number indicates which of the multiple tunnels the encapsulated packet is transmitted through.
图8A示出了根据各实施例的OEP的结构。OEP 800包括IP报头801、原始封装包全局序列号(OEP-GSN)802、每个隧道序列号803、其它信息804和封装的包805。OEP-GSN 802保存OEP 800的OEP-GSN。IP报头801可包括版本字段302和协议类型字段303。每个隧道序列号803可以是可选的。在一个变型中,每个隧道序列号803和隧道ID字段304可用于比较隧道性能和根据隧道性能重新分配包。在另一个变型中,当不包括每个隧道序列号803和隧道ID字段304时,可能需要维持数据库来存储哪个隧道用于传输哪个GSN的封装包的信息。通过对数据库执行查找,可比较隧道性能。因此,包括每个隧道序列号803和隧道ID字段304可在不需要维持和查找所有GSN的数据库的情况下辅助确定延迟。其它信息804可包括AES初始化向量字段306和隧道ID字段304。在一个变型中,OEP-GSN 802、每个隧道序列号803和其它信息804包括在IP报头801的选项字段中,并且封装的包805包括在AES加密有效载荷字段312中。IP报头801的选择字段中包括OEP-GSN 802、每个隧道序列号803和其它信息804的好处在于:无需解封装OEP 800即可在这些字段中取得信息,这可显著地缩短处理时间。然而,当通过隧道传输OEP 800时,由于OEP 800经过的路由器和装置可改变IP报头801,因此,如果将它们包括在IP报头801的选择字段中,则这些字段中的信息可能会遗失。因此,作为替代,OEP-GSN 802、每个隧道序列号803、其它信息804和封装的包805可全部包括在AES加密有效载荷字段312中,使得当OEP 800经过可改变IP报头801的路由器和装置时信息不会遗失。Figure 8A shows the structure of an OEP according to various embodiments. OEP 800 includes IP header 801 , original encapsulated packet global sequence number (OEP-GSN) 802 , per-tunnel sequence number 803 , other information 804 and encapsulated packet 805 . The OEP-GSN 802 stores the OEP-GSN of the OEP 800 . The IP header 801 may include a version field 302 and a protocol type field 303 . Each tunnel sequence number 803 may be optional. In one variation, each tunnel sequence number 803 and tunnel ID field 304 can be used to compare tunnel performance and reallocate packets based on tunnel performance. In another variation, when the per-tunnel sequence number 803 and tunnel ID fields 304 are not included, it may be necessary to maintain a database to store which tunnel is used to transport the encapsulated packets of which GSN. Tunnel performance can be compared by performing a lookup against the database. Thus, including each tunnel sequence number 803 and tunnel ID field 304 can assist in determining delays without the need to maintain and lookup a database of all GSNs. Other information 804 may include an AES initialization vector field 306 and a tunnel ID field 304 . In one variation, the OEP-GSN 802 , per-tunnel sequence number 803 and other information 804 are included in the options field of the IP header 801 and the encapsulated packet 805 is included in the AES encrypted payload field 312 . The advantage of including the OEP-GSN 802, per-tunnel sequence number 803 and other information 804 in the optional fields of the IP header 801 is that the information in these fields can be obtained without decapsulating the OEP 800, which can significantly reduce processing time. However, since routers and devices through which the OEP 800 passes may change the IP header 801 when the OEP 800 is tunneled, information in the optional fields of the IP header 801 may be lost if they are included in these fields. Therefore, instead, OEP-GSN 802, per-tunnel sequence number 803, other information 804, and encapsulated packet 805 can all be included in AES encrypted payload field 312, so that when OEP 800 passes through routers and Information will not be lost during installation.
图8B示出了根据本发明的实施例之一的DEP的结构。DEP 810包括IP报头811、复制封装包全局序列号(DEP-GSN)812、每个隧道序列号813、其它信息814和封装的包815。IP报头811可包括版本字段302和协议类型字段303。每个隧道序列号813和其它信息814可以是可选的。其它信息814可包括AES初始化向量字段306和隧道ID字段304。在一个变型中,DEP-GSN 812、每个隧道序列号813和其它信息814包括在IP报头811的选项字段中,并且封装的包815包括在AES加密有效载荷字段312中。作为替代,DEP-GSN 812、每个隧道序列号813、其它信息814和封装的包815都包括在AES加密有效载荷字段312中。由于DEP 810包括与OEP800相同的封装的包,所以在OEP 800遗失、丢失或者传输期间延迟,且在收到OEP 800之前收到DEP 810的情况下,DEP 810可用于重新创建OEP 800中的信息。FIG. 8B shows the structure of a DEP according to one of the embodiments of the present invention. DEP 810 includes IP header 811 , duplicate encapsulated packet global sequence number (DEP-GSN) 812 , per-tunnel sequence number 813 , other information 814 and encapsulated packet 815 . The IP header 811 may include a version field 302 and a protocol type field 303 . Each tunnel sequence number 813 and other information 814 may be optional. Other information 814 may include AES initialization vector field 306 and tunnel ID field 304 . In one variation, the DEP-GSN 812 , per-tunnel sequence number 813 and other information 814 are included in the options field of the IP header 811 , and the encapsulated packet 815 is included in the AES encrypted payload field 312 . Instead, the DEP-GSN 812 , per-tunnel sequence number 813 , other information 814 and encapsulated packet 815 are all included in the AES encrypted payload field 312 . Since DEP 810 includes the same encapsulated packets as OEP 800, DEP 810 can be used to recreate the information in OEP 800 in the event that OEP 800 is lost, lost, or delayed during transmission, and DEP 810 is received before OEP 800 is received .
OEP-GSN 802和DEP-GSN 812可是完全相同的。封装的包805和815可是完全相同的,如此,OEP 800和DEP 810封装相同的数据包,该数据包分别变为封装的包805和815。当通信路由器106产生DEP 810以传输时,其有效载荷(即,封装的包)与OEP 800的有效载荷相同。由于OEP 800和DEP 810具有相同的内容,因此它们的全局序列号也相同。OEP-GSN 802 and DEP-GSN 812 may be identical. Encapsulated packets 805 and 815 may be identical, such that OEP 800 and DEP 810 encapsulate the same data packet, which becomes encapsulated packets 805 and 815, respectively. When communications router 106 generates DEP 810 for transmission, its payload (ie, encapsulated packet) is the same as that of OEP 800 . Since OEP 800 and DEP 810 have the same content, their global serial numbers are also the same.
图8C示出了根据本发明的实施例之一的DEP的结构。DEP 820包括IP报头821、DEP-GSN 822、每个隧道序列号823、m个OEP-GSN的列表826、其它信息824和封装的包825。因为DEP 820的有效载荷包含已经通过聚合连接传输的最后几个OEP的信息,所以其可用于重新创建与OEP相对应的缺失的封装的包。这在图12A、图12B和图12C中更加详细地说明。FIG. 8C shows the structure of a DEP according to one of the embodiments of the present invention. DEP 820 includes IP header 821 , DEP-GSN 822 , per-tunnel sequence number 823 , list of m OEP-GSNs 826 , other information 824 and encapsulated packet 825 . Since the payload of DEP 820 contains information of the last few OEPs that have been transmitted over the aggregated connection, it can be used to recreate missing encapsulated packets corresponding to OEPs. This is illustrated in more detail in Figures 12A, 12B and 12C.
DEP 820可周期性地传输。在一个变形中,可预先定义的传输每个DEP 820之间的时间段。当在该时间段内传输的OEP的数量为n时,DEP 820可包括与n个OEP相对应的m个封装的包,其中,m小于或等于n,并且m的值至少为1。m个封装的包与n个OEP中的m个OEP中的封装的包相同。诸如封装的包825-1、825-2至825-m的m个封装的包可包括在DEP 820的AES加密有效载荷字段312中。m个OEP-GSN的列表826包括与m个封装的包相对应的OEP的OEP-GSN。例如,在预先定义的时间段中传输10个OEP。第一DEP 820可包括与10个OEP中的6个OEP相对应的6个封装的包,并且第二DEP 820可包括与剩余的4个OEP相对应的4个封装的包。在预先定义的时间段之后,传输第一DEP 820和第二DEP 820。第一DEP 820和第二DEP 820可通过相同隧道或不同隧道进行传输。作为替代,第一DEP 820可包括分别与10个OEP相对应的10个封装的包。在预先定义的时间段之后,传输第一DEP 820。DEP 820不可包括多于10个封装的包,因为每个封装的包必须与每个OEP相对应。DEP 820 may be transmitted periodically. In one variation, the time period between transmissions of each DEP 820 may be predefined. When the number of OEPs transmitted within the time period is n, the DEP 820 may include m encapsulated packets corresponding to n OEPs, where m is less than or equal to n, and the value of m is at least 1. The m encapsulated packets are the same as the encapsulated packets in m of the n OEPs. m encapsulated packets such as encapsulated packets 825 - 1 , 825 - 2 through 825 -m may be included in the AES encrypted payload field 312 of the DEP 820 . The list of m OEP-GSNs 826 includes the OEP-GSNs of the OEPs corresponding to the m encapsulated packets. For example, 10 OEPs are transmitted in a predefined time period. The first DEP 820 may include 6 encapsulated packets corresponding to 6 OEPs among the 10 OEPs, and the second DEP 820 may include 4 encapsulated packets corresponding to the remaining 4 OEPs. After a predefined period of time, the first DEP 820 and the second DEP 820 are transmitted. The first DEP 820 and the second DEP 820 can transmit through the same tunnel or different tunnels. Alternatively, the first DEP 820 may include 10 encapsulated packets respectively corresponding to 10 OEPs. After a predefined period of time, the first DEP 820 is transmitted. DEP 820 cannot include more than 10 encapsulated packets, since each encapsulated packet must correspond to each OEP.
在另一个变型中,预先定义传输一个DEP 820之前OEP的数量。因此,预先定义的数量为n。DEP 820可包括与n个OEP相对应的m个封装的包,其中,m小于或等于n。m个封装的包可与n个OEP中的m个OEP中的封装的包相同。诸如封装的包825-1、825-2至825-m的m个封装的包可包括在DEP 820的AES加密有效载荷字段312中。例如,当定义n为5时,在每5个OEP被传输之后,传输DEP 820,并且DEP 820包括与这5个OEP相对应的5个封装的包。传输DEP 820之间的时间段可不预先定义。m个OEP-GSN的列表826包括与封装的包相对应的5个OEP的OEP-GSN。作为替代,当定义n为5时,在每5个OEP被传输之后,传输第一DEP 820和第二DEP820。第一DEP 820可包括与这5个OEP中的2个OEP相对应的封装的包,并且第二DEP 820可包括与这5个OEP中剩余的3个OEP相对应的封装的包。In another variant, the number of OEPs before transmitting a DEP 820 is predefined. Therefore, the predefined number is n. DEP 820 may include m encapsulated packets corresponding to n OEPs, where m is less than or equal to n. The m encapsulated packets may be the same as the encapsulated packets in m of the n OEPs. m encapsulated packets such as encapsulated packets 825 - 1 , 825 - 2 through 825 -m may be included in the AES encrypted payload field 312 of the DEP 820 . For example, when n is defined as 5, after every 5 OEPs are transmitted, the DEP 820 is transmitted, and the DEP 820 includes 5 encapsulated packets corresponding to the 5 OEPs. The time period between transmissions of DEP 820 may not be predefined. The list of m OEP-GSNs 826 includes the OEP-GSNs of the 5 OEPs corresponding to the encapsulated packets. Alternatively, when n is defined to be 5, the first DEP 820 and the second DEP 820 are transmitted after every 5 OEPs are transmitted. The first DEP 820 may include encapsulated packets corresponding to 2 OEPs of the 5 OEPs, and the second DEP 820 may include encapsulated packets corresponding to the remaining 3 OEPs of the 5 OEPs.
DEP 820可用于纠正传输n个OEP时可能已经发生的任何错误,因为封装的包825包含来自封装在OEP中的数据包中的信息。在一个变型中,DEP-GSN 822、每个隧道序列号823、m个OEP-GSN的列表826和其它信息824可包括在IP报头821的选项字段中,并且封装的包825包括在AES加密有效载荷字段312中。作为替代,DEP-GSN 822、每个隧道序列号823、m个OEP-GSN的列表826、其它信息824、和封装的包825都包括在AES加密有效载荷字段312中。通过聚合连接传输的OEP中的一个或多个已经丢失、遗失或延迟是可能的。即使当接收到OEP时,OEP中也可能存在错误。DEP 820可用于重新创建OEP中的封装的包,并且还用于检查任何错误。关于DEP 820的传输和封装的包的重新创建的细节在图12A、图12B和图12C中示出。DEP 820 can be used to correct any errors that may have occurred while transmitting the n OEPs, since encapsulated packets 825 contain information from the data packets encapsulated in the OEPs. In a variation, the DEP-GSN 822, the sequence number per tunnel 823, the list of m OEP-GSNs 826, and other information 824 may be included in the options field of the IP header 821, and the encapsulated packet 825 included in the AES encrypted valid In the payload field 312. Instead, a DEP-GSN 822 , a per-tunnel sequence number 823 , a list of m OEP-GSNs 826 , other information 824 , and an encapsulated packet 825 are all included in the AES encrypted payload field 312 . It is possible that one or more of the OEPs transmitted over the aggregated connection have been lost, lost or delayed. Even when an OEP is received, there may be errors in the OEP. DEP 820 can be used to recreate the encapsulated packets in the OEP, and also to check for any errors. Details regarding the transport of DEP 820 and the reconstruction of encapsulated packets are shown in Figures 12A, 12B and 12C.
OEP 800通过与用于传输DEP 810或DEP 820的隧道不同的隧道传输。因此,每个隧道序号803可以与每个隧道序号813或每个隧道序号823不相同。如果OEP 800和DEP通过相同隧道传输,并且该隧道的性能劣化,则可能OEP 800和DEP都不能被通信路由器108成功地接收。因此,为了增加OEP 800或DEP中的至少一者被接收的机会,通过与用于传输DEP 810或DEP 820的隧道不同的隧道来传输OEP 800。OEP 800 is transported through a different tunnel than the tunnel used to transport DEP 810 or DEP 820 . Therefore, each tunnel serial number 803 may be different from each tunnel serial number 813 or each tunnel serial number 823 . If OEP 800 and DEP are transmitted over the same tunnel, and the performance of that tunnel is degraded, it is possible that neither OEP 800 nor DEP can be successfully received by communications router 108 . Therefore, to increase the chance of at least one of OEP 800 or DEP being received, OEP 800 is transmitted over a different tunnel than the tunnel used to transmit DEP 810 or DEP 820 .
IP报头801、811和812中表明的源地址可为通信路由器106的网络接口之一的IP地址。IP报头801、811和812中表明的目的地址可为通信路由器108的网络接口之一的IP地址。封装的包805、815和825的源地址可为可通过通信路由器106访问的站点102中的主机或节点的IP地址。封装的包805、815和825的目的地址可为可通过通信路由器108访问的站点104中的主机或节点的IP地址。The source address indicated in IP headers 801 , 811 , and 812 may be the IP address of one of communications router 106 's network interfaces. The destination address indicated in IP headers 801 , 811 , and 812 may be the IP address of one of the network interfaces of communications router 108 . The source address of encapsulated packets 805 , 815 , and 825 may be the IP address of a host or node in site 102 accessible through communications router 106 . The destination address of encapsulated packets 805 , 815 , and 825 may be the IP address of a host or node in site 104 accessible through communications router 108 .
OEP-GSN 802、DEP-GSN 812和DEP-GSN 822可与全局序列号字段308相对应。每个隧道序列号803、813和823可与每个隧道序列号字段310相对应。OEP-GSN 802 , DEP-GSN 812 , and DEP-GSN 822 may correspond to global sequence number field 308 . Each tunnel sequence number 803 , 813 , and 823 may correspond to each tunnel sequence number field 310 .
因为封装包可能乱序到达,所以将数据包封装在封装包内的目的之一是当在聚合连接的另一端处接收到封装包时对数据包重新排序。该数据包还可具有不同协议,并且可被封装在封装包中,从而满足聚合连接的协议需求。Because encapsulated packets may arrive out of order, one of the purposes of encapsulating data packets within an encapsulated packet is to reorder data packets when they are received at the other end of the aggregated connection. The data packet can also have a different protocol and can be encapsulated in an encapsulation packet to meet the protocol requirements of the aggregated connection.
图9是示出根据本发明的实施例之一的用于传输DEP的处理的流程图。通信路由器106的CPU 501在步骤901中确定要被传输的DEP的数量。在步骤902中,CPU 501确定哪个(些)隧道尚未用于传输OEP或DEP,并且选择所确定的隧道用于传输DEP。在步骤903中,CPU501确定是否接近所选择的隧道的带宽限制,并且在步骤904中通信路由器106不通过正接近其带宽限制的隧道传输DEP。如果带宽限制未接近,则在步骤905中通信路由器106通过所选择的隧道传输DEP。在步骤906中,该处理结束。监控何时接近带宽限制可有助于减少拥塞,并防止隧道淹没。本领域技术人员应该知道,随着隧道的带宽限制的接近,越来越多的包可能会丢失,隧道的性能劣化。因此,优选地,停止通过正接近其带宽限制的隧道来传输DEP。FIG. 9 is a flowchart illustrating a process for transmitting a DEP according to one of the embodiments of the present invention. The CPU 501 of the communication router 106 determines in step 901 the number of DEPs to be transmitted. In step 902, the CPU 501 determines which tunnel(s) have not been used for transmitting OEP or DEP, and selects the determined tunnel for transmitting DEP. In step 903, CPU 501 determines whether the bandwidth limit of the selected tunnel is approaching, and in step 904 communications router 106 does not transmit DEP through the tunnel that is approaching its bandwidth limit. If the bandwidth limit is not approached, then in step 905 communications router 106 transmits the DEP through the selected tunnel. In step 906, the process ends. Monitoring when bandwidth limits are approaching can help reduce congestion and prevent tunnel flooding. Those skilled in the art should know that as the bandwidth limit of the tunnel approaches, more and more packets may be lost, and the performance of the tunnel is degraded. Therefore, it is preferable to stop transmitting DEP over a tunnel that is approaching its bandwidth limit.
根据本发明的实施例之一,通信路由器106可针对一个OEP传输多个DEP。多个DEP中的每一个通过不同的隧道传输。要被传输的DEP的数量可由通信路由器106的用户或管理员定义。然而,被传输的DEP的数量不可高于可用于传输DEP的隧道的数量。这是因为针对每个OEP通过隧道传输多个DEP可能不是有益的。当隧道的性能劣化时,可能无法成功地接收到所述多个DEP中的大多数。因此,这会不必要地消耗更多带宽,而未增加成功接收DEP中的至少一个的机会。当用户或管理员将DEP的数量定义为高于可用于传输DEP的隧道的数量时,通信路由器106不传输由用户或管理员定义的DEP的数量。相反,通信路由器106传输等于可用隧道的数量的DEP,即每个隧道一个DEP。可保留至少一个隧道用于传输OEP,其余隧道可用于传输DEP。出于说明目的,用户将要被传输的DEP的数量定义为5。通信路由器106仅具有与通信路由器108建立的4个隧道,即第一隧道、第二隧道、第三隧道和第四隧道。各OEP通过第一隧道传输。与每个OEP相对应的一个DEP分别通过第二隧道、第三隧道和第四隧道中的每一个来传输。因此,针对每个OEP仅传输3个DEP,而非5个。According to one of the embodiments of the present invention, communication router 106 may transmit multiple DEPs for one OEP. Each of the multiple DEPs travels through a different tunnel. The number of DEPs to be transmitted may be defined by a user or administrator of communications router 106 . However, the number of DEPs being transmitted cannot be higher than the number of tunnels available for transporting DEPs. This is because it may not be beneficial to tunnel multiple DEPs per OEP. When the performance of the tunnel is degraded, most of the plurality of DEPs may not be successfully received. Therefore, this consumes more bandwidth unnecessarily without increasing the chance of successfully receiving at least one of the DEPs. When the user or administrator defines the number of DEPs to be higher than the number of tunnels available to transmit DEPs, communications router 106 does not transmit the number of DEPs defined by the user or administrator. Instead, communications router 106 transmits a number of DEPs equal to the number of available tunnels, ie, one DEP per tunnel. At least one tunnel may be reserved for transporting OEP, and the remaining tunnels may be used for transporting DEP. For illustration purposes, the user defines the number of DEPs to be transmitted as five. The communications router 106 has only four tunnels established with the communications router 108, namely a first tunnel, a second tunnel, a third tunnel and a fourth tunnel. Each OEP is transmitted through the first tunnel. One DEP corresponding to each OEP is transmitted through each of the second tunnel, the third tunnel, and the fourth tunnel, respectively. Therefore, only 3 DEPs are transmitted for each OEP instead of 5.
在一个示例中,如果用户或管理员将DEP的数量定义为小于可用隧道的数量,则可根据该隧道的性能来传输DEP。出于说明目的,用户将要被传输的DEP的数量定义为2。通信路由器106具有与通信路由器108建立的4个隧道,即第一隧道、第二隧道、第三隧道和第四隧道。OEP通过具有最佳性能的第一隧道传输。如果第二隧道和第三隧道与第四隧道相比具有更好的性能,则通过第二隧道传输一个DEP,并且通过第三隧道传输另一个DEP。In one example, if a user or administrator defines the number of DEPs to be less than the number of available tunnels, the DEPs may be transmitted according to the capabilities of the tunnels. For illustration purposes, the user defines the number of DEPs to be transmitted as two. The communications router 106 has four tunnels established with the communications router 108 , namely, a first tunnel, a second tunnel, a third tunnel, and a fourth tunnel. OEP is transmitted through the first tunnel with the best performance. If the second tunnel and the third tunnel have better performance than the fourth tunnel, then one DEP is transmitted through the second tunnel and the other DEP is transmitted through the third tunnel.
在另一示例中,当存在多于两个的可用的隧道时,OEP通过具有最佳性能的第一隧道传输。使用负载平衡技术通过其余隧道来传输DEP。作为替代,DEP还可以以轮询方式通过其余隧道来传输,尤其是当要被传输的DEP的数量小于其余隧道的数量的时候。In another example, when there are more than two tunnels available, the OEP is transmitted through the first tunnel with the best performance. DEP is transported through the remaining tunnels using load balancing techniques. Alternatively, DEPs can also be transmitted through the remaining tunnels in a round-robin manner, especially when the number of DEPs to be transmitted is less than the number of remaining tunnels.
图7是示出用于处理所接收的封装包的处理的流程图。首先,存在的处理环境是这样一种处理环境:在通信路由器106和通信路由器108之间建立了包括多个隧道的聚合连接,并且通信路由器106通过该聚合连接向通信路由器108发送封装包。通信路由器108通过该聚合连接从通信路由器106接收封装包。该封装包可包括其目的地为可通过通信路由器108访问的主机或节点的封装的包。FIG. 7 is a flowchart illustrating a process for processing a received encapsulated packet. First, the existing processing environment is a processing environment in which an aggregated connection including a plurality of tunnels is established between the communication router 106 and the communication router 108, and the communication router 106 sends the encapsulated packet to the communication router 108 through the aggregated connection. Communications router 108 receives the encapsulated packet from communications router 106 over the aggregated connection. The encapsulated packet may include an encapsulated packet destined for a host or node accessible through communications router 108 .
通信路由器108可接收封装在OEP和/或DEP中的多个封装的包。OEP可能会比DEP更早到达,反之亦然。因此,需要知道是否之前已经接收到了封装的包,无论其是封装在OEP还是DEP中。Communication router 108 may receive a plurality of encapsulated packets encapsulated in OEP and/or DEP. OEP may arrive earlier than DEP and vice versa. Therefore, it is necessary to know whether an encapsulated packet, whether encapsulated in OEP or DEP, has been received before.
在步骤701中,通信路由器108从通信路由器106接收封装包。在步骤702中,通信路由器108的CPU确定是否之前已经接收到封装在封装包中的封装的包。如果封装包的全局序列号与之前已经接收到的另一个封装包的另一个全局序列号相同,则确定之前已经接收了该封装的包。如果之前已经接收到了封装的包,则在步骤703中,通信路由器108不将封装包内部的封装的包转发至目的地,并且丢弃该封装包。如果之前没有接收到该封装的包,则在步骤704中,将该封装的包转发至目的地。在步骤705中,该处理结束。当确定之前已经接收到封装的包时,则可假设该封装的包已经被转发。由于这个原因,通信路由器108不再次将封装包中的封装的包转发,并且丢弃该封装包。In step 701 , communications router 108 receives an encapsulated packet from communications router 106 . In step 702, the CPU of communications router 108 determines whether an encapsulated packet encapsulated in an encapsulated packet has been previously received. If the global sequence number of the encapsulated packet is the same as another global sequence number of another encapsulated packet that has been received before, it is determined that the encapsulated packet has been received before. If an encapsulated packet has been previously received, then in step 703, communications router 108 does not forward the encapsulated packet inside the encapsulated packet to the destination, and discards the encapsulated packet. If the encapsulated packet has not been received before, then in step 704, the encapsulated packet is forwarded to the destination. In step 705, the process ends. When it is determined that the encapsulated packet has been received before, it may be assumed that the encapsulated packet has been forwarded. For this reason, the communication router 108 does not forward the encapsulated packet in the encapsulated packet again, and discards the encapsulated packet.
封装包可为OEP 800或DEP 810。参照步骤702,可以存在确定是否已经接收到封装的包的各种方法。如上所述,一种确定的方法是通过检查封装包的GSN。如果通过相同的聚合连接之前已经接收到具有相同全局序列号的任何其它封装包,则通信路由器108确定已经接收到封装的包。随后,无需转发该相同的封装的包。The encapsulation package can be OEP 800 or DEP 810. Referring to step 702, there may be various methods of determining whether an encapsulated packet has been received. As mentioned above, one way to be sure is by checking the GSN of the encapsulating packet. Communications router 108 determines that an encapsulated packet has been received if any other encapsulated packet with the same global sequence number has been previously received over the same aggregated connection. Subsequently, there is no need to forward that same encapsulated packet.
确定是否已经接收到封装的包的另一种方法是通过检查散列码。当封装包到达通信路由器108时,通信路由器108的CPU可在解封装该封装包之后对有效载荷(即,封装的包)应用散列函数。通过应用散列函数产生的散列码可以存储在存储介质中。存储介质可以是本地存储介质(比如,RAM 503)或远程存储介质(比如,远程服务器)。当向之前已经接收到的相同的封装的包应用散列函数时,散列码将是相同的。随后,通信路由器108的CPU可确定所产生的散列码是否是唯一的,或者其是否以前已经被存储。如果该散列码是唯一的,则确定以前未接收到该封装的包。如果以前已经存储了该散列码,则确定已经接收到该封装的包。尽管散列函数或种子可以改变,但是其更可能在几分钟内保持不变。因此,可使用散列码的唯一性来确定在过去的几分钟里是否已经接收到封装的包。Another way to determine if an encapsulated packet has been received is by checking the hash code. When the encapsulated packet arrives at communications router 108, the CPU of communications router 108 may apply a hash function to the payload (ie, the encapsulated packet) after decapsulating the encapsulated packet. A hash code generated by applying a hash function may be stored in a storage medium. The storage medium may be a local storage medium (eg, RAM 503 ) or a remote storage medium (eg, a remote server). When applying the hash function to the same encapsulated packet that has been received before, the hash code will be the same. The CPU of communications router 108 may then determine whether the generated hash code is unique, or whether it has been previously stored. If the hash code is unique, it is determined that the encapsulated packet has not been received before. If the hash code has been previously stored, it is determined that the encapsulated packet has been received. Although the hash function or seed can change, it is more likely to remain the same for a few minutes. Therefore, the uniqueness of the hash code can be used to determine whether an encapsulated packet has been received within the past few minutes.
图10是示出当通信路由器108从通信路由器106接收封装包时在通信路由器108处所执行的处理的流程图。封装包分配有全局序列号,随后由通信路由器106通过聚合连接传输至通信路由器108。封装包可为OEP 800或DEP 810。FIG. 10 is a flowchart showing processing performed at communication router 108 when communication router 108 receives an encapsulated packet from communication router 106 . The encapsulated packet is assigned a global sequence number and is then transmitted by communications router 106 to communications router 108 over the aggregation connection. The encapsulation package can be OEP 800 or DEP 810.
在步骤1000中,通信路由器108接收分配有第一全局序列号(GSN-1)的封装包。在步骤1001中,通信路由器108的CPU确定预期的全局序列号(E-GSN)。随后,在步骤1002中,将GSN-1与E-GSN相比较。E-GSN可用于估计下一个封装包的GSN应当是什么。In step 1000, communications router 108 receives an encapsulated packet assigned a first global sequence number (GSN-1). In step 1001, the CPU of communications router 108 determines an expected global sequence number (E-GSN). Then, in step 1002, GSN-1 is compared with E-GSN. E-GSN can be used to estimate what the GSN of the next encapsulated packet should be.
如果在步骤1002中确定E-GSN比GSN-1大,则认为封装包已延迟到达。在步骤1003中,通信路由器108的CPU确定是否在缺失的GSN的记录中识别到GSN-1。如果在缺失的GSN的记录中识别到GSN-1,则在步骤1005中,更新缺失的GSN的记录以从缺失的GSN的记录中移除GSN-1。随后,通信路由器108解封装封装包以取得封装的包,并且在步骤1009中,将封装的包转发至其目的地。目的地可为站点104中的主机或节点,并且可通过通信路由器108访问。作为替代,如果在缺失的GSN的记录中未识别到GSN-1,则在步骤1004中,丢弃该封装包,并且不将其转发至目的地。封装包被丢失是因为其被认为包含之前已经接收到的封装的包。既然在缺失的GSN的记录中未找到GSN-1,这就表明之前已经接收到了具有相同GSN-1的另一个封装包,并且可能已经被转发至目的地的。If it is determined in step 1002 that E-GSN is larger than GSN-1, it is considered that the encapsulated packet has arrived late. In step 1003, the CPU of communications router 108 determines whether GSN-1 is identified in the record for the missing GSN. If GSN-1 is identified in the missing GSN's record, then in step 1005, the missing GSN's record is updated to remove GSN-1 from the missing GSN's record. Communication router 108 then decapsulates the encapsulated packet to obtain the encapsulated packet, and in step 1009 forwards the encapsulated packet to its destination. The destination may be a host or node in site 104 and accessible through communications router 108 . Alternatively, if GSN-1 is not identified in the missing GSN's record, then in step 1004, the encapsulated packet is discarded and not forwarded to the destination. An encapsulated packet is lost because it is considered to contain an encapsulated packet that has been received before. Since GSN-1 is not found in the missing GSN's record, this indicates that another encapsulated packet with the same GSN-1 has been received before and may have been forwarded to the destination.
在步骤1002中,如果E-GSN未被确定为比GSN-1大,则在步骤1006中,通信路由器108的CPU确定E-GSN是否等于GSN-1。如果E-GSN等于GSN-1,则在步骤1007中,如果必要的话可增加E-GSN。解封装封装包以取得封装的包,随后,在步骤1009中,将封装的包转发至目的地。如果E-GSN不等于GSN-1(即,E-GSN小于GSN-1),则认为封装包已提早到达。因此,在步骤1008中,封装包在缓冲区中存储一个预先定义的时间段。当预先定义的时间段已经期满时,则可从缓冲区中移除该封装包,并且解封装以取得封装的包。随后,在步骤1009中,封装的包被转发至目的地。作为替代,当E-GSN已经变为等于GSN-1时,则可从缓冲区移除并解封装该封装包。随后,在步骤1009中,将该封装的包转发至目的地。E-GSN可变为等于GSN-1是因为基于接收到的封装包的GSN通过通信路由器108的CPU来增加E-GSN。在一个变型中,首先可将封装包解封装以取得该封装的包,随后,在步骤1008中,将该封装的包存储在缓冲区中。当预先定义的时间段已经期满或当E-GSN变为等于GSN-1时,则可将该封装的包从缓冲区移除并转发至目的地。在步骤1010中,该处理结束。In step 1002, if E-GSN is not determined to be greater than GSN-1, then in step 1006 the CPU of communications router 108 determines whether E-GSN is equal to GSN-1. If E-GSN is equal to GSN-1, then in step 1007, E-GSN may be added if necessary. The encapsulated packet is decapsulated to obtain the encapsulated packet, and then, in step 1009, the encapsulated packet is forwarded to the destination. If E-GSN is not equal to GSN-1 (ie, E-GSN is smaller than GSN-1), it is considered that the encapsulated packet has arrived early. Therefore, in step 1008, the encapsulated packet is stored in the buffer for a predefined period of time. When the predefined time period has expired, the encapsulated packet may then be removed from the buffer and decapsulated to obtain the encapsulated packet. Then, in step 1009, the encapsulated packet is forwarded to the destination. Alternatively, when E-GSN has become equal to GSN-1, then the encapsulated packet may be removed from the buffer and decapsulated. Then, in step 1009, the encapsulated packet is forwarded to the destination. E-GSN may become equal to GSN-1 because the E-GSN is increased by the CPU of the communication router 108 based on the GSN of the received encapsulated packet. In a variant, the encapsulated packet may first be decapsulated to obtain the encapsulated packet, and then, in step 1008, the encapsulated packet is stored in a buffer. When the predefined time period has expired or when the E-GSN becomes equal to GSN-1, then the encapsulated packet can be removed from the buffer and forwarded to the destination. In step 1010, the process ends.
将封装包存储在缓冲区中的好处是:封装包在存储之前无需解封装,从而可节省用于解封装的计算资源。然而,与封装的包相比,封装包可消耗缓冲区中更多的空间,这可能不是令人满意的。当封装的包存储在缓冲区中时,表明相应GSN的表也与封装的包一起被存储。The advantage of storing the encapsulated packets in the buffer is that the encapsulated packets do not need to be decapsulated before being stored, thus saving computing resources for decapsulating. However, encapsulated packets may consume more space in the buffer than encapsulated packets, which may not be desirable. When the encapsulated packet is stored in the buffer, a table indicating the corresponding GSN is also stored together with the encapsulated packet.
即使当具有更小的全局序列号的几个封装包可能会缺失(即,延迟、丢失或遗失)时,也可增加E-GSN。E-GSN持续增加是因为用于存储封装包的缓冲空间是有限的,并且一旦封装包的GSN变为等于E-GSN,就应当从缓冲区中移除封装包。E-GSN can be added even when several encapsulated packets with smaller global sequence numbers may be missing (ie delayed, lost or lost). The E-GSN continues to increase because the buffer space for storing encapsulated packets is limited, and once the GSN of the encapsulated packet becomes equal to the E-GSN, the encapsulated packet should be removed from the buffer.
与步骤1007和步骤1008相对应的详细的处理和用于计算E-GSN的方法在2013年4月11日公开的、国际公开号为W02013/049960Al的、题为“METHOD AND SYSTEM FORREDUCTION OF TIME VARIANCE OF PACKETS RECEIVED FROM BONDED COMMUNICATIONLINKS”(“用于减少从绑定通信链路接收的包的时间变量的方法和系统”)中公开了。在一个变型中,可根据图13的处理来执行步骤1008。The detailed processing corresponding to step 1007 and step 1008 and the method for calculating E-GSN are published on April 11, 2013, and the international publication number is W02013/049960Al, entitled "METHOD AND SYSTEM FORREDUCTION OF TIME VARIANCE OF PACKETS RECEIVED FROM BONDED COMMUNICATIONLINKS" ("Method and System for Reducing Time Variation of Packets Received from Bonded Communication Links"). In one variation, step 1008 may be performed according to the process of FIG. 13 .
通信路由器108存储通过聚合连接接收的封装包的GSN。缺失的GSN可记录在缺失的GSN的记录中。例如,通信路由器108在一个时间段内已经接收到具有GSN 01、GSN 02、GSN03、GSN 05和GSN 06的5个封装包。确定具有GSN 04的包缺失。因此,GSN 04被记录在缺失GSN的记录中。Communications router 108 stores the GSN of encapsulated packets received over the aggregated connection. The missing GSN can be recorded in the missing GSN record. For example, communications router 108 has received 5 encapsulated packets with GSN 01, GSN 02, GSN 03, GSN 05, and GSN 06 within a period of time. The package with GSN 04 is determined to be missing. Therefore, GSN 04 is recorded in the missing GSN record.
在一个变型中,通信路由器108存储其对应的封装的包已经被转发至目标主机或节点的每个封装包的GSN。GSN可被记录在转发的GSN的记录中。封装包可为OEP 800或DEP810。当确定是否转发与封装包相对应的封装的包时,通信路由器108检查转发的GSN的记录。如果在转发的GSN的记录中找到封装包的GSN,则不将该封装的包转发至目标主机或节点,因为其以前已经被转发了。In one variation, communications router 108 stores the GSN of each encapsulated packet whose corresponding encapsulated packet has been forwarded to the destination host or node. The GSN may be recorded in the forwarding GSN's record. Encapsulation package can be OEP 800 or DEP810. When determining whether to forward an encapsulated packet corresponding to the encapsulated packet, communications router 108 checks the forwarded GSN's record. If the GSN that encapsulates the packet is found in the forwarded GSN's record, the encapsulated packet is not forwarded to the target host or node because it has already been forwarded before.
图11是示出处理通过聚合连接接收的封装包的处理的流程图。例如,通信路由器108通过包括多个隧道的聚合连接从通信路由器106接收封装包。封装包可包括其目的地为可通过通信路由器108访问的主机或节点的一个或多个封装的包。FIG. 11 is a flowchart illustrating the process of processing encapsulated packets received over an aggregated connection. For example, communications router 108 receives encapsulated packets from communications router 106 over an aggregated connection that includes multiple tunnels. An encapsulated packet may include one or more encapsulated packets destined for a host or node accessible through communications router 108 .
在步骤1100中,通信路由器108接收封装包。在步骤1101中,通信路由器106的CPU确定该封装包是否包括OEP-GSN的列表。如果该封装包包括OEP-GSN的列表,则其可为DEP820,并且如果该封装包不包括OEP-GSN的列表,则其可为OEP 800。In step 1100, communications router 108 receives the encapsulated packet. In step 1101, the CPU of communications router 106 determines whether the encapsulation packet includes a list of OEP-GSNs. If the encapsulation packet includes a list of OEP-GSNs, it may be a DEP 820, and if the encapsulation packet does not include a list of OEP-GSNs, it may be an OEP 800.
当确定封装包为OEP 800时,在步骤1110中,通信路由器108的CPU确定该封装包的GSN(即,OEP-GSN 802)是否被记录在缺失的GSN的记录中。如果GSN被记录在缺失的GSN的记录中,则在步骤1112中,封装在封装包中的封装的包(比如,封装的包805)被转发至目标主机或节点。如果GSN未被记录在缺失的GSN的记录中,则确定该封装的包之前已经被接收,并且该封装的包已经被转发,因此,在步骤1111中,不再将该封装的包转发至目的地。When it is determined that the encapsulated packet is OEP 800, in step 1110, the CPU of communications router 108 determines whether the GSN of the encapsulated packet (ie, OEP-GSN 802) is recorded in the missing GSN record. If the GSN is recorded in the missing GSN's record, then in step 1112 the encapsulated packet (eg, encapsulated packet 805 ) encapsulated in the encapsulated packet is forwarded to the target host or node. If the GSN is not recorded in the record of the missing GSN, it is determined that the encapsulated packet has been received before, and the encapsulated packet has been forwarded, therefore, in step 1111, the encapsulated packet is no longer forwarded to the destination land.
当确定封装包为DEP 820时,在步骤1120中,通信路由器108的CPU确定m个OEP-GSN的列表826中的至少一个OEP-GSN是否被记录在缺失的GSN的记录中。如果否,则在步骤1121中,封装的包825都未被转发至目标主机或节点。如果在缺失的GSN的记录中找到至少一个OEP-GSN,则在步骤1122中,通信路由器106转发与被记录在缺失的GSN的记录中的m个OEP-GSN的列表中的至少一个OEP-GSN相对应的封装的包。例如,如果在缺失的GSN的记录中找到仅与封装的包825-2和825-3相对应的OEP-GSN,则随后在步骤1122中,仅将封装的包825-2和825-3转发至目的地,而其余的封装的包不被转发至目的地。在步骤1130中,该处理结束。When it is determined that the encapsulated packet is DEP 820, in step 1120, the CPU of communication router 108 determines whether at least one OEP-GSN in list 826 of m OEP-GSNs is recorded in the missing GSN record. If not, then in step 1121 none of the encapsulated packets 825 are forwarded to the target host or node. If at least one OEP-GSN is found in the record of the missing GSN, then in step 1122, the communication router 106 forwards the at least one OEP-GSN with the list of m OEP-GSNs recorded in the record of the missing GSN The corresponding encapsulated package. For example, if only the OEP-GSN corresponding to the encapsulated packets 825-2 and 825-3 is found in the record of the missing GSN, then in step 1122 only the encapsulated packets 825-2 and 825-3 are forwarded to the destination, while the remaining encapsulated packets are not forwarded to the destination. In step 1130, the process ends.
根据实施例之一,当通信路由器108接收封装包时,其可通过检查隧道ID来确定该封装包是OEP还是DEP。通信路由器106可通知通信路由器108选择第一隧道用于传输OEP,并且选择第二隧道用于传输DEP。因此,通信路由器108可确定通过第一隧道接收的任何包为OEP,并且通过第二隧道接收的任何包为DEP。然而,在一些情况中,第二隧道还可用于传输其它包,比如管理包、健康检查包等。在这种情况中,封装包可具有表明封装包是OEP还是DEP的附加字段。作为替代,表明封装包是OEP还是DEP的信息可包括在封装包的其它信息字段中。可执行检查隧道ID或检查附加字段而非执行步骤1101来确定封装包是OEP还是DEP。According to one of the embodiments, when the communication router 108 receives the encapsulated packet, it may determine whether the encapsulated packet is OEP or DEP by checking the tunnel ID. Communications router 106 may notify communications router 108 to select the first tunnel for transporting OEP and select the second tunnel for transporting DEP. Accordingly, communications router 108 may determine that any packets received through the first tunnel are OEP and any packets received through the second tunnel are DEP. However, in some cases, the second tunnel can also be used to transmit other packets, such as management packets, health check packets, and the like. In this case, the encapsulation packet may have an additional field indicating whether the encapsulation packet is OEP or DEP. Alternatively, information indicating whether the encapsulated packet is OEP or DEP may be included in the other information field of the encapsulated packet. Instead of performing step 1101, checking the tunnel ID or checking additional fields may be performed to determine whether the encapsulated packet is OEP or DEP.
图12A示出了根据示例性实施例的基于n个OEP而创建的DEP 820的内容。为了便于查看,未在OEP 800-1、OEP 800-2、OEP 800-3、OEP 800-4和DEP 820-1中示出IP报头、每个隧道序列号和其它信息。虽然未示出IP报头、每个隧道序列号和其它信息,但是OEP和DEP中的每一个包含那些字段。FIG. 12A shows the contents of a DEP 820 created based on n OEPs according to an exemplary embodiment. For ease of viewing, the IP header, per-tunnel sequence numbers, and other information are not shown in OEP 800-1, OEP 800-2, OEP 800-3, OEP 800-4, and DEP 820-1. Although the IP header, per-tunnel sequence numbers, and other information are not shown, each of OEP and DEP contains those fields.
通信路由器106首先从站点102中的主机或节点接收数据包1、数据包2、数据包3和数据包4。这些数据包封装在OEP中。数据包1变为封装在OEP 800-1中的封装的包1 805-1。数据包2变为封装在OEP 800-2中的封装的包2 805-2。数据包3变为封装在OEP 800-3中的封装的包3 805-3。数据包4变为封装在OEP 800-4中的封装的包4 805-4。字段OEP-GSN802-1、OEP-GSN 802-2、OEP-GSN 802-3和OEP-GSN 802-4分别包含OEP-GSN 1、OEP-GSN 2、OEP-GSN 3和OEP-GSN 4。通信路由器106通过聚合连接的第一隧道将OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4传输至通信路由器108。OEP 800-1、OEP 800-2、OEP 800-3和OEP800-4为被传输的n个OEP,并且它们的GSN分别为OEP-GSN 1、OEP-GSN 2、OEP-GSN 3和OEP-GSN 4。随后,通信路由器106针对四个OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4通过第二隧道将DEP 820-1传输至通信路由器108。m个OEP-GSN的列表827包括OEP-GSN 1、OEP-GSN 2、OEP-GSN 3和OEP-GSN 4。如图12B和图12C中所示,信息(数据包信息)1225基于OEP-GSN的封装的包1至4。传输DEP 820-1的目的之一是恢复在传输OEP期间可能遗失的任何信息。如果四个OEP中的任何一个未被通信路由器108接收到,或者在四个OEP中的任何一个中存在错误,则DEP 820-1可用于重新创建四个OEP中的任何一个,这是因为其包含来自四个OEP的信息。信息1225可以或可以不包含封装的包1至4。然而,信息1225可用于重新创建封装的包1至4。Communication router 106 first receives packet 1 , packet 2 , packet 3 , and packet 4 from hosts or nodes in site 102 . These packets are encapsulated in OEP. Data Packet 1 becomes Encapsulated Packet 1 805-1 encapsulated in OEP 800-1. Data packet 2 becomes encapsulated packet 2 805-2 encapsulated in OEP 800-2. Data packet 3 becomes encapsulated packet 3 805-3 encapsulated in OEP 800-3. Data packet 4 becomes encapsulated packet 4 805-4 encapsulated in OEP 800-4. Fields OEP-GSN 802-1 , OEP-GSN 802-2 , OEP-GSN 802-3 and OEP-GSN 802-4 contain OEP-GSN 1 , OEP-GSN 2 , OEP-GSN 3 and OEP-GSN 4 respectively. Communications router 106 transmits OEP 800-1, OEP 800-2, OEP 800-3, and OEP 800-4 to communications router 108 through the first tunnel of the aggregated connection. OEP 800-1, OEP 800-2, OEP 800-3, and OEP800-4 are n OEPs to be transmitted, and their GSNs are OEP-GSN 1, OEP-GSN 2, OEP-GSN 3, and OEP-GSN 4. Communication router 106 then transmits DEP 820-1 to communication router 108 through the second tunnel for four OEPs 800-1, OEP 800-2, OEP 800-3, and OEP 800-4. The list 827 of m OEP-GSNs includes OEP-GSN 1 , OEP-GSN 2 , OEP-GSN 3 and OEP-GSN 4 . As shown in FIGS. 12B and 12C , information (packet information) 1225 is based on encapsulated packets 1 to 4 of OEP-GSN. One of the purposes of transmitting DEP 820-1 is to recover any information that may have been lost during transmission of the OEP. If any of the four OEPs are not received by communications router 108, or if there is an error in any of the four OEPs, DEP 820-1 can be used to recreate any of the four OEPs because of its Contains information from four OEPs. Information 1225 may or may not contain encapsulated packages 1-4. However, information 1225 can be used to recreate encapsulated packages 1-4.
图12B示出了根据实施例之一的关于图12A的四个OEP的DEP的内容。为了便于查看,未在DEP 820-2中示出IP报头、每个隧道序列号和其它信息。针对四个OEP 800-1、OEP800-2、OEP 800-3和OEP 800-4可通过第二隧道将DEP 820-2传输至通信路由器108。在DEP820-2中,信息1225包括封装的包1 805-1、封装的包2 805-2、封装的包3 805-3和封装的包4 805-4。用这种方法,信息1225基于封装的包1至4,因此,可以通过通信路由器108使用DEP820-2中的信息1225来重新创建封装的包1至4。FIG. 12B shows the contents of DEPs with respect to the four OEPs of FIG. 12A according to one of the embodiments. For ease of viewing, the IP header, per-tunnel sequence numbers, and other information are not shown in DEP 820-2. DEP 820-2 may be transmitted to communications router 108 through a second tunnel for the four OEPs 800-1, OEP 800-2, OEP 800-3, and OEP 800-4. In DEP 820-2, information 1225 includes encapsulated packet 1 805-1, encapsulated packet 2 805-2, encapsulated packet 3 805-3, and encapsulated packet 4 805-4. In this way, information 1225 is based on encapsulated packets 1-4, and therefore, encapsulated packets 1-4 can be recreated by communications router 108 using information 1225 in DEP 820-2.
图12C示出了根据替代实施例的关于图12A的四个OEP的DEP的内容。为了便于查看,未在DEP 820-3中示出IP报头、每个隧道序列号和其它信息。针对四个OEP 800-1、OEP800-2、OEP 800-3和OEP 800-4可通过第二隧道将DEP 820-3传输至通信路由器108。在DEP820-3中,信息1225包含信息805-12和信息805-34。信息805-12和信息805-34可通过对封装的包1至4应用操作来产生。例如,该操作为异或(XOR)运算。通过对封装的包1和封装的包2应用XOR运算来产生信息805-12。因此,信息805-12可用于重新创建封装的包1和/或封装的包2。通过对封装的包3和封装的包4应用XOR运算来产生信息805-34。因此,信息805-34可用于重新创建封装的包3和/或封装的包4。当通信路由器108接收DEP 820-3时,其能够使用信息805-12和信息805-34来重新创建任何缺失的封装的包1至4或纠正封装的包1至4中的任一个中的任何错误。封装的包1至4的不同的组合可被一起使用,以通过执行XOR运算来在DEP820-3的信息1225中产生其它类型的信息。本发明的范围不限于作为XOR运算的操作,使得其能够为适于执行前向纠错的任何操作。传输DEP 820-3而非DEP 820-2的好处之一是DEP 820-3的传输可因为减少的开销而消耗较少的带宽。Figure 12C shows the content of a DEP with respect to the four OEPs of Figure 12A, according to an alternative embodiment. For ease of viewing, the IP header, per-tunnel sequence numbers, and other information are not shown in DEP 820-3. DEP 820-3 may be transmitted to communications router 108 through a second tunnel for the four OEPs 800-1, OEP 800-2, OEP 800-3, and OEP 800-4. In DEP 820-3, message 1225 contains message 805-12 and message 805-34. Information 805-12 and information 805-34 may be generated by applying operations to encapsulated packets 1-4. For example, the operation is an exclusive OR (XOR) operation. Information 805-12 is generated by applying an XOR operation to Encapsulated Packet 1 and Encapsulated Packet 2. Accordingly, information 805-12 may be used to recreate encapsulated package 1 and/or encapsulated package 2. Information 805-34 is generated by applying an XOR operation to encapsulated packet 3 and encapsulated packet 4. Accordingly, information 805-34 may be used to recreate encapsulated package 3 and/or encapsulated package 4. When communications router 108 receives DEP 820-3, it can use information 805-12 and information 805-34 to recreate any missing encapsulated packets 1-4 or to correct any of any of encapsulated packets 1-4. mistake. Different combinations of encapsulated packets 1 to 4 can be used together to generate other types of information in the information 1225 of DEP 820-3 by performing an XOR operation. The scope of the invention is not limited to operations that are XOR operations, such that it can be any operation suitable for performing forward error correction. One of the benefits of transmitting DEP 820-3 instead of DEP 820-2 is that the transmission of DEP 820-3 may consume less bandwidth due to the reduced overhead.
图13是示出用于处理在通信路由器108处接收的DEP(比如,DEP 820-3)的处理的流程图。在步骤1301中,通信路由器108通过聚合连接接收DEP 820-3。在步骤1302中,通信路由器108的CPU确定OEP-GSN的列表827中的OEP-GSN。在步骤1303中,通信路由器108的CPU确定是否已经接收到与OEP-GSN的列表827中的OEP-GSN中的至少一个相对应的OEP。更精确地说,在步骤1303中,确定是否已经接收到OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4中的至少一个。如果OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4都未接收到,则在步骤1304中,可将信息805-12和信息805-34存储在缓冲区中以供稍后处理。如果已经接收到了OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4中的至少一个,并且在步骤1309中的延迟之后,如果在步骤1305中确定全部接收了OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4,则随后在步骤1308中丢弃DEP 820-3。如果OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4中的至少一个但不是全部OEP 800-1、OEP 800-2、OEP 800-3和OEP 800-4已经被接收,则在步骤1306中,如果可能的话,通信路由器108可使用存储的信息805-12和/或信息805-34来重新创建与以前未接收的一个或多个OEP相对应的一个或多个数据包。在步骤1307中,可将重新创建的数据包转发至其目的地。FIG. 13 is a flowchart illustrating a process for processing a DEP (eg, DEP 820 - 3 ) received at communications router 108 . In step 1301, communications router 108 receives DEP 820-3 over an aggregated connection. In step 1302, the CPU of the communications router 108 determines the OEP-GSN in the list 827 of OEP-GSNs. In step 1303, the CPU of the communications router 108 determines whether an OEP corresponding to at least one of the OEP-GSNs in the list 827 of OEP-GSNs has been received. More precisely, in step 1303, it is determined whether at least one of OEP 800-1, OEP 800-2, OEP 800-3, and OEP 800-4 has been received. If none of OEP 800-1, OEP 800-2, OEP 800-3, and OEP 800-4 have been received, then in step 1304, information 805-12 and information 805-34 may be stored in a buffer for later post-processing. If at least one of OEP 800-1, OEP 800-2, OEP 800-3, and OEP 800-4 has been received, and after the delay in step 1309, if it is determined in step 1305 that all OEP 800-1 , OEP 800-2, OEP 800-3, and OEP 800-4, then in step 1308, DEP 820-3 is discarded. If at least one but not all of OEP 800-1, OEP 800-2, OEP 800-3, and OEP 800-4 have been received, Then in step 1306, if possible, communications router 108 may use stored information 805-12 and/or information 805-34 to recreate one or more data packets corresponding to one or more OEPs not previously received . In step 1307, the recreated data packet may be forwarded to its destination.
在步骤1303和步骤1305之间引入延迟是因为所有OEP可能需要一些时间来到达通信路由器108。因此,在接收到OEP中的一个之后,可能不会立即接收到所有OEP。A delay is introduced between step 1303 and step 1305 because it may take some time for all OEPs to reach communication router 108 . Therefore, all OEPs may not be received immediately after one of the OEPs is received.
出于说明的目的,如果在步骤1303中确定之前接收了OEP 800-1,但是没有接收到OEP 800-2,则在步骤1306中,可使用信息805-12来重新创建数据包2。这是可能的,因为信息805-12和数据包1两者都是可用的,并且存在用于创建数据包2的足够的信息。如果之前没有接收到OEP 800-3和OEP 800-4这两者,则在步骤1306中,可能不能使用DEP 820-3和信息805-34来重新创建数据包3或数据包4,因为即使之前已经接收到了OEP 800-1和/或OEP800-2,但也没有足够的信息。For purposes of illustration, if it is determined in step 1303 that OEP 800-1 was previously received, but OEP 800-2 was not received, then in step 1306, packet 2 may be recreated using information 805-12. This is possible because both information 805-12 and packet 1 are available, and there is sufficient information to create packet 2. If both OEP 800-3 and OEP 800-4 have not been received before, then in step 1306, DEP 820-3 and information 805-34 may not be used to recreate packet 3 or packet 4 because even before OEP 800-1 and/or OEP800-2 have been received, but also not enough information.
在另一个示例中,当通过对三个数据包执行XOR运算来产生包括在DEP 820-3中的信息,并且之前接收到与三个数据包中的仅一个相对应的OEP时,则可能不能重新创建另外两个数据包。In another example, when the information included in DEP 820-3 is generated by performing an XOR operation on three packets, and an OEP corresponding to only one of the three packets was previously received, then it may not be possible Recreate the other two packets.
在一个变型中,在步骤1304中,在缓冲区中存储整个DEP 820-3而非仅存储信息805-12和信息805-34。存储整个DEP 820-3的好处是在存储DEP 820-3之前无需解封装。如果DEP 820-3最终被丢弃,则可节省用于解封装的计算资源。然而,与信息805-12和信息805-34相比,DEP 820-3可消耗缓冲区中的更多的空间,这可能不是令人满意的。In one variation, in step 1304, the entire DEP 820-3 is stored in the buffer rather than just the information 805-12 and the information 805-34. An advantage of storing the entire DEP 820-3 is that no decapsulation is required before storing the DEP 820-3. Computational resources for decapsulation may be saved if DEP 820-3 is eventually discarded. However, DEP 820-3 may consume more space in the buffer than message 805-12 and message 805-34, which may not be desirable.
在一个变型中,在步骤1307转发数据包之前,通信路由器108将数据包在缓冲区中存储一段预先定义的时间段。当预先定义的时间段期满时,则该数据包被转发至目的地。作为替代,该数据包可存储在缓冲区中,直到E-GSN变为等于与该数据包相对应的OEP-GSN,随后,将该数据包转发至目的地。In a variant, before forwarding the data packet at step 1307, the communications router 108 stores the data packet in a buffer for a predefined period of time. When the predefined time period expires, then the packet is forwarded to the destination. Alternatively, the data packet may be stored in a buffer until the E-GSN becomes equal to the OEP-GSN corresponding to the data packet, after which the data packet is forwarded to the destination.
在一个示例中,通信路由器106建立与通信路由器108的包括三个隧道(即,第一隧道、第二隧道和第三隧道)的聚合连接。选择第一隧道来传输OEP,并且选择第二隧道和第三隧道来传输DEP。用户或管理员可配置通信路由器106为传输DEP 810和DEP 820中的一种类型,或者传输DEP 810和DEP 820这两种类型。当通信路由器106配置为传输DEP 810时,则针对每个OEP 800传输至少一个DEP 810。如上文讨论的那样,可配置与每个OEP 800相对应的要被传输的DEP 810的数量。In one example, communications router 106 establishes an aggregated connection with communications router 108 that includes three tunnels (ie, a first tunnel, a second tunnel, and a third tunnel). The first tunnel is selected to transport the OEP, and the second and third tunnels are selected to transport the DEP. A user or administrator may configure communications router 106 to transport either type of DEP 810 and DEP 820 , or to transport both types of DEP 810 and DEP 820 . When communications router 106 is configured to transmit DEPs 810 , then at least one DEP 810 is transmitted for each OEP 800 . As discussed above, the number of DEPs 810 corresponding to each OEP 800 to be transmitted is configurable.
当通信路由器106配置为传输DEP 820时,针对n个OEP 800可传输一个DEP 820。数量n能够被配置。出于说明的目的,n是5,并且通信路由器106配置为:通过第一隧道针对每5个所传输的OEP 800传输一个DEP 820。因此,通信路由器106在通过第一隧道传输5个OEP800之后,通过第二隧道或第三隧道传输一个DEP 820。如果传输了第一OEP 800、第二OEP800、第三OEP 800、第四OEP 800和第五OEP 800,并且DEP 820包括与第一OEP 800、第二OEP800、第三OEP 800、第四OEP 800和第五OEP 800的封装的包相对应的信息,则m个OEP-GSN的列表826包括第一OEP 800的OEP-GSN、第二OEP 800的OEP-GSN、第三OEP 800的OEP-GSN、第四OEP 800的OEP-GSN和第五OEP 800的OEP-GSN。DEP-GSN 822不与任何OEP 800的OEP-GSN802相同。封装的包825包括分别与第一OEP 800、第二OEP 800、第三OEP 800、第四OEP 800和第五OEP 800相对应的封装的包825-1、封装的包825-2、封装的包825-3、封装的包825-4和封装的包825-5。When communications router 106 is configured to transmit DEP 820 , one DEP 820 may be transmitted for n OEPs 800 . The number n can be configured. For purposes of illustration, n is 5, and communications router 106 is configured to transmit one DEP 820 for every 5 OEPs 800 transmitted through the first tunnel. Therefore, the communication router 106 transmits one DEP 820 through the second tunnel or the third tunnel after transmitting five OEPs 800 through the first tunnel. If the first OEP 800, the second OEP 800, the third OEP 800, the fourth OEP 800, and the fifth OEP 800 are transmitted, and the DEP 820 includes the The information corresponding to the encapsulated packet of the fifth OEP 800, the list 826 of m OEP-GSNs includes the OEP-GSN of the first OEP 800, the OEP-GSN of the second OEP 800, and the OEP-GSN of the third OEP 800 , the OEP-GSN of the fourth OEP 800 and the OEP-GSN of the fifth OEP 800 . DEP-GSN 822 is not identical to OEP-GSN 802 of any OEP 800 . The encapsulated package 825 includes an encapsulated package 825-1, an encapsulated package 825-2, an encapsulated Packet 825-3, Encapsulated Packet 825-4, and Encapsulated Packet 825-5.
当通信路由器106配置为传输DEP 810和DEP 820两者时,其可以或可以不使用相同的隧道进行传输。出于说明的目的,通信路由器106配置为针对每个OEP 800传输两个DEP810,并且针对每5个OEP 800传输一个DEP 820。与相同的OEP 800相对应的两个DEP 810不通过相同的隧道传输。与每个OEP 800相对应的第一DEP 810可通过第二隧道传输,并且与每个OEP 800相对应的第二DEP 810可通过第三隧道传输。DEP 820可通过第二隧道或第三隧道传输。DEP 820可以以轮询方式通过第二隧道和第三隧道传输。作为替代,当通信路由器106配置为不通过相同的隧道传输DEP 810和DEP 820时,其可选择第二隧道来为每个OEP800传输一个DEP 810,并且选择第三隧道来针对每5个OEP 800传输一个DEP 820。When communications router 106 is configured to transport both DEP 810 and DEP 820, it may or may not use the same tunnel for transport. For purposes of illustration, communications router 106 is configured to transmit two DEPs 810 for each OEP 800 and one DEP 820 for every five OEPs 800 . Two DEPs 810 corresponding to the same OEP 800 are not tunneled through the same. The first DEP 810 corresponding to each OEP 800 may be transmitted through the second tunnel, and the second DEP 810 corresponding to each OEP 800 may be transmitted through the third tunnel. DEP 820 may be transported through the second tunnel or the third tunnel. DEP 820 may transmit through the second tunnel and the third tunnel in a polling manner. Alternatively, when communications router 106 is configured not to transmit DEP 810 and DEP 820 through the same tunnel, it may select the second tunnel to transmit one DEP 810 for each OEP 800 and the third tunnel to transmit one DEP 810 for every 5 OEPs 800 Transmit a DEP 820.
在一些情况下,可优选地不传输DEP,因为其可能对OEP的传输具有不利影响。例如,使用通信装置106的相同网络接口和/或使用通信装置108的相同网络接口来建立第一隧道和第二隧道时,通过第二隧道传输DEP可延长OEP通过第一隧道所经历的延迟。还可以降低OEP的吞吐量。当通过站点102中的相同WAN和/或站点104中的相同WAN建立第一隧道和第二隧道时,可观察到类似的影响。当使用由相同运营商提供的网络来建立第一隧道和第二隧道时,也可以观察到类似的影响,因为隧道所连接的基站可能相同。此外,产生和传输DEP所消耗的计算资源可能会减慢OEP的传输。因此,在这些情况下,可优选地不传输DEP或不传输与每个OEP相对应的大量的DEP。In some cases, it may be preferable not to transmit the DEP as it may have an adverse effect on the transmission of the OEP. For example, when the first tunnel and the second tunnel are established using the same network interface of communication device 106 and/or using the same network interface of communication device 108, transmitting the DEP through the second tunnel may extend the delay experienced by the OEP through the first tunnel. The throughput of OEP can also be reduced. Similar effects may be observed when the first and second tunnels are established over the same WAN in site 102 and/or the same WAN in site 104 . A similar effect can also be observed when the first and second tunnels are established using a network provided by the same operator, since the tunnels may be connected to the same base station. In addition, the computing resources consumed by generating and transmitting DEP may slow down the transmission of OEP. Therefore, in these cases, it may be preferable not to transmit a DEP, or to transmit a large number of DEPs corresponding to each OEP.
上述处理还可应用于封装从通信路由器108传输至通信路由器106的包。The process described above is also applicable to encapsulating packets transmitted from communications router 108 to communications router 106 .
应当理解,本公开不限于系统500的架构。例如,任何合适的基于处理器的装置可用于实现上述教导,该装置包括但不限于路由器、个人计算机、笔记本电脑、计算机工作站、多处理器服务器、甚至移动电话。此外,某些实施例可在专用集成电路(ASIC)或超大规模集成电路(VLSI)上实现。事实上,本领域普通技术人员可利用能够执行根据实施例的逻辑运算的任何数量的适当的结构。It should be understood that the present disclosure is not limited to the architecture of system 500 . For example, any suitable processor-based device may be used to implement the above teachings, including but not limited to routers, personal computers, laptops, computer workstations, multi-processor servers, and even mobile phones. Additionally, certain embodiments may be implemented on an Application Specific Integrated Circuit (ASIC) or Very Large Scale Integration (VLSI). In fact, one of ordinary skill in the art may utilize any number of suitable structures capable of performing logical operations in accordance with the embodiments.
虽然已经详细描述了本发明的实施例及其优点,但是应当理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以在此进行各种改变、修改和替换。此外,本申请的范围不旨在限于说明书中描述的处理、机器、制造、物质组成、装置、方法和步骤的特定实施例。本领域普通技术人员从本发明的公开中将容易地理解,可以根据本发明利用当前存在或以后开发的执行与本文所述的相应实施例实质上相同的功能或实现与本文所述的相应实施例实质上相同结果的处理、机器、制造、物质组成、装置、方法或步骤。因此,所附权利要求旨在将这些处理、机器、制造、物质组成、装置、方法或步骤包括在其范围内。Although the embodiments of the present invention and its advantages have been described in detail, it should be understood that various changes, modifications and substitutions can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. Furthermore, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. Those of ordinary skill in the art will readily understand from the disclosure of the present invention that currently existing or later developed devices that perform substantially the same functions as the corresponding embodiments described herein or implement corresponding embodiments described herein can be utilized according to the present invention. Process, machine, manufacture, composition of matter, means, method or steps that result in substantially the same effect. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911234144.2A CN110912798B (en) | 2014-08-08 | 2014-08-08 | Method and system for transmitting data through aggregated connections |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2014/063791 WO2016020727A1 (en) | 2014-08-08 | 2014-08-08 | Methods and systems for transmitting data through an aggregated connection |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911234144.2A Division CN110912798B (en) | 2014-08-08 | 2014-08-08 | Method and system for transmitting data through aggregated connections |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106576073A CN106576073A (en) | 2017-04-19 |
CN106576073B true CN106576073B (en) | 2019-12-27 |
Family
ID=54606055
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911234144.2A Active CN110912798B (en) | 2014-08-08 | 2014-08-08 | Method and system for transmitting data through aggregated connections |
CN201480081080.6A Active CN106576073B (en) | 2014-08-08 | 2014-08-08 | Method and system for transmitting data through aggregated connections |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911234144.2A Active CN110912798B (en) | 2014-08-08 | 2014-08-08 | Method and system for transmitting data through aggregated connections |
Country Status (4)
Country | Link |
---|---|
CN (2) | CN110912798B (en) |
GB (1) | GB2532587B (en) |
HK (1) | HK1232353A1 (en) |
WO (1) | WO2016020727A1 (en) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10084754B2 (en) * | 2015-12-11 | 2018-09-25 | Microsoft Technology Licensing, Llc | Virtual private network aggregation |
MX2020004745A (en) * | 2017-11-20 | 2020-10-28 | Mako Networks Nz Ltd | Method and system for transmitting data. |
US11245546B2 (en) * | 2017-11-27 | 2022-02-08 | Pismo Labs Technology Limited | Methods and systems for transmitting and receiving data packets through a bonded connection |
US11095617B2 (en) | 2017-12-04 | 2021-08-17 | Nicira, Inc. | Scaling gateway to gateway traffic using flow hash |
GB2573573B (en) * | 2018-05-11 | 2022-08-17 | Cambridge Broadband Networks Group Ltd | A system and method for distributing packets in a network |
DE112019005705T5 (en) * | 2018-11-14 | 2021-10-28 | Skywave Networks Llc | EQUALIZING THE CHANNEL WITH LOW LATENCY USING A SECONDARY CHANNEL |
WO2020221459A1 (en) * | 2019-05-02 | 2020-11-05 | Nokia Technologies Oy | Apparatus, method and computer program |
US11277343B2 (en) | 2019-07-17 | 2022-03-15 | Vmware, Inc. | Using VTI teaming to achieve load balance and redundancy |
CN112913170B (en) * | 2019-10-01 | 2024-07-05 | 柏思科技有限公司 | Improved method and system for transmitting and receiving transmission control protocol segments on internet protocol packets |
US11509638B2 (en) | 2019-12-16 | 2022-11-22 | Vmware, Inc. | Receive-side processing for encapsulated encrypted packets |
CN110913026B (en) * | 2019-12-31 | 2022-10-04 | 奇安信科技集团股份有限公司 | Message transmission method, device, electronic device and medium |
US11902264B2 (en) | 2020-06-22 | 2024-02-13 | Vmware, Inc. | Path selection for data packets encrypted based on an IPSEC protocol |
US11303389B2 (en) * | 2020-08-07 | 2022-04-12 | Hyannis Port Research, Inc. | Systems and methods of low latency data communication for physical link layer reliability |
US12107682B2 (en) | 2020-08-07 | 2024-10-01 | Hyannis Port Research, Inc. | Systems and methods of low latency data communication for physical link layer reliability |
CN117221045A (en) * | 2020-08-28 | 2023-12-12 | 柏思科技有限公司 | Method and system for transmitting session-based packets |
CN114258108B (en) * | 2020-09-22 | 2024-09-17 | 华为技术有限公司 | Data distribution method and mobile aggregation equipment |
US12107834B2 (en) | 2021-06-07 | 2024-10-01 | VMware LLC | Multi-uplink path quality aware IPsec |
US12113773B2 (en) | 2021-06-07 | 2024-10-08 | VMware LLC | Dynamic path selection of VPN endpoint |
EP4248621A1 (en) * | 2021-06-07 | 2023-09-27 | VMware, Inc. | Multi-uplink path quality aware ipsec |
US11863514B2 (en) | 2022-01-14 | 2024-01-02 | Vmware, Inc. | Performance improvement of IPsec traffic using SA-groups and mixed-mode SAs |
US11956213B2 (en) | 2022-05-18 | 2024-04-09 | VMware LLC | Using firewall policies to map data messages to secure tunnels |
WO2024141776A1 (en) * | 2022-12-29 | 2024-07-04 | Pismo Labs Technology Limited | Methods for reducing packet loss during slow start of a session |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008106773A1 (en) * | 2007-03-02 | 2008-09-12 | Hexago | Tunneling device for automatic protocol provisioning in a network |
EP1995928A1 (en) * | 2007-05-24 | 2008-11-26 | France Télécom | Method for controlling a communicaton of a mobile node and related home agent and gateway |
CN101325557A (en) * | 2008-07-25 | 2008-12-17 | 华为技术有限公司 | Method, system and apparatus for sharing tunnel load |
EP2020129A2 (en) * | 2006-05-24 | 2009-02-04 | AT & T Intellectual Property LLP | Method and apparatus for reliable communications in a packet network |
CN101938421A (en) * | 2010-09-14 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | Method for realizing route summarization in multi-protocol label switching network and router |
CN102546382A (en) * | 2010-12-08 | 2012-07-04 | 中国电信股份有限公司 | Method and system for realizing multicast in Internet protocol version 4 over Internet protocol version 6 (IPv4overIPv6) tunnel |
CN103166846A (en) * | 2013-03-27 | 2013-06-19 | 杭州华三通信技术有限公司 | Message forwarding method and device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018259B (en) * | 2006-02-08 | 2010-12-01 | 中国电信股份有限公司 | Telecom integrated information system and method |
ATE479250T1 (en) * | 2007-04-17 | 2010-09-15 | Alcatel Lucent | METHOD AND DEVICE FOR RESERVING NETWORK RESOURCES FOR A POINT-TO-POINT PSEUD CONNECTION |
US8798077B2 (en) * | 2010-12-29 | 2014-08-05 | Juniper Networks, Inc. | Methods and apparatus for standard protocol validation mechanisms deployed over a switch fabric system |
CN102056199A (en) * | 2011-01-19 | 2011-05-11 | 中国人民解放军信息工程大学 | Method for optimizing self-adaption route in nested mobile network |
US20130124605A1 (en) * | 2011-11-14 | 2013-05-16 | Microsoft Corporation | Aggregating and presenting tasks |
JP5969689B2 (en) * | 2012-04-18 | 2016-08-17 | アクメ パケット インコーポレイテッドAcme Packet, Inc. | Redundancy for real-time communication |
-
2014
- 2014-08-08 CN CN201911234144.2A patent/CN110912798B/en active Active
- 2014-08-08 WO PCT/IB2014/063791 patent/WO2016020727A1/en active Application Filing
- 2014-08-08 CN CN201480081080.6A patent/CN106576073B/en active Active
- 2014-08-08 GB GB1517507.8A patent/GB2532587B/en active Active
-
2017
- 2017-06-09 HK HK17105737.8A patent/HK1232353A1/en unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2020129A2 (en) * | 2006-05-24 | 2009-02-04 | AT & T Intellectual Property LLP | Method and apparatus for reliable communications in a packet network |
WO2008106773A1 (en) * | 2007-03-02 | 2008-09-12 | Hexago | Tunneling device for automatic protocol provisioning in a network |
EP1995928A1 (en) * | 2007-05-24 | 2008-11-26 | France Télécom | Method for controlling a communicaton of a mobile node and related home agent and gateway |
CN101325557A (en) * | 2008-07-25 | 2008-12-17 | 华为技术有限公司 | Method, system and apparatus for sharing tunnel load |
CN101938421A (en) * | 2010-09-14 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | Method for realizing route summarization in multi-protocol label switching network and router |
CN102546382A (en) * | 2010-12-08 | 2012-07-04 | 中国电信股份有限公司 | Method and system for realizing multicast in Internet protocol version 4 over Internet protocol version 6 (IPv4overIPv6) tunnel |
CN103166846A (en) * | 2013-03-27 | 2013-06-19 | 杭州华三通信技术有限公司 | Message forwarding method and device |
Non-Patent Citations (1)
Title |
---|
VPN的隧道技术;翁亮,陈依群,诸鸿文;《计算机与网络》;19990923(第18期);23-24 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016020727A1 (en) | 2016-02-11 |
HK1232353A1 (en) | 2018-01-05 |
CN106576073A (en) | 2017-04-19 |
GB2532587A (en) | 2016-05-25 |
CN110912798A (en) | 2020-03-24 |
CN110912798B (en) | 2021-12-21 |
GB201517507D0 (en) | 2015-11-18 |
GB2532587B (en) | 2021-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106576073B (en) | Method and system for transmitting data through aggregated connections | |
US10958469B2 (en) | Methods and systems for increasing wireless communication throughput of a bonded VPN tunnel | |
US12212495B2 (en) | Reliable fabric control protocol extensions for data center networks with unsolicited packet spraying over multiple alternate data paths | |
US10116591B2 (en) | Methods and systems for transmitting data through an aggregated connection | |
US11412076B2 (en) | Network access node virtual fabrics configured dynamically over an underlay network | |
US12231353B2 (en) | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths | |
US20210320820A1 (en) | Fabric control protocol for large-scale multi-stage data center networks | |
US9350672B2 (en) | Performance enhancement and congestion control of multipath protocol packets in a heterogeneous network environment with multipath transport protocols | |
EP3278514B1 (en) | Data transmission | |
US20180288179A1 (en) | Proxy for serving internet-of-things (iot) devices | |
US20170104689A1 (en) | Virtual machine and application movement over a wide area network | |
US20210297343A1 (en) | Reliable fabric control protocol extensions for data center networks with failure resilience | |
US9019827B1 (en) | Throughput optimization for bonded variable bandwidth connections | |
US11201699B2 (en) | Methods and systems for transmitting error correction packets | |
Das et al. | TCP improvements for data center networks | |
JP2018511275A (en) | Method and system for scheduling packets in bundling scenarios based on TCP tunnel and native TCP information | |
Teymoori et al. | Congestion control in the recursive internetworking architecture (RINA) | |
WO2016103008A1 (en) | Methods and systems for transmitting data through an aggregated connection | |
US12278763B2 (en) | Fabric control protocol with congestion control for data center networks | |
US20210297351A1 (en) | Fabric control protocol with congestion control for data center networks | |
KR20140002040A (en) | Technique for managing communications at a router |
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: 1232353 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |