Method and system for managing data transmission between devices behind network address translators (NATs)
First Claim
1. A method for managing peer-to-peer communication among a plurality of devices, the method comprising:
- in responding to a request from one of the devices (hereinafter “
requesting device)”
for needed data, determining some of the devices to be candidates from a database with many entries, each of the entries pertaining to one of the devices, wherein the determining of the some of the devices is conducted in accordance with at least compatibility of respective network address translators with a network address translator of the requesting device;
among the candidates, designating a finalist that is deemed most appropriate to be a supplying device according to predefined criteria; and
notifying either the requesting device or the supplying device so that the requesting device can get the needed data directly from the supplying device.
6 Assignments
0 Petitions
Accused Products
Abstract
Techniques for managing direct communication between two devices are disclosed. Each of the device is behind a network address translator. According to one embodiment, a server, in responding to a request from a requesting device for needed data, is configured to determine some of devices in service to be candidates from a database, where the database has many entries, each of the entries pertaining to one of the devices. The candidates are determined in accordance with at least compatibility of respective network address translators with a network address translator of the requesting device. Among the candidates, the server then designates a finalist that is preferably not designated to be a supplying device more often than it should be on average. The server then notifies either the requesting device or the supplying device so that the requesting device can get the needed data directly from the supplying device.
46 Citations
20 Claims
-
1. A method for managing peer-to-peer communication among a plurality of devices, the method comprising:
-
in responding to a request from one of the devices (hereinafter “
requesting device)”
for needed data, determining some of the devices to be candidates from a database with many entries, each of the entries pertaining to one of the devices, wherein the determining of the some of the devices is conducted in accordance with at least compatibility of respective network address translators with a network address translator of the requesting device;among the candidates, designating a finalist that is deemed most appropriate to be a supplying device according to predefined criteria; and notifying either the requesting device or the supplying device so that the requesting device can get the needed data directly from the supplying device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for managing peer-to-peer communication among a plurality of devices, the method comprising:
-
initiating a request to receive needed data from at least one supplying device, wherein the request causes a server to determine some of the devices to be candidates from a database with many entries, each of the entries pertaining to one of the devices, wherein the determining of the some of the devices is conducted in accordance with at least compatibility of respective network address translators with a network address translator of the requesting device, among the candidates, the server is configured to designate a finalist that is not designated to be a supplying device more often than it should be on average; and receiving from the server a message including necessary information to initiate a request to the supplying device to download the needed data;
orcausing to accept the needed data from the supplying device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for managing peer-to-peer communication, the system comprising:
-
a plurality of devices in service; and a server coupled to a database with many entries, each of the entries pertaining to one of the devices, wherein, upon receiving a request from one of the devices (hereinafter “
a requesting device”
), the server is configured to determine some of the devices to be candidates from the database in accordance with at least compatibility of respective network address translators with a network address translator of the requesting device, among the candidates, the server is configured to further designate a finalist that is not designated to be a supplying device more often than it should be on average, andwherein the requesting device receives from the server a message including necessary information to initiate a request to the supplying device to download the needed data, or is caused to accept the needed data from the supplying device. - View Dependent Claims (19)
-
-
20. The system as recited in claim 20, wherein each of the segments is non-consecutive in a sense that data from all of the segments must be streamed in at similar time to be useful.
Specification