IP Library Granted Patent US 10,469,375
Granted Patent B2
US 10,469,375 · App. 15/494,849 · Granted Nov 5, 2019

Providing network communications using virtualization based on information appended to packet

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,469,375
App. No.
15/494,849
Filed
Apr 24, 2017
Granted
Nov 5, 2019
Kind
B2
Examiner
JAIN, RAJ K
Art Unit
2411
USPC
370/200
Abstract

A method of providing network communications includes spawning a virtual machine that virtualizes network capabilities of the device such that a virtual network connection is provided; using the virtual network connection, transmitting a packet to a first node using a first routing protocol for communication to a destination device; setting a timer, the timer having a value corresponding to an amount of time greater than an average response time of the destination device; and, upon expiration of the timer, transmitting the packet to a second node using a second routing protocol for communication to the destination device.

Claims (41)

1. A method of providing network communications, comprising:

(a) detecting, at a device, a request for a network connection from an application running on the device;

(b) virtualizing network capabilities of the device such that a virtual network connection is provided;

(c) determining, at the device based on application-specific information associated with the application, a first routing parameter for communicating data from the application using the virtual network connection;

(d) appending, at the device, the determined routing parameter to a packet having a payload containing data from the application;

(e) using the virtual network connection, transmitting the packet to a first node for communication to a destination device along a first path determined at least in part based on the first routing parameter;

(f) setting a timer to have a value corresponding to an amount of time greater than a determined average response time of the destination device; and

(g) upon expiration of the timer, appending, at the device, a second routing parameter to a new copy of the packet having a payload containing the same data from the application, and transmitting the copy of the packet to a second node for communication to the destination device along a second path determined at least in part based on the second routing parameter;

(i) wherein the application runs on the device outside of the virtual machine.

2. The method of claim 1 , wherein the second routing parameter is different from the first routing parameter.

3. The method of claim 1 , wherein the second node is different from the first node.

4. The method of claim 1 , wherein the second routing parameter is different from the first routing parameter, and the second node is different from the first node.

5. The method of claim 1 , wherein a virtual machine is created by a monitor in response to a controller that is configured to intercept messages sent to a network adapter.

6. The method of claim 5 , wherein the virtual machine encapsulates a single hardware network interface of the device.

7. The method of claim 5 , wherein the virtual machine encapsulates a plurality of hardware network interfaces of the device.

8. The method of claim 1 , wherein the device includes a plurality of processing Cores.

9. The method of claim 1 , wherein the application is a video game.

10. The method of claim 1 , wherein the device is a personal computer.

11. The method of claim 1 , wherein the device is a handheld mobile device.

12. A method of providing network communications, comprising the steps of:

(a) detecting, at a first device, a request for a network connection from an application running on the first device;

(b) providing, at the first device in response to the request for a network connection, a first virtual network connection by virtualizing network capabilities of the first device;

(c) determining, at the first device based on application-specific information associated with the application, a routing parameter for communicating data from the application using the first virtual network connection;

(d) appending, at the device, the determined routing parameter to a packet having a payload containing data from the application;

(e) determining, at the first device, a first intermediate node to transmit the packet to, the determination being based on

(i) the determined routing parameter, and

(ii) a routing table maintained at the first device;

(f) transmitting, from the first device using the first virtual network connection, the packet to a second device corresponding to the first intermediate node for communication to a destination node, the packet including

(i) an indication of the destination node, and

(ii) the appended routing parameter;

(g) providing, at the second device, a virtual network connection by virtualizing network capabilities of the second device;

(h) receiving, at the second device via the second virtual network connection, the packet transmitted by the first device;

(i) determining, at the second device, a third device to which to transmit the packet, said determination being informed by the routing parameter contained in the packet; and

(j) transmitting the packet to the third device using the second virtual network connection;

(k) wherein the application runs outside of the first virtual machine.

13. The method of claim 12 , wherein the second device comprises a computer.

14. The method of claim 13 , wherein the computer includes a plurality of processing cores.

15. The method of claim 12 , wherein the second device is a mobile phone.

16. The method of claim 12 , wherein, in said step of determining a third device to transmit the packet to, the determination is further informed by network information stored at the second device.

17. The method of claim 12 , further comprising a step of querying, by the first device, the network for network information.

18. The method of claim 17 , wherein the network information comprises backbone information.