NETWORK COMMUNICATIONS OF APPLICATIONS RUNNING ON DEVICES UTILIZING VIRTUAL NETWORK CONNECTIONS WITH ASYMMETRICAL NETWORK PATHS
First Claim
1. A method of providing network communications, comprising the steps of:
- (a) at a first device,(i) receiving, via a virtual network connection of the first device, a data packet communicated from a second device using a first routing protocol over a first network path comprising a first plurality of devices, the data packet including a header and a payload, the payload including data appended thereto by one or more devices of the first plurality of devices, and(ii) determining whether the first network path satisfies one or more requirements of an application running on the first device, the determination being based at least in part on information from the data packet received by the first device; and
(b) at the second device,(i) receiving, via a virtual network connection of the second device, a data packet communicated from the first device using a second routing protocol over a second network path comprising a second plurality of devices, the data packet including a header and a payload, the payload including data appended thereto by one or more devices of the second plurality of devices, and(ii) determining whether the second network path satisfies one or more requirements of an application running on the second device, the determination being based at least in part on information from the data packet received by the second device.
7 Assignments
0 Petitions
Accused Products
Abstract
A method includes receiving, at a first device via a virtual network connection, a packet communicated from a second device over a first path, the packet including data appended thereto by one or more devices along the first path, and determining whether the first path satisfies one or more requirements of an application running on the first device, the determination being based at least in part on information from the packet received by the first device; and receiving, at the second device via a virtual network connection, a packet communicated from the first device over a second path, the packet including data appended thereto by one or more along the second path, and determining whether the second path satisfies one or more requirements of an application running on the second device, the determination being based at least in part on information from the packet received by the second device.
-
Citations
20 Claims
-
1. A method of providing network communications, comprising the steps of:
-
(a) at a first device, (i) receiving, via a virtual network connection of the first device, a data packet communicated from a second device using a first routing protocol over a first network path comprising a first plurality of devices, the data packet including a header and a payload, the payload including data appended thereto by one or more devices of the first plurality of devices, and (ii) determining whether the first network path satisfies one or more requirements of an application running on the first device, the determination being based at least in part on information from the data packet received by the first device; and (b) at the second device, (i) receiving, via a virtual network connection of the second device, a data packet communicated from the first device using a second routing protocol over a second network path comprising a second plurality of devices, the data packet including a header and a payload, the payload including data appended thereto by one or more devices of the second plurality of devices, and (ii) determining whether the second network path satisfies one or more requirements of an application running on the second device, the determination being based at least in part on information from the data packet received by the second device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of facilitating network communications comprising:
-
(a) detecting, at a first device, a request for a network connection from an application running on the first device; (b) spawning a first virtual network connection that virtualizes network capabilities of the first device; (c) selecting a first routing protocol for the first virtual network connection from among a plurality of available routing protocols for communicating data using the virtualized network capabilities of the first virtual network connection; (d) detecting, at a second device, a request for a network connection from an application running on the second device; (e) spawning a second virtual machine for a second network connection that virtualizes network capabilities of the second device; (f) selecting a second routing protocol for the second network connection from among a plurality of available routing protocols for communicating data using the virtualized network capabilities of the second virtual machine; (g) using the virtualized network capabilities of the first virtual network connection, establishing a first connection with the second device over a first network path using the first routing protocol; (h) using the virtualized network capabilities of the second virtual network connection, establishing a second connection with the first device over a second network path using the second routing protocol; (i) determining, at the first device, whether the second network path satisfies one or more requirements of the application running on the first device; and (j) determining, at the second device, whether the first network path satisfies one or more requirements of the application running on the second device. - View Dependent Claims (17, 18, 19)
-
-
20. A system comprising:
-
(a) a first device, the first device comprising; (i) a processor, and (ii) one or more network adapters providing network capabilities; and (b) a second device, the second device comprising; (i) a processor, and (ii) one or more network adapters providing network capabilities; (c) wherein the first device further includes one or more computer readable media containing computer executable instructions configured to; (i) receive, at the first device via a virtual network connection that corresponds to a network adapter of the first device, a second packet communicated from the second device over a second network path comprising a second plurality of other devices, the second packet including a header and a payload, the payload including data appended thereto by one or more devices of the second plurality of devices, and (ii) determine, at the first device, whether the second network path satisfies one or more requirements of an application running on the first device, the determination being based at least in part on information from the second packet; and (c) wherein the second device further includes one or more computer readable media containing computer executable instructions configured to; (i) receive, at a second device via a virtual network connection that corresponds to a network adapter of the second device, a first packet communicated from a first device over a first network path comprising a first plurality of other devices, the first packet including a header and a payload, the payload including data appended thereto by one or more devices of the first plurality of devices, and (ii) determine, at the second device, whether the first network path satisfies one or more requirements of an application running on the second device, the determination being based at least in part on information from the first packet.
-
Specification