IP Library Granted Patent US 9,350,794
Granted Patent B2
US 9,350,794 · App. 13/242,173 · Granted May 24, 2016

Transmitting packet from device after timeout in network communications utilizing virtual network connection

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 9,350,794
App. No.
13/242,173
Granted
May 24, 2016
Kind
B2
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 (47)

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) spawning a virtual machine that virtualizes network capabilities of the device such that a virtual network connection is provided;

(c) determining application-specific information associated with the application;

(d) using the application-specific information, selecting, at the device, a first routing protocol from among a plurality of routing protocols for communicating data from the application using the virtual network connection;

(e) using the virtual network connection, transmitting a packet to a first node using the first routing protocol for communication to a destination device;

(f) determining an average response time of the destination device;

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

(h) upon expiration of the timer, transmitting the packet to a second node using a second routing protocol for communication to the destination device;

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

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

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 protocol is different from the first routing protocol, and the second node is different from the first node.

5. The method of claim 1 , wherein said step (d) comprises transmitting the packet to the second node using the virtual network connection with the second routing protocol.

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

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

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

9. The method of claim 1 , wherein the device includes a plurality of processing cores.

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

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

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

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

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

(b) spawning a first virtual machine that virtualizes network capabilities of the device such that a first virtual network connection is provided;

(c) determining application-specific information associated with the application;

(d) using the application-specific information, selecting, at the device, a first routing protocol from among a plurality of routing protocols for communicating data from the application using the first virtual network connection;

(e) using the first virtual network connection, transmitting a packet to a first node using the first routing protocol for communication to a destination device;

(f) determining an average response time of the destination device;

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

(h) upon expiration of the timer, spawning a second virtual machine that virtualizes network capabilities of the device such that a second virtual network connection is provided; and

(i) using the second virtual network connection, transmitting a packet to a second node using a second routing protocol for communication to the destination device;

(j) wherein the application runs on the device outside of the first and second virtual machines.

14. The method of claim 13 , wherein the second routing protocol is different from the first routing protocol, and wherein the second node is different from the first node.

15. The method of claim 13 , wherein the first virtual machine encapsulates a single hardware network interface of the device.

16. A device comprising:

(a) a processor;

(b) one or more network adapters providing network capabilities;

(c) one or more computer readable media containing computer executable instructions configured to:

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

(ii) spawn a first virtual machine that virtualizes network capabilities of the one or more network adapters of the device such that a first virtual network connection is provided,

(iii) determine application-specific information associated with the application,

(iv) using the application-specific information, select, at the device, a first routing protocol from among a plurality of routing protocols for communicating data from the application using the first virtual network connection,

(v) using the first virtual network connection, transmit a packet to a first node using a first routing protocol for communication to a destination device,

(vi) determine an average response time of the destination device,

(vii) set a timer to have a value corresponding to an amount of time greater than the determined average response time of the destination device, and

(viii) upon expiration of the timer, transmit the packet to a second, different node using the first virtual network connection with a second routing protocol for communication to the destination device,

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

Assignments (7)
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 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 →
CHANGE OF NAME Recorded Jan 13, 2016
From: DISPERSIVE NETWORKS INC.
To: DISPERSIVE NETWORKS, INC.
Reel/Frame 037515/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2015
From: TWITCHELL, ROBERT W., JR
To: DISPERSIVE NETWORKS INC.
Reel/Frame 036514/0114 →