IP Library Granted Patent US 8,429,226
Granted Patent B2
US 8,429,226 · App. 13/242,373 · Granted Apr 23, 2013

Facilitating network communications with control server, hosting server, and devices utilizing 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,429,226
App. No.
13/242,373
Granted
Apr 23, 2013
Kind
B2
Abstract

A method includes communicating network connection information from a control server to each of a first subset of devices for enabling an open network connection between each of the devices of the first subset; spawning, by each of a plurality of devices, a plurality of virtual machines for network connections that virtualize network capabilities of the device; establishing, by each of the devices, a respective open network connection with each of the other devices using a respective spawned virtual machine and network connection information received from a control server; receiving, by each device, data from a hosting server and data from one or more of the open network connections that are established with that device; processing, by each device, the received data; and providing a user experience, by each device, based on the processed data.

Claims (41)

1. A method of facilitating network communications, comprising the steps of:

(a) communicating network connection information from a control server to each of a first subset of devices for enabling an open network connection between each of the devices of the first subset;

(b) spawning, by each device of the first subset, a plurality of virtual machines for network connections that virtualize network capabilities of the device such that a plurality of virtual network connections are provided at each device;

(c) establishing, by each device of the first subset, a respective open network connection with each of the other devices of the first subset, over a respective network path, using a respective spawned virtual machine and network connection information received from the control server;

(d) communicating, by each device of the first subset to the control server, a status of each of the open network connections that are established with such device;

(e) communicating, by one or more device of the first subset, via each of the open network connections that are established with other devices of the first subset, data to the other devices of the first subset, the method involving, for each communication via an open network connection, transmitting the data in a plurality of packets from a respective originating device of the first subset to a respective destination device of the first subset by, for each packet,

(i) transmitting, from the respective originating device using the respective open network connection established using the respective spawned virtual machine of the respective originating device, the packet for communication to the respective destination device,

(ii) receiving, at a virtual machine that runs on a respective intermediate device and that virtualizes network capabilities of the respective intermediate device such that a virtual network connection is provided, the packet,

(iii) transmitting, from the respective intermediate device using the virtual network connection of the intermediate device, the packet for communication to the respective destination device, and

(iv) receiving, using the respective open network connection established using the respective spawned virtual machine of the respective destination device, the packet,

whereby each such one or more device of the first subset functions in part as a server by serving data to other devices of the first subset;

(f) receiving, by each device of the first subset, data from a hosting server;

(g) processing, by each device of the first subset, the received data from the hosting server and received data communicated over the one or more of the open network connections; and

(h) providing a user experience, by each device of the first subset, based on the processed data received by the device from the hosting server and the processed data received by the device from the one or more of the open network connections.

2. The method of claim 1 , wherein each device of the first subset comprises an end-user device.

3. The method of claim 1 , wherein at least one of the devices of the first subset is a computer.

4. The method of claim 3 , wherein the computer includes multiple processing cores.

5. The method of claim 1 , wherein some of the devices of the first subset are different types of devices.

6. The method of claim 1 , wherein the network connection information comprises one or more IP addresses.

7. The method of claim 1 , wherein the same network connection information is communicated to each device.

8. The method of claim 1 , wherein different network connection information is communicated to each device.

9. The method of claim 1 , wherein the network connection information communicated to each device is not identical, but may include overlap.

10. The method of claim 1 , wherein said step of establishing, by each device of the first subset, a respective open network connection with each of the other devices of the first subset using a respective spawned virtual machine and network connection information received from the control server includes selecting, by each device, a routing protocol from among a plurality of available routing protocols for communicating data.

11. The method of claim 10 , 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.

12. The method of claim 1 , wherein said step of establishing, by each device of the first subset, a respective open network connection with each of the other devices of the first subset using a respective spawned virtual machine and network connection information received from the control server includes selecting, by each device, an initial node to which to transmit.

13. The method of claim 12 , wherein said step of selecting, by each device, an initial node comprises selecting, by each device, an initial node based at least partially on network information stored at that device.

14. The method of claim 13 , wherein the method further includes a step of querying, by at least one of the devices of the first subset, one or more nodes of a network for network information.

15. The method of claim 1 , wherein, at each device, the virtual machine is spawned in response to a request for a network connection from an application running on that device.

16. The method of claim 1 , wherein the user experience is a gaming experience.

17. A method comprising the steps of:

(a) spawning, by each device of a first subset of devices, a plurality of virtual machines for network connections that virtualize network capabilities of the device such that a plurality of virtual network connections are provided at each device;

(b) establishing, by each device of the first subset, a respective open network connection with other devices of the first subset, over a respective network path, using a respective spawned virtual machine and network connection information received from the control server;

(c) communicating, by one or more devices, of the first subset, via each of the open network connections that are established with other devices of the first subset, data to the other devices of the first subset, the method involving, for each communication via an open network connection, transmitting the data in a plurality of packets from a respective originating device of the first subset to a respective destination device of the first subset by, for each packet,

(i) transmitting, from the respective originating device using the respective open network connection established using the respective spawned virtual machine of the respective originating device, the packet for communication to the respective destination device,

(ii) receiving, at a virtual machine that runs on a respective intermediate device and that virtualizes network capabilities of the respective intermediate device such that a virtual network connection is provided, the packet,

(iii) transmitting, from the respective intermediate device using the virtual network connection of the intermediate device, the packet for communication to the respective destination device, and

(iv) receiving, using the respective open network connection established using the respective spawned virtual machine of the respective destination device, the packet,

whereby each such one or more devices of the first subset functions in part as a server by serving data to other devices of the first subset;

receiving, by each device of the first subset, data from a hosting server;

(g) processing, by each device of the first subset, the received data from the hosting server and received data communicated over the one or more of the open network connections; and

(h) providing a user experience, by each device of the first subset, based on the processed data received by the device from the hosting server and the processed data received by the device from the one or more of the open network connections.

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 →