Patent ID: 9584414
Date: 2017-02-28
CPC Classifications: H04L

Claim:
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.