9491098

Transparent Network Multipath Utilization Through Encapsulation

PublishedNovember 8, 2016
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A system, comprising: a plurality of computing devices configured to: receive, at an encapsulation intermediary, a plurality of baseline packets of a network transmission between a source application component executing at a particular host and a destination application component executing at a different host, wherein the different host is linked to the particular host by a plurality of physical network paths, wherein each baseline packet of the plurality of baseline packets comprises a respective body component and a respective set of network protocol headers generated at the particular host; determine whether to implement path balancing for the network transmission based at least in part on at least one of an expected amount of data to be transferred, or an indication of a number of physical network paths linking the particular host and the different host; and responsive to a determination to implement path balancing: determine, by the encapsulation intermediary comprising a particular software module executing at the particular host, in accordance with a path-balancing policy, (a) a particular header field value to be included in a particular encapsulation packet corresponding to a particular baseline packet of the plurality of baseline packets, and (b) a different header field value to be included in a different encapsulation packet corresponding to a different baseline packet of the plurality of baseline packets; transmit the particular and different encapsulation packets to an unpacking intermediary associated with the destination application component via respective physical network paths of the plurality of physical network paths, wherein a particular physical network path used for the particular encapsulation packet comprises a particular link selected based at least in part on the particular header field value, and wherein a different physical network path used for the different encapsulation packet comprises a different link selected based at least in part on the different header field value; extract, from the particular encapsulation packet and the different encapsulation packet respectively, at the unpacking intermediary, contents of the particular baseline packet and the different baseline packet; and deliver respective body components of the particular baseline packet and the different baseline packet to the destination application component.

2

2. The system as recited in claim 1 , wherein the particular header field value comprises a particular value for a source port number associated with a particular networking protocol, and the different header field value comprises a different value for the source port number associated with the particular networking protocol.

3

3. The system as recited in claim 1 , wherein the particular encapsulation packet comprises a particular sequence number added by the encapsulation intermediary, wherein the different encapsulation packet comprises a different sequence number added by the encapsulation intermediary, and wherein the unpacking intermediary is configured to utilize the particular and different sequence numbers to determine an order in which the particular baseline packet and the different baseline packet are delivered to a networking stack associated with the destination application component.

4

4. The system as recited in claim 1 , wherein the encapsulation intermediary is instantiated at the first host and the unpacking intermediary comprises a different software module instantiated at the different host.

5

5. The system as recited in claim 1 , wherein the plurality of computing devices are further configured to: determine, in accordance with the path balancing policy, that path balancing is to be implemented for the network transmission further based at least in part on one or more of: (a) an identification of a particular client on whose behalf the source application component is executed, (b) a budget limit associated with the network transmission, or (c) a client request initiated by the particular client.

6

6. A method, comprising: responsive to a client request to implement path balancing, performing, by a plurality of computing devices: generating a particular encapsulation packet corresponding to a particular baseline packet of a network transmission between a source and a destination linked by a plurality of physical network paths, wherein the client request to implement path balancing is received from a client on whose behalf the source is operated, wherein the particular encapsulation packet comprises, in addition to at least a portion of contents of the particular baseline packet, a particular set of one or more values determined in accordance with a path-balancing policy; generating a different encapsulation packet corresponding to a different baseline packet of the network transmission, wherein the different encapsulation packet comprises, in addition to at least a portion of contents of the different baseline packet, a different set of one or more values determined in accordance with the path-balancing policy; transmitting the particular encapsulation packet via a particular network path of the plurality of physical network paths, comprising a particular link selected based at least in part on the particular set of one or more values; transmitting the different encapsulation packet via a different network path of the plurality of physical network paths, comprising a different link selected based at least in part on the different set of one or more values; extracting the contents of the particular baseline packet and the different baseline packet from the particular encapsulation packet and the different encapsulation packet respectively; and delivering the particular baseline packet and the different baseline packet to the destination.

7

7. The method as recited in claim 6 , wherein the particular set of one or more values comprises a particular source port number associated with a particular networking protocol, and the different set of one or more values comprises a different source port number associated with the particular networking protocol.

8

8. The method as recited in claim 6 , wherein the particular set of one or more values comprises a particular value obtained via random selection, and the different set of one or more values comprises a different value obtained via random selection.

9

9. The method as recited in claim 6 , wherein the particular set of one or more values comprises a particular value for a UDP (User Datagram Protocol) header field, and the different set of one or more values comprises a different value for the UDP header field.

10

10. The method as recited in claim 6 , further comprising performing, by the plurality of computing devices: including a particular sequence number within the particular encapsulation packet, and a different sequence number within the different encapsulation packet; and determining an order in which the particular baseline packet and the different baseline packet are to be delivered to the destination based at least in part on the particular and different sequence numbers.

11

11. The method as recited in claim 10 , further comprising: determining the particular sequence number based at least in part on a header field value of the particular baseline packet.

12

12. The method as recited in claim 6 , wherein the source comprises an application component executing at a particular host, wherein said generating the particular encapsulation packet is performed at the particular host.

13

13. The method as recited in claim 12 , wherein said generating the particular encapsulation packet is performed at a component of a virtualization management software stack associated with the particular host.

14

14. The method as recited in claim 6 , further comprising performing, by the plurality of computing devices: determining, in accordance with the path balancing policy, that path balancing is to be implemented for the network transmission further based at least in part on one or more of: (a) an identification of a particular client on whose behalf the source application component is executed, (b) an indication of a number of physical network paths linking the particular host and the different host, (c) a budget limit associated with the network transmission, or (d) an expected amount of data to be transferred.

15

15. The method as recited in claim 6 , further comprising performing, by the plurality of computing devices: partitioning, by an encapsulation intermediary associated with the source, contents of a particular baseline packet among a plurality of encapsulation packets; and recombining, by an unpacking intermediary associated with the destination, contents of the plurality of encapsulation packets for delivery to the destination.

16

16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors: determine whether to implement path balancing based at least on a number of physical network paths linking a source host and a destination host, and responsive to a determination to implement path balancing: generate a particular encapsulation packet corresponding to a particular baseline packet directed from the source host to the destination host, wherein the particular encapsulation packet comprises, in addition to at least a portion of contents of the particular baseline packet, a particular set of one or more values determined in accordance with a path-balancing policy; generate a different encapsulation packet corresponding to a different baseline packet directed from the source host to the destination host, wherein the different encapsulation packet comprises, in addition to at least a portion of contents of the different baseline packet, a different set of one or more values determined in accordance with the path-balancing policy; and transfer the particular encapsulation packet and the different encapsulation packet to a routing component configured to identify, for transmission to the destination host of the particular encapsulation packet and the different encapsulation packet respectively, a particular network path of the plurality of physical network paths, and a different network path of the plurality of physical network paths, wherein the particular network path is selected based at least in part on the particular set of one or more values, and wherein the different network path is selected based at least in part on the different set of one or more values.

17

17. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the particular set of one or more values comprises a particular source port number associated with a particular networking protocol, and the different set of one or more values comprises a different source port number associated with the particular networking protocol.

18

18. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the instructions that when executed on one or more processors: include a particular sequence number within the particular encapsulation packet, and a different sequence number within the different encapsulation packet, indicative of an order in which the particular baseline packet and the different baseline packet are to be delivered to a target networking stack.

19

19. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the instructions when executed on one or more processors: receive another encapsulation packet; extract another baseline packet from the received encapsulation packet; and deliver the other baseline packet to a target networking stack.

20

20. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the plurality of physical network paths are arranged in one of: a fat tree topology, a VL2 (Virtual Layer 2) topology, a BCube topology, or a different Clos topology.

Patent Metadata

Filing Date

Unknown

Publication Date

November 8, 2016

Inventors

MATTHEW SHAWN WILSON
ANDREW BRUCE DICKINSON
JUSTIN OLIVER PIETSCH
AARON C. THOMPSON
FREDERICK DAVID SINN
ALAN MICHAEL JUDGE
JAGWINDER SINGH BRAR

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “TRANSPARENT NETWORK MULTIPATH UTILIZATION THROUGH ENCAPSULATION” (9491098). https://patentable.app/patents/9491098

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

TRANSPARENT NETWORK MULTIPATH UTILIZATION THROUGH ENCAPSULATION — MATTHEW SHAWN WILSON | Patentable