IP Library Granted Patent US 8,352,636
Granted Patent B2
US 8,352,636 · App. 13/242,204 · Granted Jan 8, 2013

Transmitting packets from device in network communications with other device utilizing multiple virtual network connections

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 8,352,636
App. No.
13/242,204
Granted
Jan 8, 2013
Kind
B2
Abstract

A method includes detecting, at a device, a request for a network connection from an application running on the device; spawning first and second virtual machines for network connections that virtualize network capabilities of the device such that first and second virtual network connections are provided; using the first virtual network connection, establishing a first connection with another device over a first path; using the second virtual connection, establishing a second connection with the other device over a second path; determining that the second path represents a trusted path; determining that a first packet does not need to be routed via a trusted connection; transmitting the first packet using the first virtual network connection for communication via the first path; determining that a second packet needs to be routed via a trusted connection; and transmitting the second packet using the second virtual network connection for communication via the second path.

Claims (33)

1. 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 device;

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

(c) spawning, at the first device, a second virtual machine for a network connection that virtualizes network capabilities of the first device such that a second virtual network connection is provided;

(d) spawning, at a second device, a third virtual machine for a network connection that virtualizes network capabilities of the second device such that a third virtual network connection is provided;

(e) spawning, at the second device, a fourth virtual machine for a network connection that virtualizes network capabilities of the second device such that a fourth virtual network connection is provided;

(f) spawning, at a third device, a fifth virtual machine for a network connection that virtualizes network capabilities of the third device such that a fifth virtual network connection is provided;

(g) establishing a first connection between the first device, via the first virtual network connection, and the second device, via the third virtual network connection, over a first network path;

(h) establishing a second connection between the first device, via the second virtual network connection, and the second device, via the fourth virtual network connection, over a second network path, the second network path including the third device;

(i) determining that the second network path represents a trusted path;

(j) determining that a first packet does not need to be routed via a trusted connection;

(k) transmitting the first packet from the first device using the first virtual network connection for communication via the first network path;

(l) determining that a second packet needs to be routed via a trusted connection;

(m) transmitting the second packet from the first device using the second virtual network connection for communication via the second network path;

(n) receiving, at the third device using the fifth virtual network connection, the second packet;

(o) transmitting, using the fifth virtual network connection, the second packet onward along the second network path; and

(p) receiving, at the second device using the fourth virtual network connection, the second packet;

(q) wherein the first network path and the second network path are different.

2. The method of claim 1 , wherein the step of transmitting the first packet using the first virtual network connection for communication via the first network path is performed at least partially in response to the step of determining that the first packet does not need to be routed via a trusted connection.

3. The method of claim 1 , wherein the step of transmitting the second packet using the second virtual network connection for communication via the second network path is performed at least partially in response to the step of determining that the second packet needs to be routed via a trusted connection.

4. The method of claim 1 , wherein the first virtual machine is spawned in response to the request for a network connection from the application running on the first device.

5. The method of claim 1 , wherein the second virtual machine is spawned in response to the request for a network connection from the application running on the first device.

6. The method of claim 1 , wherein said step (g) comprises selecting a first routing protocol from among a plurality of available routing protocols.

7. The method of claim 6 , wherein the plurality of available routing protocols includes the Interior Gateway Routing Protocol (IGRP), the Enhanced Interior Gateway Routing Protocol (EIGRP), the Border Gateway Protocol (BGP), and the Constrained Shortest Path First (CSPF) protocol.

8. The method of claim 6 , wherein said step (k) comprises transmitting the first packet using the first virtual machine with the selected first routing protocol.

9. The method of claim 1 , wherein said step (g) comprises selecting an initial node of the first network path.

10. The method of claim 9 , wherein the selection of an initial node is based at least partially on network information stored at the device.

11. The method of claim 10 , wherein the method further includes a step of querying one or more nodes of a network for network information.

12. The method of claim 11 , wherein the method further includes receiving the network information from the one or more nodes and generating a routing table based on the network information.

13. The method of claim 1 , wherein the application is a computer game.

14. The method of claim 1 , wherein the first device comprises a computer.

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

16. The method of claim 1 , wherein the first device is a mobile phone.

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 →