Method and system for managing data transmission between devices behind network address translators (NATs)
First Claim
1. A method, to be performed by a processor, for facilitating peer-to-peer communications between a plurality of devices coupled to a network, the method comprising:
- receiving a request for a data item from a first device, of the plurality of devices, wherein a first network address translator is associated with the first device;
identifying a set of devices, in the plurality of devices, each having at least a portion of the requested data item, wherein one or more network address translators are associated with the set of devices;
prioritizing the set of devices based on a compatibility of the first network address translator with each of the one or more network address translators, wherein devices associated with more compatible network address translators are given a higher priority than devices associated with less compatible network address translators, wherein prioritizing the set of devices based on the compatibility of the first network address translator with each of the one or more network address translators comprisesif (a) one or more network address translators (NATs) of the one or more NATs is a symmetric NAT and has an average previous designation frequency that does not exceed an allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (a);
if a NAT of the one or more NATs is not found to satisfy (a), then if (b) one or more network address translators (NATs) of the one or more NATs is a Port-restricted NAT and has an average previous designation frequency that does not exceed the allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (b); and
if a NAT of the one or more NATs is not found to satisfy (a) and (b), then designating as the second device a device of the set of devices associated with a NAT that is one of a Full-cone NAT and a restricted cone NAT and that has an average previous designation frequency that does not exceed the allowable designation frequency;
designating a second device, of the set of devices, to supply data to the first device based, at least in part, on the prioritization; and
enabling the first device to receive data pertaining to the requested data item from the second 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.
-
Citations
23 Claims
-
1. A method, to be performed by a processor, for facilitating peer-to-peer communications between a plurality of devices coupled to a network, the method comprising:
-
receiving a request for a data item from a first device, of the plurality of devices, wherein a first network address translator is associated with the first device; identifying a set of devices, in the plurality of devices, each having at least a portion of the requested data item, wherein one or more network address translators are associated with the set of devices; prioritizing the set of devices based on a compatibility of the first network address translator with each of the one or more network address translators, wherein devices associated with more compatible network address translators are given a higher priority than devices associated with less compatible network address translators, wherein prioritizing the set of devices based on the compatibility of the first network address translator with each of the one or more network address translators comprises if (a) one or more network address translators (NATs) of the one or more NATs is a symmetric NAT and has an average previous designation frequency that does not exceed an allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (a); if a NAT of the one or more NATs is not found to satisfy (a), then if (b) one or more network address translators (NATs) of the one or more NATs is a Port-restricted NAT and has an average previous designation frequency that does not exceed the allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (b); and if a NAT of the one or more NATs is not found to satisfy (a) and (b), then designating as the second device a device of the set of devices associated with a NAT that is one of a Full-cone NAT and a restricted cone NAT and that has an average previous designation frequency that does not exceed the allowable designation frequency; designating a second device, of the set of devices, to supply data to the first device based, at least in part, on the prioritization; and enabling the first device to receive data pertaining to the requested data item from the second device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, to be performed by a processor, for initiating peer-to-peer communications between a first device and a plurality of devices coupled to a network, the method comprising:
-
transmitting a request for a data item to a second device coupled to the network, wherein the second device is configured to;
(i) identify a set of devices, in the plurality of devices, each having at least a portion of the requested data item, and (ii) prioritize the set of devices based on a compatibility of a first network address translator, associated with the first devices, with one or more network address translators, associated with the set of devices; andreceiving data pertaining to the requested data item from a third device, of the set of devices, wherein the third device is designated to supply data to the first device based, at least in part, on the prioritization; wherein the second device is configured prioritize the set of devices based on the compatibility of the first network address translator with each of the one or more network address translators by if (a) one or more network address translators (NATs) of the one or more NATs is a symmetric NAT and has an average previous designation frequency that does not exceed an allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (a); if a NAT of the one or more NATs is not found to satisfy (a), then if (b) one or more network address translators (NATs) of the one or more NATs is a Port-restricted NAT and has an average previous designation frequency that does not exceed the allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (b); and if a NAT of the one or more NATs is not found to satisfy (a) and (b), then designating as the second device a device of the set of devices associated with a NAT that is one of a Full-cone NAT and a restricted cone NAT and that has an average previous designation frequency that does not exceed the allowable designation frequency. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for managing peer-to-peer communications between a plurality of devices coupled to a network, the system comprising:
-
a first device, of the plurality of devices, to transmit a request for a data item, wherein a first network address translator is associated with the first device; a second device, coupled to the network, to receive the request from the first device, the second device being configured to;
(i) identify a set of devices, in the plurality of devices, each having at least a portion of the requested data item, and (ii) prioritize the set of devices based on a compatibility of the first network address translator with one or more network address translators associated with the set of devices such that a priority associated with a device of the set of devices decreases with a degree of compatibility of the network address translator thereof with other network address translators;a third device, of the set of devices, designated to supply data to the first device, the third device being designated based, at least in part, on (i) the prioritization and (ii) a number of times the third device has been designated to supply data to one or more of the plurality of devices; and wherein the second device enables the first device to receive data pertaining to the requested data item from the third device; wherein the second device is configured prioritize the set of devices based on the compatibility of the first network address translator with each of the one or more network address translators by if (a) one or more network address translators (NATs) of the one or more NATs is a symmetric NAT and has an average previous designation frequency that does not exceed an allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (a); if a NAT of the one or more NATs is not found to satisfy (a), then if (b) one or more network address translators (NATs) of the one or more NATs is a Port-restricted NAT and has an average previous designation frequency that does not exceed the allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (b); and if a NAT of the one or more NATs is not found to satisfy (a) and (b), then designating as the second device a device of the set of devices associated with a NAT that is one of a Full-cone NAT and a restricted cone NAT and that has an average previous designation frequency that does not exceed the allowable designation frequency. - View Dependent Claims (21, 22)
-
-
23. A non-transitory computer readable medium on which instructions are stored that, when executed by one or more processors, cause the one or more processors to perform steps comprising:
-
receiving a request for data item from a first device, of a plurality of devices coupled to a network, wherein a first network address translator is associated with the first device; identifying a set of devices, in the plurality of devices, each having at least a portion of the requested data item, wherein one or more network address translators are associated with the set of devices; prioritizing the set of devices based on a compatibility of the first network address translator with each of the one or more network address translators, wherein devices associated with more compatible network address translators are given a higher priority than devices associated with less compatible network address translators, wherein prioritizing the set of devices based on the compatibility of the first network address translator with each of the one or more network address translators comprises if (a) one or more network address translators (NATs) of the one or more NATs is a symmetric NAT and has an average previous designation frequency that does not exceed an allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (a); if a NAT of the one or more NATs is not found to satisfy (a), then if (b) one or more network address translators (NATs) of the one or more NATs is a Port-restricted NAT and has an average previous designation frequency that does not exceed the allowable designation frequency, then designating as a second device a device of the set of devices associated with at least one of the one or more NATs satisfying (b); and if a NAT of the one or more NATs is not found to satisfy (a) and (b), then designating as the second device a device of the set of devices associated with a NAT that is one of a Full-cone NAT and a restricted cone NAT and that has an average previous designation frequency that does not exceed the allowable designation frequency; enabling the first device to receive data pertaining to the requested data item from the second device.
-
Specification