The invention generally relates to a peer node adapted to communicate with other peer nodes through a peer-to-peer protocol, and to a method for selecting a peer node for communicating between peer nodes through a peer-to-peer protocol.
Protocols of the prior art that are used in the processing of peer-to-peer communication, such as the BitTorrent (BT) protocol, Distributed Hash Table (DHT) protocol, Peer Exchange (PEX) protocol, Local Peer Discovery (LPD) protocol, etc. usually favour communication between strongly distributed peer nodes. This can lead to a non-optimal communication between peer nodes, even though other peer nodes exist that allow for a better communication. With the existing protocols often “far away” peer nodes are used requiring transatlantic links and/or multiple IP hops where cheaper nearby peer nodes are available.
Typically a peer node will build up a view on foreign peer nodes from messages that it receives from those or other foreign peer nodes. Often, foreign peer nodes that are learned first are difficult to replace with other foreign peer nodes that are learned later. Further, the built-up is typically more or less random and mainly defined by the foreign peer nodes from which those messages arrive.
The object of the invention is to provide a peer node and a method allowing an improved communication between peer nodes.
According to an embodiment of the invention there is provided a peer node adapted to communicate with other peer nodes through a peer-to-peer protocol. The peer node comprises a categorization and selection module adapted to receive peer node identifiers for messages received at said peer node from said other peer nodes; to categorize the received peer node identifiers according to one or more criteria in one of at least two categories; and to select the peer node identifier as a peer node identifier to be used for the communication through the peer-to-peer protocol, if said peer node identifier has been categorized in a first category of the at least two categories.
Through the use of such a categorization and selection module the peer node can be made aware of certain preferred characteristics that peer nodes ideally should have by defining one or more suitable criteria for categorizing the peer node identifiers. If a peer node belongs to a first category (i.e. a preferred category) the associated peer node is directly selected to be used by the peer-to-peer protocol. In other words a peer node can be controlled by setting the one or more criteria, e.g. one or more criteria defined by an Internet Service Provider (ISP). In that way the behaviour of the peer node can be influenced. If the peer node identifier is categorized in a second category (a non-preferred category), then the normal selection rules (e.g. selection rules defined by the peer node) may be used.
According to a possible embodiment of the peer node, the module is further adapted to apply a set of peer selection rules if the peer node identifier belongs to a second category of the at least two categories. Note that this set of selection rules can be very basic and can e.g. consist of putting the peer nodes of the second category in a contact list according to the order of receipt.
In that way, while newly received peer nodes of the first category are allowed to bypass the normal selection rules and are immediately selected for further communication, the received peer nodes of the second category are selected using the normal selection rules.
The term “peer node” as used in the context of the present invention has to be interpreted in the broad sense and may refer to a plurality of devices of a user, which allow the user to exchange data through a peer-to-peer protocol. In that regard it is noted that the categorization and selection module may either be built-in into the peer node or may be implemented as a new configuration of an existing peer node.
According to a preferred embodiment, the peer node is adapted to distribute data through a peer-to-peer file sharing protocol, such as the BitTorrent (BT) protocol. Other file sharing protocols that may be used are e.g. Gnutella, eDonkey, Kazaa, Freenet. Further the peer node may comprise a Peer Exchange (PEX) client and/or a Distributed Hash Table (DHT) client and/or a Local Peer Discovery (LPD) client. It is preferred that the categorization and selection module is implemented in the peer-to-peer data exchange client such as a BT client. However, those modules may also be implemented in the peer-to-peer signalling clients such as a DHT, PEX or LPD client. This will be explained in more detail when referring to
According to a preferred embodiment the categorization and selection module is adapted to categorize a peer node identifier using a weight value based on characteristics of the peer node associated with the peer node identifier. Those characteristics can e.g. be characteristics related to the speed of the peer node, characteristics related to the Internet service provider to which the peer node belongs, the type of the peer-to-peer file sharing protocol used by the peer node, etc. Typically, the one or more criteria used to categorize a peer node identifier will use a threshold value, wherein, if the weight value is below the threshold value, the node identifier is categorized in a first category, and if the weight value is above this threshold value, the peer node identifier is identified is a second category. Such weight values may e.g. be uploaded in the peer node by an ISP and may be periodically updated. Alternatively a peer node may be locally configured with the weight values of the peer nodes.
According to further preferred embodiments, the categorization and selection module is adapted to categorize a peer node identifier using an IP address and/or a UDP/TCP-port of the peer node associated with said peer node identifier. Typically, the received foreign peer nodes will be sorted according to whether their IP address and/or TCP-port match certain preferred IP addresses and/or TCP-ports or not. More preferably, the categorization and selection module is adapted to verify whether an IP address associated with a peer node identifier belongs to a predefined subnet, and to categorize the peer node identifier accordingly.
According to an embodiment, the categorization and selection module is adapted to obtain the number of IP hops, or the roundtrip time between the peer node and a peer node associated with the peer node identifier, or a similar variable and to take into account said number, roundtrip time or similar variable when categorizing the peer node identifier. Alternatively or in addition thereto, the categorization and selection module may be adapted to obtain the number of successful interactions between the peer node and another peer node associated with the peer node identifier, and to take into account said number when categorizing the peer node identifier. Typically, a node identifier will be classified as a preferred node if the number of hops is below a specified threshold value and as a non-preferred node if the number of nodes is equal to this specified threshold value. A similar type of criterion can be used for the number of successful interactions. The categorization and selection module may e.g. obtain the number of IP hops or the roundtrip time using probes. The number of successful interactions could e.g. be counted by the peer node.
According to a preferred embodiment the peer node further comprises a connection set-up module adapted to set up a connection for data download to a peer node taking into account the category associated with the peer node as determined by the categorization and selection module. This setting of a connection may use TCP or UDP, or any other suitable data transfer protocol. Note that in a possible embodiment, the peer node may be allowed to set up more concurrent connections for download than the available number of peer nodes of the first category. In that case, the peer node may also set up connections for the peer nodes of the second category. E.g. for BitTorrent clients, the maximum number of concurrent TCP connections is configurable, and therefore, such a BitTorrent client could be implemented with the features described above.
Although a typical embodiment of the invention will have a categorization and selection module categorizing the node identifiers in two categories (a preferred and a non-preferred category), the skilled person will understand that also more categories could be implemented within the scope of the invention.
According to another aspect of the invention there is provided a method for selecting a peer node to be used for communicating between peer nodes through a peer-to-peer protocol. The method comprises receiving at a peer node messages from other peer nodes containing one or more peer node identifiers; categorizing each peer node identifier of the one or more peer node identifiers according to one or more criteria in one of at least two categories; and, if a peer node identifier is categorized in a first category of the at least two categories selecting the peer node identifier as a peer node to be used for communicating through the peer-to-peer protocol.
According to a possible embodiment of the method of the invention, if a peer node identifier is categorized in a second category of the at least two categories, a set of selection rules (e.g. defined by the peer node) is applied to determine whether or not the peer should be used for communicating through the peer-to-peer protocol and to determine in which order the selected peer nodes of the second category should be contacted.
According to a preferred embodiment of the method, the peer node is processing peer-to-peer communications through a peer-to-peer file sharing protocol, such as the BitTorrent protocol.
According to preferred embodiments, the one or more criteria use:
According to a preferred embodiment, the categorizing according to one or more criteria comprises verifying whether an IP address associated with a peer node identifier belongs to a predefined subnet, and categorizing the peer node identifier accordingly.
According to yet another aspect of the invention there is provided a computer program for performing any of the steps of the above disclosed embodiments of the method of the invention, and in particular the categorizing and/or the selecting step. Note that the criteria to be used for the categorization could be implemented in separate computer programs that could e.g. be installed by an operator from a distance. In that way, the criteria can be easily updated when needed. Further the invention also relates to the downloading of such a program and to a storage medium for encoding such a program in machine-readable and machine-executable form.
The accompanying drawings are used to illustrate presently preferred non-limiting exemplary embodiments of the present invention. The above and other advantages, features and objects of the invention will become more apparent, and the invention will be better understood from the following detailed description when read in conjunction with the accompanying drawings, in which:
In the example of
In the example of
Note that the messages 12 received at the categorization and selection module 11 could use any protocol under the application level, e.g. the DHT protocol, the PEX protocol, the Local Peer Discovery protocol or the tracker oriented BitTorrent signalling protocol. Further the categorization and selection module 11 may also be adapted to learn from messages received on the data plane 16, see arrow 17, e.g. requests for data interaction from other peer nodes containing one or more peer node identifiers.
Further, non-preferred node identifiers, such as node identifier 7 in the example of
Embodiments of the invention allow for preferred peer node selection for BitTorrent data exchange. Such preferred peer node selection allows promoting those peer nodes for which the cost of BitTorrent data exchanges is known to be small compared to the cost of BitTorrent data exchanged with more or less randomly retrieved peer nodes. Since BitTorrent data exchange consumes a major part of the ISP network resources, such a preferred peer node selection promises substantial cost savings. Proposed embodiments allow for a peer node selection which is better tailored to ISP requirements, wherein the ISP can at least partly control the behaviour of the client.
In the example of DHT the proposed solution makes the filling of the routing table of DHT node more dynamic in the sense that the DHT node can better adapt its operation to the preferred environment.
While the principles of the invention have been set out above in connection with specific embodiments, it is to be clearly understood that this description is merely made by way of example and not as a limitation of the scope of protection which is determined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
11305039.7 | Jan 2011 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2012/050233 | 1/9/2012 | WO | 00 | 6/20/2013 |