Throughput optimization for bonded variable bandwidth connections

US9584414B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9584414-B2
Application numberUS-201414585202-A
CountryUS
Kind codeB2
Filing dateDec 30, 2014
Priority dateDec 23, 2009
Publication dateFeb 28, 2017
Grant dateFeb 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present disclosure provides for devices, systems, and methods which optimize throughput of bonded connections over multiple variable bandwidth logical paths by adjusting a tunnel bandwidth weighting schema during a data transfer session in response to a change in bandwidth capabilities of one or more tunnels. By making such adjustments, embodiments of the present invention are able to optimize the bandwidth potential of multiple connections being used in a session, while minimizing the adverse consequences of reduced bandwidth issues which may occur during the data transfer session.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for improving network performance for a bonded VPN tunnel, wherein the bonded VPN tunnels comprise a plurality of virtual tunnels; the method comprising the steps of: (a) retrieving a first global sequence number (GSN) and a first per-tunnel sequence number (PTSN) from a first received encapsulating packet, wherein the first received encapsulating packet encapsulates a first encapsulated packet; (b) forwarding the first encapsulated packet to the corresponding destination device immediately when the first GSN equals to zero; (c) determining a next expected global sequence number (NE-GSN); (d) determining a next expected per tunnel sequence number (NE-PTSN); (e) dequeuing first queued encapsulating packets from a queue in sequence when the first PSTN is not equal to NE-PTSN, wherein, the first queued encapsulating packets have GSNs smaller than the first GSN; (f) updating the NE-PTSN; (g) forwarding the first encapsulated packet to a corresponding destination device when the first GSN is less than the NE-GSN; (h) forwarding the first encapsulated packet to the corresponding destination device when the first GSN equals to the NE-GSN and updating the NE-GSN; (i) dequeuing a head packet from the queue if the GSN of the head packet is equal to the updated NE-GSN, wherein the head packet is stored at the head of the queue; (j) repeating step (i) when the GSN of head packet equals to the updated NE-GSN; and (k) queuing the first received encapsulating packet in the queue when the first GSN is larger than the NE-GSN, wherein the position of first received encapsulating packet in the queue is according to the first GSN; wherein the first received encapsulating packet is received through a first virtual tunnel, wherein the first virtual tunnel is comprised in the plurality of virtual tunnels; wherein each of the virtual tunnels are assigned with a respective weight value based on bandwidth properties of the tunnels; wherein packet traffic is distributed among the plurality of virtual tunnels based, at least in part on a distribution weight value for the first virtual tunnel; and wherein the distribution weight value is based, at least in part, on a modified respective weight value for the first virtual tunnel. 2. According to the method of claim 1 , further comprising: when an encapsulating packet has been in the queue longer than a fixed amount of time: (l) updating the NE-GSN to the first global sequence number plus one; and (m) dequeuing second queued encapsulating packets from the queue in sequence, wherein the second queued encapsulating packets have GSNs smaller than the first GSN. 3. According to the method of claim 1 , wherein when performing dequeuing, an encapsulated packet is retrieved from the encapsulating packet and then forwarding to a corresponding destination device. 4. According to the method of claim 1 , wherein the first GSN is encapsulated in one thirty-two-bit field of the encapsulating packet. 5. According to the method of claim 1 , wherein the first PTSN is encapsulated in one thirty-two-bit field of the encapsulating packet. 6. According to the method of claim 1 , wherein the first GSN and the first PTSN are used for determining the quantity of dropped packets. 7. According to the method of claim 1 , wherein the step of determining the NE-PTSN is based on the first PTSN. 8. According to the method of claim 1 , wherein step (a) is performed after the first received encapsulating packet is decrypted. 9. According to the method of claim 1 , wherein a first tunnel identity is encapsulated in the first received encapsulating packet. 10. According to the method of claim 9 , wherein the first GSN, the first PTSN and the first tunnel identity are used for resequencing encapsulated packets belonging to a data transfer section. 11. A non-transitory computer readable medium comprising computer readable instructions that, when executed by a computer, cause the computer to perform operations comprising steps of: (a) retrieving a first global sequence number (GSN) and a first per-tunnel sequence number (PTSN) from a first received encapsulating packet, wherein the first received encapsulating packet encapsulates a first encapsulated packet; (b) forwarding the first encapsulated packet to the corresponding destination device immediately when the first GSN equals to zero; (c) determining a next expected global sequence number (NE-GSN); (d) determining a next expected per tunnel sequence number (NE-PTSN); (e) dequeuing first queued encapsulating packets from a queue in sequence when the first PSTN is not equal to NE-PTSN, wherein the first queued encapsulating packets have GSNs smaller than the first GSN; (f) updating the NE-PTSN; (g) forwarding the first encapsulated packet to a corresponding destination device when the first GSN is less than the NE-GSN; (h) forwarding the first encapsulated packet to the corresponding destination device when the first GSN equals to the NE-GSN and updating the NE-GSN; (i) dequeuing a head packet from the queue if the GSN of the head packet is equal to the updated NE-GSN, wherein the head packet is stored at the head of the queue; (j) repeating step (i) when the GSN of head packet equals to the updated NE-GSN; and (k) queuing the first received encapsulating packet in the queue when the first GSN is larger than the NE-GSN, wherein the position of first received encapsulating packet in the queue is according to the first GSN; wherein the first received encapsulating packet is received through a first virtual tunnel, wherein the first virtual tunnel is comprised in the plurality of virtual tunnels; wherein each of the virtual tunnels are assigned with a respective weight value based on bandwidth properties of the tunnels; wherein packet traffic is distributed among the plurality of virtual tunnels based, at least in part on a distribution weight value for the first virtual tunnel; and wherein the distribution weight value is based, at least in part, on a modified respective weight value for the first virtual tunnel. 12. The non-transitory computer readable medium of claim 11 , further comprising: when an encapsulating packet has been in the queue longer than a fixed amount of time: (l) updating the NE-GSN to the first global sequence number plus one; and (m) dequeuing second queued encapsulating packets from the queue in sequence, wherein the second queued encapsulating packets have GSNs smaller than the first GSN. 13. The non-transitory computer readable medium of claim 11 , wherein when performing dequeuing, an encapsulated packet is retrieved from the encapsulating packet and then forwarding to a corresponding destination device. 14. The non-transitory computer readable medium of claim 1 , wherein the first GSN is encapsulated in one thirty-two-bit field of the encapsulating packet. 15. The non-transitory computer readable medium of claim 11 , wherein the first PTSN is encapsulated in one thirty-two-bit field of the encapsulating packet. 16. The non-transitory computer readable medium of claim 11 , wherein the first GSN and the first PTSN are used for determining the quantity of dropped packets. 17. The non-transitory computer readable medium of claim 11 , wherein the step of determining the NE-PTSN is based on the first PTSN. 18. The non-transitory computer readable medium of claim 11 , wherein step (a) is performed after the first received encapsulating packet is decrypted. 19. The non-transitory computer readable mediu

Assignees

Inventors

Classifications

  • H04L45/74Primary

    Address processing for routing · CPC title

  • by attributing bandwidth to queues · CPC title

  • Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] · CPC title

  • Formats specially adapted for sequence numbers · CPC title

  • Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9584414B2 cover?
The present disclosure provides for devices, systems, and methods which optimize throughput of bonded connections over multiple variable bandwidth logical paths by adjusting a tunnel bandwidth weighting schema during a data transfer session in response to a change in bandwidth capabilities of one or more tunnels. By making such adjustments, embodiments of the present invention are able to optim…
Who is the assignee on this patent?
Sung Patrick Ho Wai, Ng Kam Chiu, Chan Ho Ming, and 1 more
What technology area does this patent fall under?
Primary CPC classification H04L45/74. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).