Seamless host migration based on NAT type
First Claim
Patent Images
1. A method for maintaining network data distribution, the method comprising:
- establishing a network session by connecting a host to each of a plurality of clients over a network;
negotiating backup viability of a first client from among the plurality of clients, wherein negotiating backup viability includes;
identifying a level of bandwidth necessary to manage all data exchanged between all of the clients in the network session,receiving data identifying a level of bandwidth available to the first client,confirming that the level of bandwidth available to the first client is at least equal to the level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, andreceiving data confirming that the first client is capable of establishing a connection with all other clients among the plurality of clients;
receiving host information by the first client from the host after the negotiation confirms that the first client exhibits backup viability, wherein based on at least the host information the first client establishes a connection as a backup host with a second client from among the plurality of clients,polling the plurality of clients to determine connectivity between the host and each of the client of hosts, wherein interrupted communications are indicated by result of the polling, andreceiving data at the first client from the second client of the plurality of clients when communication between the host and the second client is interrupted, wherein the interrupted communication is identified by a lack of acknowledgement from the host to the second client within an amount of time after the second client transmits data to the host.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods of the present invention for maintaining network data distribution are provided. Network data may be distributed in such as manner as to allow a network session to weather interrupted communications between host and clients without significant loss of data. Embodiments of the present invention provide for one or more clients to serve as backup host(s) for the network session, such determinations including the use of NAT profile information. When the other clients transmit data to the host, they may also transmit the data to one or more backup hosts if there are any indications of interrupted communication.
-
Citations
16 Claims
-
1. A method for maintaining network data distribution, the method comprising:
-
establishing a network session by connecting a host to each of a plurality of clients over a network; negotiating backup viability of a first client from among the plurality of clients, wherein negotiating backup viability includes; identifying a level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, receiving data identifying a level of bandwidth available to the first client, confirming that the level of bandwidth available to the first client is at least equal to the level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, and receiving data confirming that the first client is capable of establishing a connection with all other clients among the plurality of clients; receiving host information by the first client from the host after the negotiation confirms that the first client exhibits backup viability, wherein based on at least the host information the first client establishes a connection as a backup host with a second client from among the plurality of clients, polling the plurality of clients to determine connectivity between the host and each of the client of hosts, wherein interrupted communications are indicated by result of the polling, and receiving data at the first client from the second client of the plurality of clients when communication between the host and the second client is interrupted, wherein the interrupted communication is identified by a lack of acknowledgement from the host to the second client within an amount of time after the second client transmits data to the host. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for maintaining network data distribution, the system comprising:
-
a host that establishes a network session with a plurality of clients, wherein the host receives and acknowledges the receipt of data from each of the plurality of clients, polls the plurality of clients concerning connectivity and notifies each of the plurality of clients concerning an interrupted communication between the host and the second client; a first client that receives host information after backup viability of a first client from the plurality of clients has been determined based on a parameter of the first client, wherein the parameter includes a level of bandwidth, wherein determining backup viability includes identifying a level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, receiving data identifying a level of bandwidth available to the first client, confirming that the level of bandwidth available to the first client is at least equal to the level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, and receiving data confirming that the first client is capable of establishing a connection with all other clients among the plurality of clients, and wherein the first client connects as a back-up host to a second client from the plurality of clients based on at least the host information. - View Dependent Claims (9, 10)
-
-
11. A computing device for maintaining data distribution in networks, the computing device comprising:
-
an acknowledgement module stored in memory and executable by a processor to transmit a reply acknowledging data received from a first client from among a plurality of clients in a network session; a negotiation module stored in memory and executable by a processor to negotiate backup viability of a first client based on a parameter of the first client, wherein negotiating backup viability includes; identifying a level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, receiving data identifying a level of bandwidth available to the first client, confirming that the level of bandwidth available to the first client is at least equal to the level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, and receiving data confirming that the first client is capable of establishing a connection with all other clients among the plurality of clients; a backup application module stored in memory and executable to transmit an application providing host information to the first client after the negotiation confirms that the first client exhibits backup viability, such that the first client connects as a back-up host to a second client from the plurality of clients based on at least the host information, and a polling module stored in memory and executable to; poll the plurality of clients to determine connectivity between the host and each of the plurality of clients, wherein an interrupted communication is indicated by results of the polling, and receive data at the first client from the second client of the plurality of clients when communication between the host and the second client is interrupted, wherein the interrupted communication is identified by a lack of acknowledgement from the host to the second client within an amount of time after the second client transmits data to the host. - View Dependent Claims (12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for group messaging, the method comprising:
-
establishing a network session by connecting a host to a plurality of clients, wherein data exchanged between the host and each of the plurality of clients is acknowledged upon receipt; negotiating backup viability of a first client from the plurality of clients, wherein negotiating backup viability includes; identifying a level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, receiving data identifying a level of bandwidth available to the first client, confirming that the level of bandwidth available to the first client is at least equal to the level of bandwidth necessary to manage all data exchanged between all of the clients in the network session, and receiving data confirming that the first client is capable of establishing a connection with all other clients among the plurality of clients; transmitting host information to the first client after the negotiation confirms that the first client exhibits backup viability, wherein the first client connects as a back-up host to a second client from the plurality of clients based on at least the host information and the first client receives data from the second client from the plurality of clients, polling the plurality of clients to determine connectivity between the host and each of the client of hosts, wherein interrupted communications are indicated by result of the polling, and receiving data at the first client from the second client of the plurality of clients when communication between the host and the second client is interrupted, wherein the interrupted communication is identified by a lack of acknowledgement from the host to the second client within an amount of time after the second client transmits data to the host. - View Dependent Claims (16)
-
Specification