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

Inventor: Robert W. Twitchell, Jr. (Alpharetta, GA)
Assignee: DISPERSIVE NETWORKS, INC.
H04L45/586H04L12/56H04L47/17H04L51/06H04L67/06H04L69/22H04L69/28H04L69/32H04L69/14H04L69/18
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.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 10/333,972 PREVIOUSLY RECORDED AT REEL: 56729 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 14, 2024
From: DISPERSIVE NETWORKS, INC.
To: ASSET RECOVERY ASSOCIATES, LLC
Reel/Frame 066797/0207 →
CORRECTIVE ASSIGNMENT TO CORRECT THE IN PROPERTY NUMBERS, PATENT NUMBER 10333972 IS INCORRECT PREVIOUSLY RECORDED AT REEL: 056422 FRAME: 0951. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 9, 2023
From: DISPERSIVE NETWORKS, INC.
To: DISPERSIVE HOLDINGS, INC.
Reel/Frame 066946/0776 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2021
From: DISPERSIVE NETWORKS, INC.
To: ASSET RECOVERY ASSOCIATES, LLC
Reel/Frame 056729/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2021
From: DISPERSIVE NETWORKS, INC.
To: ASSET RECOVERY ASSOCIATES, LLC
Reel/Frame 056729/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2021
From: DISPERSIVE NETWORKS, INC.
To: DISPERSIVE HOLDINGS, INC.
Reel/Frame 056422/0951 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2021
From: DISPERSIVE NETWORKS, INC.
To: DISPERSIVE HOLDINGS, INC.
Reel/Frame 056333/0687 →
Continuity (7)
Continuation 15162546 · May 23, 2016
Continuation 13242173 · Sep 23, 2011
Continuation 12499075 · Jul 7, 2009
Continuation In Part 12253926 · Oct 17, 2008
Provisional Application 61133935 · Jul 7, 2008
Provisional Application 60999603 · Oct 17, 2007
Related Publication 20170288901A1 · Oct 5, 2017
Cited By (7)
US 12,335,160 US 12,432,042 US 12,519,631 US 12,519,755 US 12,567,966 US 12,615,284 US 12,701,101