Systems and methods for implementation of jumbo frame over existing network stack
US-2016057070-A1 · Feb 25, 2016 · US
US10757013B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10757013-B2 |
| Application number | US-201816145831-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 28, 2018 |
| Priority date | Aug 3, 2016 |
| Publication date | Aug 25, 2020 |
| Grant date | Aug 25, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A computer system splits data to be transmitted into a plurality of reliable connections which are multiplexed through a smaller number of unacknowledged connections, such as connections that do not require acknowledgment and which may be VPN tunnels. A receiver then demultiplexes data received to obtain data flows over the reliable connections and transmits separate acknowledgements for each reliable connection. The computer system demultiplexes the acknowledgments and provides them to the corresponding reliable connections, which then retransmit any unacknowledged data. Delivery controllers executing on the computer system may be coupled to corresponding controllers executing on the receiver, with traffic between the delivery controllers (payload and acknowledgments) being multiplexed over one or more unacknowledged connections. In some embodiments, acknowledgments may be transmitted over a connection that is not multiplexed over the unacknowledged connections.
Opening claim text (preview).
The invention claimed is: 1. A method comprising: providing, by a computer system, one or more first network connections to a remote computing device; receiving, by the computer system, an instruction to transmit payload data to the remote computing device; and in response to the instruction— (i) dividing, by the computer system, the payload data into data portions; (ii) transmitting, by the computer system, the data portions over a second number of second network connections; (iii) multiplexing, by the computer system, the data portions transmitted over the second network connections through a first number of one or more first network connections, the first number being smaller than the second number; (iv) receiving, by the computer system, one or more acknowledgements corresponding to at least parts of one or more of the data portions, each acknowledgment of the one or more acknowledgments referencing a second network connection of the second network connections; (v) demultiplexing, by the computer system, each acknowledgment of the one or more acknowledgments onto the second network connection of the second network connections referenced by the each acknowledgment; (vi) determining, by the computer system, that acknowledgment was not received for at least part of at least one data portion of the data portions by at least one second network connection of the second network connections over which the at least one data portion was transmitted; and (vii) in response to determining that acknowledgment was not received for the at least one data portion, retransmitting the at least the part of the at least one data portion over the at least one second network connection. 2. The method of claim 1 , wherein the one or more first network connections are established according to a network protocol that doesn't send acknowledgements for at least some of the transmitted data. 3. The method of claim 1 , wherein the one or more first network connections are established according to at least one of Universal Datagram Protocol (UDP), Internet Protocol (IP) Encapsulating Security Payload (ESP), and Software IP Encryption Protocol (swIPe). 4. The method of claim 1 , wherein the second network connections are established according to at least one of Transport Control Protocol (TCP), Multipath Transport Control Protocol (Multipath TCP) and Stream Control Transmission Protocol (SCTP). 5. The method of claim 1 , wherein the computer system implements a plurality of delivery controllers, each controller of the plurality of delivery controllers coupled to a corresponding controller executing on the remote device and implementing one of the second network connections; wherein (vi) and (vii) are performed by at least one delivery controller of the delivery controllers, the at least one delivery controller implementing the at least one second network connection; and wherein the method further comprises, in response to (vi), reducing, by the at least one delivery controller, an amount of unacknowledged data that may be transmitted before transmitting additional data over the at least one second network connection. 6. The method of claim 1 , wherein the computer system comprises a client computing device and a virtual private network (VPN) server device in data communication with the client computing device; wherein the method comprises establishing the first network connections and then performing (iii), (iv), and (v) by the VPN server device; wherein the method comprises establishing the second network connections and then performing (i), (ii), (vi), and (vii) by the client computing device. 7. The method of claim 6 , wherein (ii) comprises transmitting a plurality of packets containing the data portions over the second network connections; wherein (iii) comprises encapsulating the plurality of packets inside one or more first data flows. 8. The method of claim 6 , wherein the client computing device and VPN server device implement at least one of Point-to-Point Tunneling Protocol (PPTP), Layer 2 Tunneling Protocol (L2TP), Internet Protocol Security (IPSec), Secure Socket Layer (SSL) Protocol, Transport Layer Security (TLS) protocol, and OpenVPN protocol. 9. The method of claim 1 , wherein the computer system implements a proxy, the proxy establishing the second network connections and then performing (i), (ii), (vi) and (vii). 10. The method of claim 1 , further comprising encrypting the data portions transmitted over the one or more first network connections after (iii). 11. The method of claim 1 , wherein the computer system comprises a plurality of different computing devices in a first local network, the remote computing device being located in a second local network remote from the first local network. 12. The method of claim 1 , wherein the computer system comprises a single computing device. 13. The method of claim 1 , wherein (iv) comprises receiving, by the computer system, the one or more acknowledgements for the at least the parts of the data portions in one or more third network connections that are not encapsulated in the one or more first network connections. 14. The method of claim 1 , wherein the first number is one. 15. A computer system comprising one or more computing devices, the one or more computing devices each comprising one or more processing devices and one or more memory devices operably coupled to the one or more processing devices, the one or more memory devices of the one or more computing devices storing executable code effective to cause the one or more processing devices of the one or more computing devices to establish a first number of one or more first network connections terminating at a remote computing device; establish a second number of second network connections, the first number being smaller than the second number; transmit payload data to the remote computing device by— (i) dividing the payload data into data portions; (ii) transmitting the data portions over different connections of the second network connections; and (iii) multiplexing the data portions transmitted over the second network connections through the one or more first network connections; and verifying transmission of payload data to the remote computing device by— (iv) receiving acknowledgments over the first network connections; (v) demultiplexing each acknowledgment onto a network connection of the second network connections referenced by the each acknowledgment; and (vi) if acknowledgment of receipt of at least a part of one or more of the data portions is not received on one or more second network connections of the one or more second network connections, retransmitting the at least the part of the one or more of the data portions over the one or more second network connections. 16. The computer system of claim 15 , wherein the executable code is further effective to cause the one or more processing devices of the one or more computing devices to multiplex the data portions transmitted over the second network connections through the one or more first network connections without regard to any acknowledgment of traffic traversing the one or more first network connections. 17. The computer system of claim 15 , wherein the executable code is further effective to cause the one or more processing devices to implement the one or more first network connections according to at least one of Universal Datagram Protocol (UDP), Internet Protocol (IP) Encapsulating Security Payload (ESP), and Software IP Encryption Protocol (swIPe). 18. The computer syste
Multipath · CPC title
Buffer management · CPC title
Encapsulation of packets · CPC title
Relays · 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
Related publications grouped by family.
Answers are generated from the same data shown on this page.