WO2010022774A1 - Routing mechanism for distributed hash table based overlay networks - Google Patents

Routing mechanism for distributed hash table based overlay networks Download PDF

Info

Publication number
WO2010022774A1
WO2010022774A1 PCT/EP2008/061259 EP2008061259W WO2010022774A1 WO 2010022774 A1 WO2010022774 A1 WO 2010022774A1 EP 2008061259 W EP2008061259 W EP 2008061259W WO 2010022774 A1 WO2010022774 A1 WO 2010022774A1
Authority
WO
WIPO (PCT)
Prior art keywords
routing
node
peer
neighbour
nodes
Prior art date
Application number
PCT/EP2008/061259
Other languages
French (fr)
Inventor
Jouni MÄENPÄÄ
Tuomas Erke
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to CN200880131844.2A priority Critical patent/CN102204346B/en
Priority to EP08803285.9A priority patent/EP2319269B1/en
Priority to US13/060,984 priority patent/US20110205949A1/en
Priority to PCT/EP2008/061259 priority patent/WO2010022774A1/en
Publication of WO2010022774A1 publication Critical patent/WO2010022774A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/04Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
    • H04W40/10Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources based on available power or energy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/005Routing actions in the presence of nodes in sleep or doze mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/248Connectivity information update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0212Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave
    • H04W52/0219Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave where the power saving management affects multiple terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0274Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
    • H04W52/0277Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof according to available power supply, e.g. switching off when a low battery condition is detected
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Definitions

  • the present invention relates to a routing mechanism for a distributed hash table based overlay network.
  • the invention is applicable in particular to an optimised procedure for determining the routing of resource requests in peer-to-peer networks.
  • Peer-to-peer or P2P networks make use of the pooled resources of participating nodes including processing capabilities and communication bandwidth to facilitate a wide variety of services including file sharing and Voice-over-Internet Protocol (VoIP) telephony.
  • VoIP Voice-over-Internet Protocol
  • An overlay network comprises nodes connected by virtual links representing paths extending across possibly many physical links in the underlying network (e.g. the Internet).
  • Each node in the overlay network maintains a routing table containing a set of links to certain other nodes within the overlay network. Resource requests are passed between nodes until they arrive at a node which is responsible for that resource.
  • a hash table is a data structure that associates keys with values.
  • a key can be, for instance, a person's name and the associated value that person's contact address (e.g. email address or Session Initiation Protocol (SIP) Uniform Resource Identifier (URI)).
  • SIP Session Initiation Protocol
  • URI Uniform Resource Identifier
  • DHTs Distributed Hash Tables
  • DHTs provide a lookup service similar to a hash table.
  • DHTs are decentralized hash tables that are used in distributed systems or networks. In a DHT, the responsibility for maintaining mappings from names to values is distributed among the nodes participating in the system.
  • DHTs provide an efficient means for mapping resource names ("keys") to locations within an overlay network.
  • DHTs make use of a hashing algorithm to map keys, e.g. song titles, SIP URIs, etc, to a finite value space, e.g. 128 bits.
  • the hashing algorithm is chosen to ensure a relatively uniform spread of hash values across the value space. Thus, for example, the hashing of 100 song titles will likely result in 100 hash values that are relatively evenly spaced across the value space.
  • Nodes within an overlay network are identified by usernames, which are themselves hashed into respective hash values. Each node then becomes responsible for a set of hash values within the value space which neighbour its own value.
  • a node will store resource locations (e.g. IP addresses) from which resources matching the resource names that it "owns", can be obtained.
  • resource locations e.g. IP addresses
  • the node determines whether or not it owns the corresponding hash value. If so, it returns the location of the resource to the requester (via the overlay network). If it does not own the hash value, it inspects its routing table to identify that node within the table which has a hash value closest to the hash value of the request, and forwards the request to that node. The receiving node repeats the procedure, and so on until the request arrives at the node which does own the hash value corresponding to the request and which therefore knows the resource location.
  • resource locations e.g. IP addresses
  • each node In addition to the routing table, each node also maintains another data structure called the neighbour list.
  • the neighbour list contains pointers to the immediate successors and predecessors (i.e. neighbours) of the node in the overlay network. A node picks its neighbours according to the network's topology.
  • FIG. 1 shows an overlay network having a ring topology (only a small number of the nodes within the ring are illustrated).
  • Each node maintains a routing table containing the locations and hash values of a small number of succeeding and preceding nodes in the ring, as well as for a small number of more distant nodes.
  • a Node X maintains the locations of two successor nodes, two predecessor nodes and three remote nodes in its routing table.
  • each node n maintains a routing table with up to m fingers (m is chosen so that it is equal to the number of bits in node identifiers).
  • the zth entry in the table at node n contains the identity of the first node s that succeeds n by at least 2' ⁇ l on the identifier ring.
  • the Chord DHT algorithm can also be extended so that it maintains multiple alternative finger pointers for each finger interval.
  • One way to achieve this is to ask the primary finger peer to return a list of its successor nodes on the Chord ring, and then maintain pointers to these nodes in addition to the primary finger pointer.
  • a node within the overlay network ensures that the information in its routing table is up to date by attempting to contact its neighbours periodically.
  • DHT DHT
  • Kademlia DHT P. Maymounkov and D. Mazieres: "Kademlia: A peer-to-peer information system based on the xor metric", Proceedings of IPTPS02, Cambridge, USA, March 2002] organizes nodes in a binary tree-like structure. For example, if 160-bit node identifiers are used, then, in Kademlia, for every value of /, where 0 ⁇ i ⁇ 160 , each node keeps a list of triples of ⁇ IP address, port, Node-ID> for nodes of distance between 2' and 2' +l from itself.
  • the Kademlia routing table is a binary tree whose leaves are ⁇ -buckets.
  • Figure 3 shows a very simple example of a network where a node 110 maintains three k- buckets shown as three circles 1, 2 and 3.
  • ⁇ -bucket 3 contains nodes whose distance to node 001 is 1, ⁇ -bucket 2 nodes with distance 2 or 3, and ⁇ -bucket 1 nodes whose distance is between 4 and 7.
  • Lookups in Kademlia work in an iterative manner: first, the lookup initiator picks a nodes, these being nodes a distance a from its closest non-empty ⁇ -bucket (a typical value for a is 3). Next, the initiator sends parallel lookup requests to the a nodes it has chosen. Each recipient of a lookup request returns triples for the k nodes it knows about closest to the target ID. These triples can come from a single ⁇ -bucket or they may come from multiple ⁇ -buckets if the closest ⁇ -bucket is not full. However, if a recipient of a lookup request holds the resource being searched for, it simply returns that resource in the response it generates to the lookup request.
  • the lookup procedure also has a recursive step (not to be confused with recursive routing described below) in which the initiator resends the lookup request to nodes it has learned about from previous lookup responses.
  • the lookup process ceases when the initiator receives the desired resource.
  • DHTs require frequent transmission of data over the radio interface and can thus drain the mobile terminal's battery quickly, because each message forces the terminal to frequently change (i.e. wake up) from sleep mode to active mode.
  • the present invention proposes a mechanism that allows peers in an overlay network to exchange information about their power consumption. It also allows a peer to inform its connected peers whenever it is about to switch from sleep mode to active mode and vice versa. This information can then be used to optimize the routing performance of the routing algorithm in terms of power consumption.
  • a node for use within an overlay network and comprising a decision unit for making a routing decision based upon a knowledge of the power consumption levels and/or power availability of a set of peer nodes in the overlay network.
  • the node may be a mobile user terminal.
  • the node may comprise a memory for storing a routing table containing, for each routing neighbour node, a mapping between an overlay network address of the node and a physical locator of the node, and parameters in, or associated with, the routing table for each routing neighbour.
  • the parameters include: 1) power usage parameters indicating a level of power consumption for each of a plurality of operational states, and
  • a power management status, PMS, parameter indicating a current, or most recently notified, operational state of the routing neighbour a processing unit configured to determine a routing neighbour to forward a message to, based on the power usage parameters and the PMS parameters of the routing neighbours.
  • the node may be configured to receive a status update message from a routing neighbour indicating that the routing neighbour is about to change its operating state, the status update message including the routing neighbour's new PMS parameter for the operating state it is about to enter.
  • the receiving node stores the new PMS parameter in the routing table entry for the routing neighbour.
  • the node may be configured to determine from the parameters of the routing neighbours in the routing table, if any of the routing neighbours are in a sleep mode, in which case it stores the status update message in the overlay network for later delivery to the sleeping routing neighbour when it changes state out of the sleep mode to an active or restricted mode.
  • the node may be configured to provide power consumption levels for each of a plurality of operational states of the node to other nodes in the overlay network, and to notify one or more peer nodes in the network of an impending change in operational state of the node.
  • the node may be a mobile user terminal.
  • the node may comprise a memory storing power usage parameters indicative of said power consumption levels, and a processing unit configured to provide said power usage parameters in peer protocol messages sent to other nodes in the overlay network, and to provide a PMS parameter indicating an operational state that the node is about to enter in a notification sent to other nodes of the network.
  • the node may be further configured to send a status update message to one or more of routing neighbours within said overlay network indicating that it is about to change its operating state, the status update message including the node's PMS parameter for the operating state it is about to enter.
  • the node may be configured to provide information relating to its remaining battery capacity to other nodes of the network, wherein the remaining battery capacity comprises an indication that if the node remains in an active state it will run out of battery capacity within a certain amount of time.
  • the node may also be configured to indicate that its power supply is unlimited, e.g. is connected to a mains supply.
  • the node may be configured to access a Radio Resource Control, RRC, state machine to determine operating state information.
  • RRC Radio Resource Control
  • the node may comprise an application running on a native platform of the node for accessing the RRC state machine.
  • the node may comprise a vendor-specific application programming interface (API) configured to access the RRC state machine, or a Java application obtained by way of a Java Specification Request (JSR), the Java application enabling access to the RRC state machine.
  • API application programming interface
  • JSR Java Specification Request
  • the node may be configured to obtain power usage parameters of a node by reference to a terminal model of the node, and from a web server, or from data provided with a P2P application residing at the node.
  • the node may determine the model of the terminal by reference to a system property.
  • the node may configured to set a PMS parameter to 'unknown' in peer protocol messages that it originates.
  • the power consumption levels may be specified in terms of power usage parameters that include one or more of: a Sleep Mode Power Usage, SMPU, parameter specifying the power consumption of the node when it is in a power saving, or sleep, mode; an Active Mode Power Usage, AMPU, parameter specifying the power consumption of the node when it is operating in an active mode; and a Restricted Mode Power Usage, RMPU, parameter specifying power consumption when the node is operating in a restricted mode,
  • a Sleep Mode Power Usage SMPU
  • AMPU Active Mode Power Usage
  • AMPU Active Mode Power Usage
  • RMPU Restricted Mode Power Usage
  • a PMS parameter may indicate an operational state selected from: a power saving, or sleeping, state; an active state; a restricted state; and an unknown state.
  • a method of making a routing decision at a routing node of an overlay network comprises selecting one or more of a set of peer nodes in the overlay network to forward a message to based upon a knowledge of the power consumption levels and/or power availability of the peer nodes.
  • the overlay network may employ a distributed hash table, DHT, and wherein the overlay network comprises nodes that maintain routing tables.
  • a routing table contains, for each of a set of routing neighbour nodes in the overlay network, a mapping between an overlay network address of the node and a physical locator of the node.
  • the method further comprises at each of said overlay network nodes: maintaining parameters in, or associated with, the routing table for each routing neighbour, the parameters including: power usage parameters indicating a level of power consumption for each of a plurality of operational states, and a power management status, PMS, parameter indicating a current, or most recently notified, operational state of the routing neighbour.
  • the step of maintaining parameters may comprise receiving a status update message from a routing neighbour, the status update message including a PMS parameter specifying the next operational state that the routing neighbour is going to enter, and updating the routing neighbour's PMS parameter in, or associated with, its routing table.
  • the method may comprise checking the PMS status of the routing neighbours and either sending the status update message to a routing neighbour if it is not sleeping, or if it is sleeping storing the message in the overlay network for later delivery to the routing neighbour.
  • the step of storing the status update message in the overlay network comprises checking the PMS status of direct routing neighbours of the sleeping routing neighbour to identify a non- sleeping direct routing neighbour, and sending the status update message destined for the sleeping routing neighbour to the non-sleeping direct neighbour for storage.
  • the method further comprises forwarding the status update message to another non-sleeping direct routing neighbour of the sleeping routing neighbour.
  • the method may be advantageously employed in a Peer-to-Peer, P2P, network, information relating to the power consumption levels and/or power availability being provided in messages sent between nodes using a peer protocol such as P2PSIP.
  • P2P Peer-to-Peer
  • P2PSIP peer protocol
  • the step of selecting a routing neighbour to forward a message to may comprise: determining a set of alternative routing neighbours as next hop peer nodes for a message that is to be routed to a destination peer; checking the operating state of the next hop peer nodes; and either forwarding the message to a next hop peer node if no change of state will be required when the message is sent to that node; or checking the power consumption levels of the next hop peer nodes if there are no nodes that will not require a change of state, calculating the increase in power consumption involved in changing state of each of the next hop peers, and forwarding the message to the next hop peer requiring the smallest increase in power consumption.
  • the DHT operates using a Chord algorithm, or a Kademlia algorithm.
  • the DHT based overlay network may route messages in a recursive fashion or in an iterative fashion.
  • the routing neighbours are super peers in a hierarchical overlay network.
  • the operating states of routing neighbours may be specified in terms of PMS parameters that include one or more 'unknown' status parameters, in which case the method comprises the steps of: A) if the set of alternative next hop nodes contains at least one peer in an active mode forwarding the message to one of the peers in active mode; and
  • operation of the economic path finder mechanism described herein enables significant reductions in the levels of power consumption associated with using P2P applications in mobile terminals. This is achieved by allowing peers to exchange information related to their power consumption levels in different operating states, and information about their current operating states (power management status - e.g. sleep mode or active mode). Since a peer is informed of the power consumption and power management status of its routing neighbours, it can optimize routing decisions based on this information. This allows the network to save energy by routing messages to neighbours at a low cost (i.e. increase in power consumption) and extends the lifetime of battery-powered terminals.
  • the mechanism is also applicable to other types of peers and can be usefully employed by all types of peers that operate at different power consumption levels and have a need to conserve energy.
  • the mechanism can also be extended to take into account the remaining battery capacity of wireless nodes when making routing decisions.
  • the economic path finder mechanism can be applied to overlay networks employing any DHT algorithm, and that the mechanism is applicable to both iterative and recursive routing modes.
  • the mechanism can also be used to select low cost (in terms of power consumption) super peers.
  • Figure 1 illustrates schematically a DHT -based ring overlay network comprising a number of nodes
  • Figure 2 further illustrates a DHT -based ring overlay network, showing neighbourhood relations between nodes
  • Figure 3 illustrates a simple example of a Kademlia DHT -based tree overlay network.
  • Figures 4a and 4b illustrate signal flows in operation of a routing mechanism in accordance with embodiments of the invention
  • Figure 5 is a flow diagram of a method in accordance with embodiments of the invention.
  • Figure 6 illustrates schematically a routing node of an overlay network.
  • Peer protocol is the protocol that nodes participating in a P2P overlay network use to exchange information with each other. These four new parameters are called Sleep Mode Power Usage (SMPU),
  • SMPU Sleep Mode Power Usage
  • RMPU Restricted Mode Power Usage
  • AMPU Active Mode Power Usage
  • PMS Power Management State
  • the Sleep Mode Power Usage (SMPU) parameter specifies the power consumption (e.g. in milliwatts) of a peer device when it is in its power saving (i.e. sleep) mode.
  • the Active Mode Power Usage (AMPU) specifies the power consumption (e.g. in milliwatts) of the device when it is operating in active mode, for instance when a mobile terminal has been allocated dedicated uplink and downlink radio channels.
  • the Restricted Mode Power Usage (RMPU) parameter specifies power consumption when the device is operating in a restricted mode (e.g. when a mobile terminal does not have dedicated uplink and downlink channels allocated, but uses a default common or shared transport channel for both uplink and downlink transmissions).
  • the Power Management Status (PMS) parameter which is used in status update messages, specifies the next power management state that the sender is about to enter.
  • the parameter can have one of four values: 'sleep', 'restricted', 'active' and 'unknown'.
  • Figures 4a and 4b illustrate the signal flow sequences between peers.
  • the PMS parameters of the peers are always 'sleep', 'restricted' or 'active'. Situations in which the 'unknown' parameter is used are described later.
  • Peer N is a typical node in an overlay network (see, for example Figure 2).
  • Peer F is a routing neighbour, or finger of peer N, and peer F jieighbour is a direct neighbour of peer F. If peer N wishes to establish a connection with peer F, peer N includes the SMPU, RMPU and AMPU parameters into an initial request, henceforth referred to as the Connect request. This is illustrated in Figure 4a at step 401.
  • the Connect request constructed and sent by peer N includes the PMS parameter as well as the power usage parameters SMPU, RMPU and AMPU.
  • the value of the PMS parameter is set either to 'restricted' or 'active' depending on which state peer N is in (the value cannot be 'sleep' since peer N is transmitting data).
  • peer F includes its current power management state PMS parameter in the Connect response to peer N (step 402) together with its three power usage parameters (SMPU, RMPU and AMPU).
  • peer N Upon receiving the Connect response, at step 403 peer N stores the values of the three power usage parameters into the routing table entry it maintains for peer F.
  • peer N sets the value of the PMS parameter to the value returned by peer F.
  • peer F changes its power management state, then, as shown at step 405, it informs each peer with which it is maintaining a connection (which includes peers N and
  • Status Update (1) contains the PMS parameter, the value of which has been set to 'active', 'restricted' or
  • peer N receives the Status Update (1) message, it updates the routing table entry it maintains for peer F with the new value of the PMS parameter received from peer F.
  • a peer should avoid sending status update messages to routing neighbours that are sleeping, since this would force the peers to wake up and thus increase their energy consumption. However, sleeping peers should still receive the status update messages as soon as they wake up, so that they will have up-to-date information about the status of the peers with which they are maintaining connections. This is achieved by making nodes in the overlay network responsible for storing status update messages while their destination peers are sleeping, and delivering the status update messages to the peers when they wake up.
  • peer N is about to switch to the sleeping mode, and thus needs to send a status update message to its routing neighbours, including peer F.
  • Peer N first checks its routing table to check the PMS status of peer F (peer N maintains this information in the routing table entry it has for peer F, as described above). If peer F is not sleeping, peer N can simply send the message Status Update (2) to peer F as at step 408. However, if peer F is sleeping, then at steps 409-412 peer N stores the status update message in the overlay network. Note that it is not sufficient for peer N to store the message itself because it is about to enter the sleep mode. When in the sleep mode, it will not know when peer F wakes up, and will not be able to deliver the message while it is sleeping.
  • peer F is the primary finger of peer N, which also maintains a connection with the direct neighbours of peer F, including F_neighbour. Therefore at step 409 peer N selects one successor of peer F that either does not support sleep mode (i.e. is always active) or is currently awake. If peer F has successors that are always active, then peer N chooses from the set of those successors the one that is closest to peer F.
  • peer N chooses from the set of active successors the one that is closest to peer F. In either case, peer N next sends to the selected successor, Fjieighbour, a Status Update (3) message at step 410, with a destination Peer-ID of the message set to that of peer F.
  • peer Fjieighbour On receiving the Status Update (3) message, at step 411 peer Fjieighbour checks the destination Peer-ID of the message and determines that the intended recipient is peer F. Since peer F is one of peer F ⁇ neighbour's direct neighbours, and it knows that peer F is sleeping, at step 412 peer F jieighbour stores the Status Update (3) message to be delivered to peer F as soon as peer F wakes up. However, if at step 409 peer N determined that none of the direct neighbours of peer F is awake (as shown at step 409a), then at step 413 peer N is forced to send the Status Update (3) message directly to peer F, so that peer F wakes up at step 414.
  • peer F jieighbour should transfer the Status Update messages that it is storing to the closer successor.
  • Peer F may wake up for a variety of reasons - i.e. not necessarily because peer F receives a Status Update message, as at step 414, but for any reason such as because peer F's user wants to start a call.
  • peer F wakes up, it first needs to obtain any Status Update messages that the overlay network has been storing while peer F has been sleeping. This allows peer F to learn the current status of its neighbours. If peer F has successors that are always active, then peer F can get the stored Status Update messages from the closest always-active successor. However, if peer F does not have any successors that are always active, it cannot know which one of the successors is storing the Status Update messages that were sent to peer F while it was sleeping. In addition, peer F does not know the current status of its successors.
  • peer F has to contact its successors one by one to learn which one of the successors is storing the Status Updates. Since the Status Update messages are always stored by the closest active successor, peer F starts by contacting its closest successor. Peer F can stop contacting further successors as soon as it finds the successor that is holding the stored Status Update messages.
  • Each peer P that is about to enter sleep mode should also store an empty Status Update message addressed to itself in one of its successors. If peer P has successors that do not support sleep mode (i.e. are always active), the empty Status Update should be stored in the closest such successor. If all of the successors of peer P support sleep mode, then peer P should select from the set of active successors the one that is closest to peer P. If all of the successors are sleeping, peer P should not store an empty Status Update request, because doing so would force it to wake up one successor. The benefit of storing the empty Status Update request is that when peer P wakes up, it is possible that no other node has stored any Status Update messages destined to peer P while peer P was sleeping.
  • peer P When waking up, peer P needs to find out which successor is storing the Status Updates. If there are no stored Status Update messages, peer P needs to contact each of its successors to be sure that none of the successors has any stored messages for it. However, if peer P stored the empty Status Update request before entering sleep mode, peer P can stop the checks as soon as it finds a successor holding the empty Status Update request.
  • peer F Once peer F has obtained any stored Status Update messages, it learns the current status of its direct neighbours (i.e. successors and predecessors) and its routing neighbours (i.e. fingers). Note that peer F can delay contacting its fingers and predecessors until it has obtained the stored Status Update requests from one of the successors. This way peer F always avoids the cost of waking up those of its predecessors and fingers that are sleeping; after having obtained the stored Status Update messages, peer F knows the current status of its predecessors, fingers and those successors it did not contact while searching for the stored messages.
  • step 415 when peer F wakes up it changes from sleep to restricted or active status and sends a Status Update (4) message to one of its successors, Fjieighbour, to obtain the Status Update messages that the successor is storing for peer F.
  • This Status Update (4) message is received by peer Fjieighbour.
  • peer F jieighbour sends to peer F the original Status Update (3) message received from peer N.
  • peer F updates its routing table entry for peer N with the information in the Status Update message (3).
  • peer F jieighbour has to enter sleep mode before it has been able to deliver the Status Update (3) message to peer F
  • at step 420 forwards the Status Update message to Non-sleeping Fjieighbour.
  • peer Fjieighbour storing the Status Update (3) message destined for peer F, determines that all the other neighbours of peer F are sleeping when it is about to enter sleep mode. In that case, it is forced to send the Status Update (3) message to peer F, thereby waking up peer F.
  • the above mechanism achieves the best performance when the overlay network has, in addition to peers that support sleep mode, also peers that are always active (i.e. do not support sleep mode). Having peers that are always active is a realistic assumption in P2P networks that have both fixed and mobile peers, since many fixed peers (e.g. personal computers with fixed Internet access) are always active. If however the overlay network has only peers that support sleep mode, the approach described here seeks to minimize the number of successors that must be woken from sleep mode by a given peer in order to find out the current status of the nodes with which that given peer maintains connections.
  • the SMPU, RMPU and AMPU parameters can be mapped to different states of the WCDMA Radio Resource Control (RRC) state machine [3GPP TS 25.331, Yeh 2004].
  • RRC Radio Resource Control
  • This RRC state machine has two states in which the terminal is in sleep mode, and in which no data transmission is possible: these are the CELL PCH and URA PCH states.
  • the SMPU parameter specifies the maximum power consumption in these states.
  • the RRC state machine also has a CELL F ACH state, in which the terminal does not have a dedicated channel allocated to it, but is assigned a default, common or shared transport channel for both uplink and downlink transmissions.
  • This shared transport channel is suitable for bursty traffic such as web browsing, and consumes less energy than a dedicated channel.
  • the RMPU parameter is used to specify the power consumption in the CELL F ACH state.
  • the RRC state machine has a CELL DCH state, in which the terminal has dedicated channels allocated in both the uplink and downlink directions.
  • the CELL DCH state is suitable for traffic such as voice, streaming video and File Transfer Protocol (FTP) traffic.
  • FTP File Transfer Protocol
  • the energy consumption is higher than in the other states and so the AMPU parameter is used to specify the power consumption in the CELL DCH state.
  • WCDMA is used only as an example here.
  • the path finder mechanism of this embodiment is applicable to other wireless technologies as well as to non-wireless nodes that have different power consumption levels.
  • the Power Management Status (PMS) parameter is used in status update messages (as described above) to specify the next power management state that the sending node is about to enter.
  • Peer protocols such as the P2PSIP
  • the PMS parameter can be included as a binary value in peer protocol messages, as indicated in Table 2.
  • the three power usage parameters can be included as binary values. Assuming that a 12-bit value range, between 0 and 4095, is sufficient for each of the power usage parameters, a total of only 38 bits (36 for the power usage parameters, plus 2 for the PMS parameter) is required to be added to the peer protocol messages. Thus, sending the additional parameters represents a very small addition to the power consumption and cost of sending the message.
  • the node maintains a routing table containing, for each of its routing neighbours, a mapping between an overlay network address of the node and a physical locator of the node.
  • the node also maintains the power usage parameters and PMS parameters of the routing neighbours in, or associated with, the routing table for each routing neighbour.
  • the node determines (or receives an instruction over the overlay network) that a message is to be sent to a destination over the overlay network.
  • the node determines (depending on the DHT algorithm in use) a set of potential routing neighbours to forward the message to.
  • the node examines its routing table and determines the power usage parameters and PMS parameter of each of the selected routing neighbours.
  • it calculates (as described above) the cost in terms of power consumption of sending the message to each of the routing neighbours.
  • the message sends the message to the routing neighbour having the lowest power consumption cost.
  • Peer N first determines the set of alternative next hop peers for a message that is to be routed to a destination peer D.
  • the finger interval i.e. routing table entry
  • the finger interval i.e. routing table entry
  • the PMS parameters show that peers Fl, F2 and F3 are in sleep mode, whereas peer F4 is in the active state.
  • the optimal decision is to route the message to peer F4 as this involves no additional power consumption. Routing the message to Fl, F2 and F3 should be avoided because these peers would need to wake up from the sleep mode (i.e.
  • peer N needs to decide which one of the peers to wake up. To do this peer N calculates the increase in power consumption (RMPU - SMPU) involved in waking up each of the four peers and selects the peer with the smallest increase, which in this example is peer Fl, with an increase in power consumption of 9OmW.
  • RMPU - SMPU increase in power consumption
  • peer N can freely choose the next hop peer because there will be no increase in power consumption (or it could use a different method of selection, such as a load balancing mechanism).
  • Table 4 shows the power consumption and PMS parameters for a second example where peer Fl is in the sleep mode and peers F2, F3 and F4 are in the restricted mode.
  • node N should avoid waking up peer Fl, and choose from among peers F2, F3 and F4 as the preferred next hop peer for the current and future messages. This could mean that the selected peer will need to move from the restricted mode to the active mode (e.g. because it needs to increase its bandwidth to handle the increase in traffic).
  • Peer N should therefore select the peer for which the increase in power consumption when moving from the restricted to the active mode is the smallest.
  • the increases in power consumption for peers F2, F3 and F4 are 1000 mW, 750 mW and 675 mW, respectively. Thus, peer F4 should be selected.
  • Figure 6 illustrates schematically a node 1 of an overlay network suitable for implementing the described method.
  • the node comprises a state determination block 2 which is able to determine the operating state to which the node is about to switch, i.e. sleep, restricted, or active.
  • a power consumption block 3 records the power consumptions in the various operating states.
  • an information disseminator 4 is configured to provide the required status updates to peer nodes (neighbours and fingers).
  • a packet router 5 receives packets sent via the overlay network and forwards them appropriately according to instructions provided by a decision block 6.
  • DHT based overlay networks can route messages in either an iterative or recursive fashion.
  • the embodiments described above are based on an overlay network using recursive routing, in which a peer forwards the message to the next hop peer on the path towards the destination peer.
  • a peer X when receiving a message destined for peer Y, forwards the message destined for Y to the next hop peer (or directly to peer Y if peer X is aware of the contact address of peer Y).
  • peers do not forward messages. Instead, peers only return contact addresses of other nodes.
  • peer X receives a look-up query from peer W with peer Y as a destination, peer X will return to peer W the contact address of peer Y (if peer X knows it), or the contact address of the next hop peer on the path towards peer Y.
  • iterative DHT algorithms such as Kademlia all routing decisions are made by the lookup initiator (i.e. the originating peer).
  • a peer when a peer returns the information about the other potential next hop nodes (£-nodes in Kademlia) it includes the power usage parameters (SMPU, RMPU, AMPU) and PMS of the other nodes together with the routing table entries, so that the lookup initiator can perform the calculations needed to make the optimal routing decision.
  • the routing decision is made by the forwarding node, so there is no need to send the power usage parameters from node to node during lookups.
  • the receiver of a lookup request replies with a lookup response to the lookup initiator.
  • the lookup response includes the routing table entries of the nodes the responder knows about closest to the lookup target.
  • the responder can simply include the SMPU, RMPU, AMPU and PMS parameters into the lookup response.
  • the lookup initiator can then use these parameters to calculate the optimal next hop node on the path towards the target node. For instance, in an overlay based on the Kademlia DHT algorithm, instead of returning ⁇ Node-ID, IP address, port> triples, the responder returns ⁇ Node-ID, IP address, port, SMPU, RMPU, AMPU, PMS > septuples of the k nodes it knows about closest to the target node.
  • the peers participating in an iterative DHT based overlay network maintain alternative contacts for each routing table entry.
  • Some DHT algorithms such as Kademlia, maintain multiple contacts for each routing table entry by default.
  • the routing table entries in Kademlia are called ⁇ -buckets, and each k- bucket contains the contact information of up to k peers.
  • a node When receiving a lookup request, a node returns information to the lookup initiator about the k nodes it knows about closest to the lookup target. This information is no longer a triple (as described above), but is a septuple ⁇ Node-ID, IP address, port, SMPU, RMPU, AMPU, PMS> for each k node.
  • the lookup initiator uses this information to construct a list ordered on the basis of the cost (in terms of power consumption) of contacting each of the possible next hop nodes.
  • the next round of iterative lookups is then done by selecting a nodes with the lowest cost, and sending iterative lookup requests to these nodes. Higher cost peers are only contacted if the lower cost peers fail to return responses with addresses of nodes that are closer to the lookup target.
  • DHT algorithms do not maintain redundant routing table entries, but can easily be modified to do so.
  • one way to achieve this is to maintain multiple finger pointers for each finger interval.
  • Alternative finger pointers can be obtained, for instance, by asking each finger to return its successor pointers.
  • the finger peer and its successors can then be used to construct a finger pointer set.
  • the forwarding node can then choose the next hop node from among the nodes in the finger pointer set based on the power consumption information of the nodes.
  • a peer can also send information about its remaining battery capacity to its routing neighbours. As an example, a peer can inform its neighbours that if it remains in the active state (power consumption stays at AMPU) it will run out of battery capacity in 15 minutes. This information can be used to optimize the routing decision even further. More specifically, it can be used to prevent the situation that a low cost peer is woken up from sleep mode when it is close to running out of battery power. This can be implemented as a configurable limit so that a peer whose remaining battery time is less than a predefined amount will not be woken up from sleep mode unless absolutely necessary (such as when it is the lookup target).
  • the remaining battery time can be communicated to other peers by including it as a new parameter in Connect and Status Update requests, and/or in periodic DHT maintenance messages such as keep-alive messages and routing table synchronization messages.
  • This new parameter is here referred to as the Remaining Battery Time (RBT) parameter, and it contains the remaining battery time of the sender of the message in seconds.
  • RBT Remaining Battery Time
  • a non-battery powered peer may set the value of the RBT parameter to a special value such as '-1 ' to indicate to other peers that they do not need to take into account the remaining battery power of the peer in question.
  • the power usage parameters may also be used by other types of peers in situations where those peers have different operating power consumption levels, for example non-battery powered peers having a wired network connection (e.g. a peer running on a personal computer).
  • non-battery powered peers having a wired network connection e.g. a peer running on a personal computer.
  • Some overlay networks operate DHTs using super peers, there are two types of nodes: super peers and clients.
  • super peers participate in the operation of the DHT (i.e. route messages and store resources in the overlay, and participate in DHT maintenance operations), whereas clients use the services of the overlay network through one or more super peers.
  • a mobile peer with sufficient resources may be selected to serve as a super peer in a hierarchical P2P overlay network.
  • the power usage parameters and PMS parameter of the super peers may be used so that a client that is connected to multiple super peers can operate the economic path finder mechanism of the present invention to select the lowest cost super peer, in terms of power consumption, from among the set of super peers to which the client is connected.
  • an application running on a mobile terminal needs to have access to the radio resource control (RRC) state information.
  • RRC radio resource control
  • This information can be accessed by an application running on the native platform of the terminal, which application may be provided by the terminal vendor.
  • trusted third- party applications may also access this information through a vendor-specific application programming interface (API) on the terminal, provided that the API is configured to access to such information.
  • API application programming interface
  • support from a vendor-provided API is not required if the information is accessed by a Java application running on the terminal.
  • Such an application may be obtained by a terminal by way of a Java Specification Request (JSR).
  • JSR Java Specification Request
  • a third party P2P application does not have access to a terminal's RRC state information, or where the terminal is configured not to provide its power consumption information to third parties (i.e. where the relevant API is private).
  • the third party application may obtain the power usage parameters by reference to the model of the terminal.
  • this information may be available from a web server, or it may be included as data provided with the P2P application.
  • the P2P application may be configured to determine the model of the terminal by reference to a system property. For example, system properties of terminals are made available to all Java Micro Edition (JME) based applications.
  • JME Java Micro Edition
  • the P2P application that does not have access to RRC state information is unable to determine the PMS status of the terminal, and so is unable to learn if the terminal is asleep or in an active or restricted mode. In that case, the P2P application sets the PMS parameter to 'unknown' in the peer protocol messages that it originates. Routing decisions where the PMS parameters include one or more 'unknown' parameters are processed as follows.
  • next hop nodes contains at least one peer in active mode and one or more peers whose power management status is unknown (and possibly, further peers whose status is 'restricted' or 'sleep'), then the message is always routed to one of the active peers. This avoids any risk of increasing the power consumption of any peers whose status is unknown, but which happen to be in non-active modes.
  • next hop nodes If there are no active peers in the set of alternative next hop nodes, but there is one or more peers whose power management status is unknown (and possibly further peers whose status is 'restricted' or 'sleep'), then a peer is selected from the set of peers with unknown status and with the lowest AMPU value.
  • the assumption in this case is that all the peers whose power management status is unknown are in the active state. This avoids routing messages to nodes with large active mode power consumption, while still avoiding routing to peers are known to be sleeping or in restricted mode.

Abstract

A node for use within an overlay network, such as a Distributed Hash Table based overlay network, and which is configured to route packets across the overlay network. The node comprises means for making a routing decision based upon a knowledge of the power consumption levels and/or power availability of a set of peer nodes in the overlay network.

Description

ROUTING MECHANISM FOR DISTRIBUTED HASH TABLE BASED
OVERLAY NETWORKS
Technical Field
The present invention relates to a routing mechanism for a distributed hash table based overlay network. The invention is applicable in particular to an optimised procedure for determining the routing of resource requests in peer-to-peer networks.
Background
Peer-to-peer or P2P networks make use of the pooled resources of participating nodes including processing capabilities and communication bandwidth to facilitate a wide variety of services including file sharing and Voice-over-Internet Protocol (VoIP) telephony. In the absence of central servers, particular P2P services may make use of "overlay networks" to optimise resource location. An overlay network comprises nodes connected by virtual links representing paths extending across possibly many physical links in the underlying network (e.g. the Internet). Each node in the overlay network maintains a routing table containing a set of links to certain other nodes within the overlay network. Resource requests are passed between nodes until they arrive at a node which is responsible for that resource.
A hash table is a data structure that associates keys with values. A key can be, for instance, a person's name and the associated value that person's contact address (e.g. email address or Session Initiation Protocol (SIP) Uniform Resource Identifier (URI)). The primary operation a hash table supports is lookup - i.e. given a key, the hash table finds the corresponding value. Distributed Hash Tables (DHTs) provide a lookup service similar to a hash table. However, unlike regular hash tables, DHTs are decentralized hash tables that are used in distributed systems or networks. In a DHT, the responsibility for maintaining mappings from names to values is distributed among the nodes participating in the system. This is achieved by partitioning the key space among the participating nodes. DHTs provide an efficient means for mapping resource names ("keys") to locations within an overlay network. DHTs make use of a hashing algorithm to map keys, e.g. song titles, SIP URIs, etc, to a finite value space, e.g. 128 bits. The hashing algorithm is chosen to ensure a relatively uniform spread of hash values across the value space. Thus, for example, the hashing of 100 song titles will likely result in 100 hash values that are relatively evenly spaced across the value space. Nodes within an overlay network are identified by usernames, which are themselves hashed into respective hash values. Each node then becomes responsible for a set of hash values within the value space which neighbour its own value. In practice, a node will store resource locations (e.g. IP addresses) from which resources matching the resource names that it "owns", can be obtained. When a node in the overlay network receives a request for a resource, the node determines whether or not it owns the corresponding hash value. If so, it returns the location of the resource to the requester (via the overlay network). If it does not own the hash value, it inspects its routing table to identify that node within the table which has a hash value closest to the hash value of the request, and forwards the request to that node. The receiving node repeats the procedure, and so on until the request arrives at the node which does own the hash value corresponding to the request and which therefore knows the resource location.
In some DHTs such as Chord [I. Stoica, R. Morris, D. Karger, M. F. Kaashoek and H. Balakrishnan: "Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications" - Proceedings of the ACM SIGCOMMOl Conference, August 2001, San Diego, California, USA.], the entries in the routing table are called finger pointers. In addition to the routing table, each node also maintains another data structure called the neighbour list. The neighbour list contains pointers to the immediate successors and predecessors (i.e. neighbours) of the node in the overlay network. A node picks its neighbours according to the network's topology.
The difference between neighbours (which can be either predecessors or successors) and fingers is illustrated in Figure 1, which shows an overlay network having a ring topology (only a small number of the nodes within the ring are illustrated). Each node maintains a routing table containing the locations and hash values of a small number of succeeding and preceding nodes in the ring, as well as for a small number of more distant nodes. In the illustrated network, a Node X maintains the locations of two successor nodes, two predecessor nodes and three remote nodes in its routing table. For instance, in the Chord DHT algorithm referred to above, each node n maintains a routing table with up to m fingers (m is chosen so that it is equal to the number of bits in node identifiers). The zth entry in the table at node n contains the identity of the first node s that succeeds n by at least 2'~l on the identifier ring.
Figure 2 shows an example of a Chord ring where m=5, meaning that each node maintains 5 fingers. Node N divides the identifier ring into five different finger intervals, the ranges of which are listed in Table 1. For instance, the finger for the interval 3, F3, is the first node that succeeds N by at least 23"1 = 4 on the identifier ring.
Figure imgf000004_0001
Table 1 - Ranges of finger intervals for node N
The Chord DHT algorithm can also be extended so that it maintains multiple alternative finger pointers for each finger interval. One way to achieve this is to ask the primary finger peer to return a list of its successor nodes on the Chord ring, and then maintain pointers to these nodes in addition to the primary finger pointer.
Whilst a larger number of entries within the routing tables can make the network more efficient in terms of routing and more robust against node withdrawal, large tables are difficult to maintain and therefore increase the unreliability of the network. A node within the overlay network ensures that the information in its routing table is up to date by attempting to contact its neighbours periodically.
Examples of other DHT topologies include tree topologies. For instance, the Kademlia DHT [P. Maymounkov and D. Mazieres: "Kademlia: A peer-to-peer information system based on the xor metric", Proceedings of IPTPS02, Cambridge, USA, March 2002] organizes nodes in a binary tree-like structure. For example, if 160-bit node identifiers are used, then, in Kademlia, for every value of /, where 0 < i < 160 , each node keeps a list of triples of <IP address, port, Node-ID> for nodes of distance between 2' and 2'+l from itself. These lists are called ^-buckets, and each ^-bucket can contain up to k entries. The Kademlia routing table is a binary tree whose leaves are ^-buckets. Figure 3 shows a very simple example of a network where a node 110 maintains three k- buckets shown as three circles 1, 2 and 3. ^-bucket 3 contains nodes whose distance to node 001 is 1, ^-bucket 2 nodes with distance 2 or 3, and ^-bucket 1 nodes whose distance is between 4 and 7.
Lookups in Kademlia work in an iterative manner: first, the lookup initiator picks a nodes, these being nodes a distance a from its closest non-empty ^-bucket (a typical value for a is 3). Next, the initiator sends parallel lookup requests to the a nodes it has chosen. Each recipient of a lookup request returns triples for the k nodes it knows about closest to the target ID. These triples can come from a single ^-bucket or they may come from multiple ^-buckets if the closest ^-bucket is not full. However, if a recipient of a lookup request holds the resource being searched for, it simply returns that resource in the response it generates to the lookup request. The lookup procedure also has a recursive step (not to be confused with recursive routing described below) in which the initiator resends the lookup request to nodes it has learned about from previous lookup responses. The lookup process ceases when the initiator receives the desired resource.
As broadband wireless technologies such as Wideband Code Division Multiple Access (WCDMA) and High Speed Packet Access (HSPA) become more widespread, it is expected that there will be a growth in the use by mobile terminals of Peer-to-Peer (P2P) applications such as Peer-to-Peer Session Initiation Protocol (P2PSIP) and file sharing. This poses a problem for mobile terminals that typically have a limited battery capacity, since a mobile terminal acting as a peer in a DHT -based P2P overlay network needs to relay traffic of other users and to send and receive frequent DHT maintenance messages. In both second generation (2G) and third generation (3G) mobile networks it has been found that frequent messages sent on persistent connections consume significant amounts of energy. Most mobile terminals have a sleep mode, which is used to save running down the terminal battery when the device is switched on, but not actively transmitting or receiving messages. DHTs require frequent transmission of data over the radio interface and can thus drain the mobile terminal's battery quickly, because each message forces the terminal to frequently change (i.e. wake up) from sleep mode to active mode.
The present invention has been conceived with the foregoing in mind.
Summary
The present invention proposes a mechanism that allows peers in an overlay network to exchange information about their power consumption. It also allows a peer to inform its connected peers whenever it is about to switch from sleep mode to active mode and vice versa. This information can then be used to optimize the routing performance of the routing algorithm in terms of power consumption.
According to a first aspect of the present invention there is provided a node for use within an overlay network and comprising a decision unit for making a routing decision based upon a knowledge of the power consumption levels and/or power availability of a set of peer nodes in the overlay network.
By way of example, the node may be a mobile user terminal.
In the case where said set of peer nodes are routing neighbour nodes, the node may comprise a memory for storing a routing table containing, for each routing neighbour node, a mapping between an overlay network address of the node and a physical locator of the node, and parameters in, or associated with, the routing table for each routing neighbour. The parameters include: 1) power usage parameters indicating a level of power consumption for each of a plurality of operational states, and
2) a power management status, PMS, parameter indicating a current, or most recently notified, operational state of the routing neighbour; and 3) a processing unit configured to determine a routing neighbour to forward a message to, based on the power usage parameters and the PMS parameters of the routing neighbours.
The node may be configured to receive a status update message from a routing neighbour indicating that the routing neighbour is about to change its operating state, the status update message including the routing neighbour's new PMS parameter for the operating state it is about to enter. The receiving node stores the new PMS parameter in the routing table entry for the routing neighbour.
The node may be configured to determine from the parameters of the routing neighbours in the routing table, if any of the routing neighbours are in a sleep mode, in which case it stores the status update message in the overlay network for later delivery to the sleeping routing neighbour when it changes state out of the sleep mode to an active or restricted mode.
The node may be configured to provide power consumption levels for each of a plurality of operational states of the node to other nodes in the overlay network, and to notify one or more peer nodes in the network of an impending change in operational state of the node. Again, the node may be a mobile user terminal.
The node may comprise a memory storing power usage parameters indicative of said power consumption levels, and a processing unit configured to provide said power usage parameters in peer protocol messages sent to other nodes in the overlay network, and to provide a PMS parameter indicating an operational state that the node is about to enter in a notification sent to other nodes of the network. The node may be further configured to send a status update message to one or more of routing neighbours within said overlay network indicating that it is about to change its operating state, the status update message including the node's PMS parameter for the operating state it is about to enter.
The node may be configured to provide information relating to its remaining battery capacity to other nodes of the network, wherein the remaining battery capacity comprises an indication that if the node remains in an active state it will run out of battery capacity within a certain amount of time. The node may also be configured to indicate that its power supply is unlimited, e.g. is connected to a mains supply.
In the case of a mobile terminal, the node may be configured to access a Radio Resource Control, RRC, state machine to determine operating state information. For example, the node may comprise an application running on a native platform of the node for accessing the RRC state machine. The node may comprise a vendor-specific application programming interface (API) configured to access the RRC state machine, or a Java application obtained by way of a Java Specification Request (JSR), the Java application enabling access to the RRC state machine.
The node may be configured to obtain power usage parameters of a node by reference to a terminal model of the node, and from a web server, or from data provided with a P2P application residing at the node. The node may determine the model of the terminal by reference to a system property.
In the case where a node is unable to determine the operating state of another peer, the node may configured to set a PMS parameter to 'unknown' in peer protocol messages that it originates.
By way of example, the power consumption levels may be specified in terms of power usage parameters that include one or more of: a Sleep Mode Power Usage, SMPU, parameter specifying the power consumption of the node when it is in a power saving, or sleep, mode; an Active Mode Power Usage, AMPU, parameter specifying the power consumption of the node when it is operating in an active mode; and a Restricted Mode Power Usage, RMPU, parameter specifying power consumption when the node is operating in a restricted mode,
A PMS parameter may indicate an operational state selected from: a power saving, or sleeping, state; an active state; a restricted state; and an unknown state.
According to a second aspect of the present invention there is provided a method of making a routing decision at a routing node of an overlay network. The method comprises selecting one or more of a set of peer nodes in the overlay network to forward a message to based upon a knowledge of the power consumption levels and/or power availability of the peer nodes.
The overlay network may employ a distributed hash table, DHT, and wherein the overlay network comprises nodes that maintain routing tables. A routing table contains, for each of a set of routing neighbour nodes in the overlay network, a mapping between an overlay network address of the node and a physical locator of the node. The method further comprises at each of said overlay network nodes: maintaining parameters in, or associated with, the routing table for each routing neighbour, the parameters including: power usage parameters indicating a level of power consumption for each of a plurality of operational states, and a power management status, PMS, parameter indicating a current, or most recently notified, operational state of the routing neighbour.
The step of maintaining parameters may comprise receiving a status update message from a routing neighbour, the status update message including a PMS parameter specifying the next operational state that the routing neighbour is going to enter, and updating the routing neighbour's PMS parameter in, or associated with, its routing table.
The method may comprise checking the PMS status of the routing neighbours and either sending the status update message to a routing neighbour if it is not sleeping, or if it is sleeping storing the message in the overlay network for later delivery to the routing neighbour. The step of storing the status update message in the overlay network comprises checking the PMS status of direct routing neighbours of the sleeping routing neighbour to identify a non- sleeping direct routing neighbour, and sending the status update message destined for the sleeping routing neighbour to the non-sleeping direct neighbour for storage. When the non-sleeping direct routing neighbour is about to enter the sleep mode, the method further comprises forwarding the status update message to another non-sleeping direct routing neighbour of the sleeping routing neighbour.
The method may be advantageously employed in a Peer-to-Peer, P2P, network, information relating to the power consumption levels and/or power availability being provided in messages sent between nodes using a peer protocol such as P2PSIP.
The step of selecting a routing neighbour to forward a message to may comprise: determining a set of alternative routing neighbours as next hop peer nodes for a message that is to be routed to a destination peer; checking the operating state of the next hop peer nodes; and either forwarding the message to a next hop peer node if no change of state will be required when the message is sent to that node; or checking the power consumption levels of the next hop peer nodes if there are no nodes that will not require a change of state, calculating the increase in power consumption involved in changing state of each of the next hop peers, and forwarding the message to the next hop peer requiring the smallest increase in power consumption.
In the case of a DHT based overlay network, the DHT operates using a Chord algorithm, or a Kademlia algorithm. Alternatively, the DHT based overlay network may route messages in a recursive fashion or in an iterative fashion.
In at least certain embodiments of the invention, the routing neighbours are super peers in a hierarchical overlay network.
The operating states of routing neighbours may be specified in terms of PMS parameters that include one or more 'unknown' status parameters, in which case the method comprises the steps of: A) if the set of alternative next hop nodes contains at least one peer in an active mode forwarding the message to one of the peers in active mode; and
B) if the set of alternative next hop nodes contains no peers in the active mode, selecting a peer from among the peers with unknown status having the lowest power consumption in the active mode.
It is an advantage of at least certain embodiments that operation of the economic path finder mechanism described herein enables significant reductions in the levels of power consumption associated with using P2P applications in mobile terminals. This is achieved by allowing peers to exchange information related to their power consumption levels in different operating states, and information about their current operating states (power management status - e.g. sleep mode or active mode). Since a peer is informed of the power consumption and power management status of its routing neighbours, it can optimize routing decisions based on this information. This allows the network to save energy by routing messages to neighbours at a low cost (i.e. increase in power consumption) and extends the lifetime of battery-powered terminals. The mechanism is also applicable to other types of peers and can be usefully employed by all types of peers that operate at different power consumption levels and have a need to conserve energy. The mechanism can also be extended to take into account the remaining battery capacity of wireless nodes when making routing decisions.
It is also advantageous that the economic path finder mechanism can be applied to overlay networks employing any DHT algorithm, and that the mechanism is applicable to both iterative and recursive routing modes. The mechanism can also be used to select low cost (in terms of power consumption) super peers.
Brief Description of the Drawings
Figure 1 illustrates schematically a DHT -based ring overlay network comprising a number of nodes;
Figure 2 further illustrates a DHT -based ring overlay network, showing neighbourhood relations between nodes;
Figure 3 illustrates a simple example of a Kademlia DHT -based tree overlay network. Figures 4a and 4b illustrate signal flows in operation of a routing mechanism in accordance with embodiments of the invention;
Figure 5 is a flow diagram of a method in accordance with embodiments of the invention; and Figure 6 illustrates schematically a routing node of an overlay network.
Detailed Description
An economic path finder mechanism embodiment is described below and which uses four new parameters carried in peer protocol messages. Peer protocol is the protocol that nodes participating in a P2P overlay network use to exchange information with each other. These four new parameters are called Sleep Mode Power Usage (SMPU),
Restricted Mode Power Usage (RMPU), Active Mode Power Usage (AMPU) and
Power Management State (PMS). In addition to peer protocol messages, the same parameters are also stored in the routing tables maintained by each of the peers in the overlay network.
The Sleep Mode Power Usage (SMPU) parameter specifies the power consumption (e.g. in milliwatts) of a peer device when it is in its power saving (i.e. sleep) mode. The Active Mode Power Usage (AMPU) specifies the power consumption (e.g. in milliwatts) of the device when it is operating in active mode, for instance when a mobile terminal has been allocated dedicated uplink and downlink radio channels. The Restricted Mode Power Usage (RMPU) parameter specifies power consumption when the device is operating in a restricted mode (e.g. when a mobile terminal does not have dedicated uplink and downlink channels allocated, but uses a default common or shared transport channel for both uplink and downlink transmissions). The Power Management Status (PMS) parameter, which is used in status update messages, specifies the next power management state that the sender is about to enter. The parameter can have one of four values: 'sleep', 'restricted', 'active' and 'unknown'.
Figures 4a and 4b illustrate the signal flow sequences between peers. In this illustrated example, the PMS parameters of the peers are always 'sleep', 'restricted' or 'active'. Situations in which the 'unknown' parameter is used are described later. Peer N is a typical node in an overlay network (see, for example Figure 2). Peer F is a routing neighbour, or finger of peer N, and peer F jieighbour is a direct neighbour of peer F. If peer N wishes to establish a connection with peer F, peer N includes the SMPU, RMPU and AMPU parameters into an initial request, henceforth referred to as the Connect request. This is illustrated in Figure 4a at step 401. When generating a response to the Connect request (step 402), finger F will include its own SMPU, RMPU and AMPU values in the response. If either peer, N or F, does not support the power saving mode, it either does not include the SMPU and RMPU parameters in the message or it sets all the power usage parameters to have the same value such that SMPU = RMPU = AMPU. In addition, these power usage parameters are included in a response to a status update message which will be described in more detail below.
The Connect request constructed and sent by peer N (step 401) includes the PMS parameter as well as the power usage parameters SMPU, RMPU and AMPU. The value of the PMS parameter is set either to 'restricted' or 'active' depending on which state peer N is in (the value cannot be 'sleep' since peer N is transmitting data). Likewise, peer F includes its current power management state PMS parameter in the Connect response to peer N (step 402) together with its three power usage parameters (SMPU, RMPU and AMPU). Upon receiving the Connect response, at step 403 peer N stores the values of the three power usage parameters into the routing table entry it maintains for peer F. In addition, at step 404 peer N sets the value of the PMS parameter to the value returned by peer F.
If peer F changes its power management state, then, as shown at step 405, it informs each peer with which it is maintaining a connection (which includes peers N and
F jieighbour) by sending a status update message, Status Update (1). Status Update (1) contains the PMS parameter, the value of which has been set to 'active', 'restricted' or
'sleep', depending on which state the sender, peer F, is about to enter. At step 406, when peer N receives the Status Update (1) message, it updates the routing table entry it maintains for peer F with the new value of the PMS parameter received from peer F.
A peer should avoid sending status update messages to routing neighbours that are sleeping, since this would force the peers to wake up and thus increase their energy consumption. However, sleeping peers should still receive the status update messages as soon as they wake up, so that they will have up-to-date information about the status of the peers with which they are maintaining connections. This is achieved by making nodes in the overlay network responsible for storing status update messages while their destination peers are sleeping, and delivering the status update messages to the peers when they wake up.
As shown in Figure 4b, at step 407 peer N is about to switch to the sleeping mode, and thus needs to send a status update message to its routing neighbours, including peer F. Peer N first checks its routing table to check the PMS status of peer F (peer N maintains this information in the routing table entry it has for peer F, as described above). If peer F is not sleeping, peer N can simply send the message Status Update (2) to peer F as at step 408. However, if peer F is sleeping, then at steps 409-412 peer N stores the status update message in the overlay network. Note that it is not sufficient for peer N to store the message itself because it is about to enter the sleep mode. When in the sleep mode, it will not know when peer F wakes up, and will not be able to deliver the message while it is sleeping.
As was described above, multiple alternative finger pointers can be maintained for a single finger interval by asking the primary finger peer to return a list of its successors, and by maintaining a connection with all or a subset of these successors. Thus, peer F is the primary finger of peer N, which also maintains a connection with the direct neighbours of peer F, including F_neighbour. Therefore at step 409 peer N selects one successor of peer F that either does not support sleep mode (i.e. is always active) or is currently awake. If peer F has successors that are always active, then peer N chooses from the set of those successors the one that is closest to peer F. If peer F has only successors that support sleep mode and some of them are awake, peer N chooses from the set of active successors the one that is closest to peer F. In either case, peer N next sends to the selected successor, Fjieighbour, a Status Update (3) message at step 410, with a destination Peer-ID of the message set to that of peer F.
On receiving the Status Update (3) message, at step 411 peer Fjieighbour checks the destination Peer-ID of the message and determines that the intended recipient is peer F. Since peer F is one of peer F ^neighbour's direct neighbours, and it knows that peer F is sleeping, at step 412 peer F jieighbour stores the Status Update (3) message to be delivered to peer F as soon as peer F wakes up. However, if at step 409 peer N determined that none of the direct neighbours of peer F is awake (as shown at step 409a), then at step 413 peer N is forced to send the Status Update (3) message directly to peer F, so that peer F wakes up at step 414.
Assuming that the Status Update message is stored at a neighbour of F, then, if another successor of peer F that is closer to peer F becomes active, peer F jieighbour should transfer the Status Update messages that it is storing to the closer successor.
Peer F may wake up for a variety of reasons - i.e. not necessarily because peer F receives a Status Update message, as at step 414, but for any reason such as because peer F's user wants to start a call. When peer F wakes up, it first needs to obtain any Status Update messages that the overlay network has been storing while peer F has been sleeping. This allows peer F to learn the current status of its neighbours. If peer F has successors that are always active, then peer F can get the stored Status Update messages from the closest always-active successor. However, if peer F does not have any successors that are always active, it cannot know which one of the successors is storing the Status Update messages that were sent to peer F while it was sleeping. In addition, peer F does not know the current status of its successors. Therefore, peer F has to contact its successors one by one to learn which one of the successors is storing the Status Updates. Since the Status Update messages are always stored by the closest active successor, peer F starts by contacting its closest successor. Peer F can stop contacting further successors as soon as it finds the successor that is holding the stored Status Update messages.
Each peer P that is about to enter sleep mode should also store an empty Status Update message addressed to itself in one of its successors. If peer P has successors that do not support sleep mode (i.e. are always active), the empty Status Update should be stored in the closest such successor. If all of the successors of peer P support sleep mode, then peer P should select from the set of active successors the one that is closest to peer P. If all of the successors are sleeping, peer P should not store an empty Status Update request, because doing so would force it to wake up one successor. The benefit of storing the empty Status Update request is that when peer P wakes up, it is possible that no other node has stored any Status Update messages destined to peer P while peer P was sleeping. When waking up, peer P needs to find out which successor is storing the Status Updates. If there are no stored Status Update messages, peer P needs to contact each of its successors to be sure that none of the successors has any stored messages for it. However, if peer P stored the empty Status Update request before entering sleep mode, peer P can stop the checks as soon as it finds a successor holding the empty Status Update request.
Once peer F has obtained any stored Status Update messages, it learns the current status of its direct neighbours (i.e. successors and predecessors) and its routing neighbours (i.e. fingers). Note that peer F can delay contacting its fingers and predecessors until it has obtained the stored Status Update requests from one of the successors. This way peer F always avoids the cost of waking up those of its predecessors and fingers that are sleeping; after having obtained the stored Status Update messages, peer F knows the current status of its predecessors, fingers and those successors it did not contact while searching for the stored messages.
As shown in Figure 4b at step 415, when peer F wakes up it changes from sleep to restricted or active status and sends a Status Update (4) message to one of its successors, Fjieighbour, to obtain the Status Update messages that the successor is storing for peer F. This Status Update (4) message is received by peer Fjieighbour. Then at step 416, peer F jieighbour sends to peer F the original Status Update (3) message received from peer N. At step 417 peer F updates its routing table entry for peer N with the information in the Status Update message (3).
As shown at step 418 in Figure 4b, where peer F jieighbour has to enter sleep mode before it has been able to deliver the Status Update (3) message to peer F, then at step 419 it determines from its own routing table another neighbour of peer F that is not sleeping {N on- sleeping Fjieighbour), and at step 420 forwards the Status Update message to Non-sleeping Fjieighbour. Also, it is possible that at step 419 peer Fjieighbour, storing the Status Update (3) message destined for peer F, determines that all the other neighbours of peer F are sleeping when it is about to enter sleep mode. In that case, it is forced to send the Status Update (3) message to peer F, thereby waking up peer F.
Note that the above mechanism achieves the best performance when the overlay network has, in addition to peers that support sleep mode, also peers that are always active (i.e. do not support sleep mode). Having peers that are always active is a realistic assumption in P2P networks that have both fixed and mobile peers, since many fixed peers (e.g. personal computers with fixed Internet access) are always active. If however the overlay network has only peers that support sleep mode, the approach described here seeks to minimize the number of successors that must be woken from sleep mode by a given peer in order to find out the current status of the nodes with which that given peer maintains connections.
By way of an example, the SMPU, RMPU and AMPU parameters can be mapped to different states of the WCDMA Radio Resource Control (RRC) state machine [3GPP TS 25.331, Yeh 2004]. This RRC state machine has two states in which the terminal is in sleep mode, and in which no data transmission is possible: these are the CELL PCH and URA PCH states. In this case, the SMPU parameter specifies the maximum power consumption in these states. The RRC state machine also has a CELL F ACH state, in which the terminal does not have a dedicated channel allocated to it, but is assigned a default, common or shared transport channel for both uplink and downlink transmissions. This shared transport channel is suitable for bursty traffic such as web browsing, and consumes less energy than a dedicated channel. In this case, the RMPU parameter is used to specify the power consumption in the CELL F ACH state. Finally, the RRC state machine has a CELL DCH state, in which the terminal has dedicated channels allocated in both the uplink and downlink directions. The CELL DCH state is suitable for traffic such as voice, streaming video and File Transfer Protocol (FTP) traffic. The energy consumption is higher than in the other states and so the AMPU parameter is used to specify the power consumption in the CELL DCH state. It should be noted that WCDMA is used only as an example here. The path finder mechanism of this embodiment is applicable to other wireless technologies as well as to non-wireless nodes that have different power consumption levels.
The Power Management Status (PMS) parameter is used in status update messages (as described above) to specify the next power management state that the sending node is about to enter. Peer protocols (such as the P2PSIP) typically use binary encoding. The PMS parameter can be included as a binary value in peer protocol messages, as indicated in Table 2.
Table 2 - PMS parameter values
Figure imgf000018_0001
In addition, the three power usage parameters (SMPU, RMPU and AMPU) can be included as binary values. Assuming that a 12-bit value range, between 0 and 4095, is sufficient for each of the power usage parameters, a total of only 38 bits (36 for the power usage parameters, plus 2 for the PMS parameter) is required to be added to the peer protocol messages. Thus, sending the additional parameters represents a very small addition to the power consumption and cost of sending the message.
Knowledge of the power usage parameters and the PMS parameter of its peers enables a peer node N to make routing decisions to minimise the power consumption. An overview of the use of the economic pathfinder mechanism of the present invention by a node of an overlay network that employs a DHT is illustrated in the flow diagram of Figure 5. The node maintains a routing table containing, for each of its routing neighbours, a mapping between an overlay network address of the node and a physical locator of the node. The node also maintains the power usage parameters and PMS parameters of the routing neighbours in, or associated with, the routing table for each routing neighbour. At step 501 the node determines (or receives an instruction over the overlay network) that a message is to be sent to a destination over the overlay network. At step 502 the node determines (depending on the DHT algorithm in use) a set of potential routing neighbours to forward the message to. At step 503, the node examines its routing table and determines the power usage parameters and PMS parameter of each of the selected routing neighbours. At step 504 it calculates (as described above) the cost in terms of power consumption of sending the message to each of the routing neighbours. Finally, at step 505 it sends the message to the routing neighbour having the lowest power consumption cost.
This will be described in more detail in relation to two examples. Peer N first determines the set of alternative next hop peers for a message that is to be routed to a destination peer D. In our first example we will assume that the finger interval (i.e. routing table entry) that is closest to D's identifier contains the four peers Fl, F2, F3 and F4 listed in Table 3. The PMS parameters show that peers Fl, F2 and F3 are in sleep mode, whereas peer F4 is in the active state. In this case the optimal decision is to route the message to peer F4 as this involves no additional power consumption. Routing the message to Fl, F2 and F3 should be avoided because these peers would need to wake up from the sleep mode (i.e. their power consumption would increase from SMPU to RMPU) in order to be able to receive new messages. The assumption is that a peer in sleep mode transitions first to the restricted mode when it wakes up. The peer may enter the active mode later if it needs higher bandwidth (for example). Therefore, the increase in power consumption in waking up a peer is always calculated by subtracting SMPU from RMPU.
Table 3 - First example of alternative finger pointers for a finger interval
Figure imgf000019_0001
Figure imgf000020_0001
A different situation arises if all the peers Fl, F2, F3 and F4 are in sleep mode. In that case peer N needs to decide which one of the peers to wake up. To do this peer N calculates the increase in power consumption (RMPU - SMPU) involved in waking up each of the four peers and selects the peer with the smallest increase, which in this example is peer Fl, with an increase in power consumption of 9OmW.
Note that if all of the peers Fl, F2, F3 and F4 are in active mode, all are operating at peak power consumption. In that case peer N can freely choose the next hop peer because there will be no increase in power consumption (or it could use a different method of selection, such as a load balancing mechanism).
Table 4 shows the power consumption and PMS parameters for a second example where peer Fl is in the sleep mode and peers F2, F3 and F4 are in the restricted mode. In this case, node N should avoid waking up peer Fl, and choose from among peers F2, F3 and F4 as the preferred next hop peer for the current and future messages. This could mean that the selected peer will need to move from the restricted mode to the active mode (e.g. because it needs to increase its bandwidth to handle the increase in traffic). Peer N should therefore select the peer for which the increase in power consumption when moving from the restricted to the active mode is the smallest. The increases in power consumption for peers F2, F3 and F4 are 1000 mW, 750 mW and 675 mW, respectively. Thus, peer F4 should be selected.
Table 4 - Second example of alternative finger pointers for a finger interval
Figure imgf000020_0002
Figure imgf000021_0001
Figure 6 illustrates schematically a node 1 of an overlay network suitable for implementing the described method. The node comprises a state determination block 2 which is able to determine the operating state to which the node is about to switch, i.e. sleep, restricted, or active. A power consumption block 3 records the power consumptions in the various operating states. In the event that a state change is imminent, an information disseminator 4 is configured to provide the required status updates to peer nodes (neighbours and fingers). A packet router 5 receives packets sent via the overlay network and forwards them appropriately according to instructions provided by a decision block 6.
DHT based overlay networks can route messages in either an iterative or recursive fashion. The embodiments described above are based on an overlay network using recursive routing, in which a peer forwards the message to the next hop peer on the path towards the destination peer. In other words a peer X, when receiving a message destined for peer Y, forwards the message destined for Y to the next hop peer (or directly to peer Y if peer X is aware of the contact address of peer Y). In iterative routing, peers do not forward messages. Instead, peers only return contact addresses of other nodes. Thus, if peer X receives a look-up query from peer W with peer Y as a destination, peer X will return to peer W the contact address of peer Y (if peer X knows it), or the contact address of the next hop peer on the path towards peer Y. In iterative DHT algorithms (such as Kademlia) all routing decisions are made by the lookup initiator (i.e. the originating peer). Therefore, in embodiments of the invention that use iterative DHT algorithms, when a peer returns the information about the other potential next hop nodes (£-nodes in Kademlia) it includes the power usage parameters (SMPU, RMPU, AMPU) and PMS of the other nodes together with the routing table entries, so that the lookup initiator can perform the calculations needed to make the optimal routing decision. On the other hand, in recursive DHT algorithms the routing decision is made by the forwarding node, so there is no need to send the power usage parameters from node to node during lookups. In an overlay network using iterative routing, the receiver of a lookup request replies with a lookup response to the lookup initiator. The lookup response includes the routing table entries of the nodes the responder knows about closest to the lookup target. Thus, when the economic path finder mechanism is being used, the responder can simply include the SMPU, RMPU, AMPU and PMS parameters into the lookup response. The lookup initiator can then use these parameters to calculate the optimal next hop node on the path towards the target node. For instance, in an overlay based on the Kademlia DHT algorithm, instead of returning <Node-ID, IP address, port> triples, the responder returns <Node-ID, IP address, port, SMPU, RMPU, AMPU, PMS > septuples of the k nodes it knows about closest to the target node.
In this embodiment the peers participating in an iterative DHT based overlay network maintain alternative contacts for each routing table entry. Some DHT algorithms, such as Kademlia, maintain multiple contacts for each routing table entry by default. As described above, the routing table entries in Kademlia are called ^-buckets, and each k- bucket contains the contact information of up to k peers. When receiving a lookup request, a node returns information to the lookup initiator about the k nodes it knows about closest to the lookup target. This information is no longer a triple (as described above), but is a septuple <Node-ID, IP address, port, SMPU, RMPU, AMPU, PMS> for each k node. The lookup initiator uses this information to construct a list ordered on the basis of the cost (in terms of power consumption) of contacting each of the possible next hop nodes. The next round of iterative lookups is then done by selecting a nodes with the lowest cost, and sending iterative lookup requests to these nodes. Higher cost peers are only contacted if the lower cost peers fail to return responses with addresses of nodes that are closer to the lookup target.
Other DHT algorithms, such as Chord, do not maintain redundant routing table entries, but can easily be modified to do so. As already described, one way to achieve this is to maintain multiple finger pointers for each finger interval. Alternative finger pointers can be obtained, for instance, by asking each finger to return its successor pointers. The finger peer and its successors can then be used to construct a finger pointer set. The forwarding node can then choose the next hop node from among the nodes in the finger pointer set based on the power consumption information of the nodes.
In addition to the power usage parameters, a peer can also send information about its remaining battery capacity to its routing neighbours. As an example, a peer can inform its neighbours that if it remains in the active state (power consumption stays at AMPU) it will run out of battery capacity in 15 minutes. This information can be used to optimize the routing decision even further. More specifically, it can be used to prevent the situation that a low cost peer is woken up from sleep mode when it is close to running out of battery power. This can be implemented as a configurable limit so that a peer whose remaining battery time is less than a predefined amount will not be woken up from sleep mode unless absolutely necessary (such as when it is the lookup target). The remaining battery time can be communicated to other peers by including it as a new parameter in Connect and Status Update requests, and/or in periodic DHT maintenance messages such as keep-alive messages and routing table synchronization messages. This new parameter is here referred to as the Remaining Battery Time (RBT) parameter, and it contains the remaining battery time of the sender of the message in seconds. A non-battery powered peer may set the value of the RBT parameter to a special value such as '-1 ' to indicate to other peers that they do not need to take into account the remaining battery power of the peer in question.
However, in addition to wireless battery-powered peers, the power usage parameters may also be used by other types of peers in situations where those peers have different operating power consumption levels, for example non-battery powered peers having a wired network connection (e.g. a peer running on a personal computer).
Some overlay networks, such as hierarchical networks, operate DHTs using super peers, there are two types of nodes: super peers and clients. The difference between the two types of nodes is that super peers participate in the operation of the DHT (i.e. route messages and store resources in the overlay, and participate in DHT maintenance operations), whereas clients use the services of the overlay network through one or more super peers. A mobile peer with sufficient resources (such as bandwidth, public IP address, etc.) may be selected to serve as a super peer in a hierarchical P2P overlay network. In such cases the power usage parameters and PMS parameter of the super peers may be used so that a client that is connected to multiple super peers can operate the economic path finder mechanism of the present invention to select the lowest cost super peer, in terms of power consumption, from among the set of super peers to which the client is connected.
In the example referred to above of an overlay network in WCDMA, in order to use the economic path finder mechanism, an application running on a mobile terminal needs to have access to the radio resource control (RRC) state information. This information can be accessed by an application running on the native platform of the terminal, which application may be provided by the terminal vendor. On the other hand, trusted third- party applications may also access this information through a vendor-specific application programming interface (API) on the terminal, provided that the API is configured to access to such information. However, support from a vendor-provided API is not required if the information is accessed by a Java application running on the terminal. Such an application may be obtained by a terminal by way of a Java Specification Request (JSR).
However, there may be cases where a third party P2P application does not have access to a terminal's RRC state information, or where the terminal is configured not to provide its power consumption information to third parties (i.e. where the relevant API is private). In such cases it may be possible for the third party application to obtain the power usage parameters by reference to the model of the terminal. For example, this information may be available from a web server, or it may be included as data provided with the P2P application. The P2P application may be configured to determine the model of the terminal by reference to a system property. For example, system properties of terminals are made available to all Java Micro Edition (JME) based applications.
Nevertheless, the P2P application that does not have access to RRC state information is unable to determine the PMS status of the terminal, and so is unable to learn if the terminal is asleep or in an active or restricted mode. In that case, the P2P application sets the PMS parameter to 'unknown' in the peer protocol messages that it originates. Routing decisions where the PMS parameters include one or more 'unknown' parameters are processed as follows.
A) If the set of alternative next hop nodes contains at least one peer in active mode and one or more peers whose power management status is unknown (and possibly, further peers whose status is 'restricted' or 'sleep'), then the message is always routed to one of the active peers. This avoids any risk of increasing the power consumption of any peers whose status is unknown, but which happen to be in non-active modes.
B) If there are no active peers in the set of alternative next hop nodes, but there is one or more peers whose power management status is unknown (and possibly further peers whose status is 'restricted' or 'sleep'), then a peer is selected from the set of peers with unknown status and with the lowest AMPU value. The assumption in this case is that all the peers whose power management status is unknown are in the active state. This avoids routing messages to nodes with large active mode power consumption, while still avoiding routing to peers are known to be sleeping or in restricted mode.
An example of the power usage and PMS parameters for a set of alternative next hop nodes is given in Table 5 below. In this case, the message should be routed to peer Fl because (A) there are no active peers, and (B) of the two peers whose power management status is unknown, peer Fl has the lowest AMPU. Note that SMPU and RMPU values are irrelevant when the power management status of a peer is unknown.
Table 5
Figure imgf000025_0001
It will be appreciated by the person of skill in the art that various modifications may be made to the above described embodiments without departing from the scope of the present invention.

Claims

CLAIMS:
1. A node for use within an overlay network and comprising a decision unit for making a routing decision based upon a knowledge of the power consumption levels and/or power availability of a set of peer nodes in the overlay network.
2. A node according to claim 1, the node being a mobile user terminal.
3. A node according to claim 1 or claim 2, wherein the set of peer nodes are routing neighbour nodes, the node comprising: a memory for storing a routing table containing, for each routing neighbour node, a mapping between an overlay network address of the node and a physical locator of the node, and parameters in, or associated with, the routing table for each routing neighbour, the parameters including: power usage parameters indicating a level of power consumption for each of a plurality of operational states, and a power management status, PMS, parameter indicating a current, or most recently notified, operational state of the routing neighbour; and a processing unit configured to determine a routing neighbour to forward a message to, based on the power usage parameters and the PMS parameters of the routing neighbours.
4. A node according to claim 3 and being configured to receive a status update message from a routing neighbour indicating that the routing neighbour is about to change its operating state, the status update message including the routing neighbour's new PMS parameter for the operating state it is about to enter, the node storing the new PMS parameter in the routing table entry for the routing neighbour.
5. A node according to claim 4 and being configured to determine from the parameters of the routing neighbours in the routing table, if any of the routing neighbours are in a sleep mode, and to store the status update message in the overlay network for later delivery to the sleeping routing neighbour when it changes state out of the sleep mode to an active or restricted mode.
6. A node for use within an overlay network and being configured to provide power consumption levels for each of a plurality of operational states of the node to other nodes in the overlay network, and to notify one or more peer nodes in the network of an impending change in operational state of the node.
7. A node according to claim 6, the node being a mobile user terminal.
8. A node according to claim 6 or claim 7 and comprising a memory storing power usage parameters indicative of said power consumption levels, and a processing unit configured to provide said power usage parameters in peer protocol messages sent to other nodes in the overlay network, and to provide a PMS parameter indicating an operational state that the node is about to enter in a notification sent to other nodes of the network.
9. A node according to claim 8 and being configured to send a status update message to one or more of routing neighbours within said overlay network indicating that it is about to change its operating state, the status update message including the node's PMS parameter for the operating state it is about to enter.
10. A node according to any one of claims 6 to 9 further configured to provide information relating to its remaining battery capacity to other nodes of the network.
11. A node according to of claim 10, wherein the remaining battery capacity comprises an indication that if the node remains in an active state it will run out of battery capacity within a certain amount of time.
12. A node according to any one of the preceding claims and being configured to access a Radio Resource Control, RRC, state machine to determine operating state information.
13. A node according to claim 12 and being configured for operation in a Wideband Code Division Multiple Access, WCDMA overlay network.
14. A node according to claim 12 or claim 13 and comprising an application running on a native platform of the node for accessing the RRC state machine.
15. A node according to claim 14, wherein the application comprises a vendor- specific application programming interface (API) configured to access the RRC state machine, or a Java application obtained by way of a Java Specification Request (JSR), the Java application enabling access to the RRC state machine.
16. A node according to any one of claims 1 to 11 , configured to obtain power usage parameters of a node by reference to a terminal model of the node, and from a web server, or from data provided with a P2P application residing at the node.
17. A node according to claim 16 and configured to determine the model of the terminal by reference to a system property.
18. A node according to any one of the preceding claims, wherein the node is unable to determine the operating state of another peer, the node being configured to set a PMS parameter to 'unknown' in peer protocol messages that it originates.
19. A node according to any one of the preceding claims, wherein the power consumption levels are specified in terms of power usage parameters that include one or more of: a Sleep Mode Power Usage, SMPU, parameter specifying the power consumption of the node when it is in a power saving, or sleep, mode; an Active Mode Power Usage, AMPU, parameter specifying the power consumption of the node when it is operating in an active mode; and a Restricted Mode Power Usage, RMPU, parameter specifying power consumption when the node is operating in a restricted mode,
20. A node according to any one of the preceding claims, wherein the PMS parameter indicates an operational state selected from: a power saving, or sleeping, state; an active state; a restricted state; and an unknown state.
21. A method of making a routing decision at a routing node of an overlay network, the method comprising selecting one or more of a set of peer nodes in the overlay network to forward a message to based upon a knowledge of the power consumption levels and/or power availability of the peer nodes.
22. A method according to claim 21, wherein the overlay network employs a distributed hash table, DHT, and wherein the overlay network comprises nodes that maintain routing tables, a routing table containing, for each of a set of routing neighbour nodes in the overlay network, a mapping between an overlay network address of the node and a physical locator of the node, the method further comprising at each of said overlay network nodes: maintaining parameters in, or associated with, the routing table for each routing neighbour, the parameters including: power usage parameters indicating a level of power consumption for each of a plurality of operational states, and a power management status, PMS, parameter indicating a current, or most recently notified, operational state of the routing neighbour.
23. A method according to claim 22, wherein maintaining parameters comprises receiving a status update message from a routing neighbour, the status update message including a PMS parameter specifying the next operational state that the routing neighbour is going to enter, and updating the routing neighbour's PMS parameter in, or associated with, its routing table.
24. A method according to claim 22 or claim 23, further comprising checking the PMS status of the routing neighbours and either sending the status update message to a routing neighbour if it is not sleeping, or if it is sleeping storing the message in the overlay network for later delivery to the routing neighbour.
25. A method according to claim 24, wherein storing the status update message in the overlay network comprises checking the PMS status of direct routing neighbours of the sleeping routing neighbour to identify a non-sleeping direct routing neighbour, and sending the status update message destined for the sleeping routing neighbour to the non-sleeping direct neighbour for storage.
26. A method according to claim 25, wherein the non-sleeping direct routing neighbour is about to enter the sleep mode, the method further comprising forwarding the status update message to another non-sleeping direct routing neighbour of the sleeping routing neighbour.
27. A method according to any one of claims 21 to 26, wherein the overlay network operates in a Peer-to-Peer, P2P, network, information relating to the power consumption levels and/or power availability being provided in messages sent between nodes using a peer protocol such as P2PSIP.
28. A method according to any one of claims 21 to 27, wherein selecting a routing neighbour to forward a message to comprises: determining a set of alternative routing neighbours as next hop peer nodes for a message that is to be routed to a destination peer; checking the operating state of the next hop peer nodes; and either forwarding the message to a next hop peer node if no change of state will be required when the message is sent to that node; or checking the power consumption levels of the next hop peer nodes if there are no nodes that will not require a change of state, calculating the increase in power consumption involved in changing state of each of the next hop peers, and forwarding the message to the next hop peer requiring the smallest increase in power consumption.
29. A method according to any one of claims 21 to 28, wherein the DHT operates using a Chord algorithm, or a Kademlia algorithm.
30. A method according to any one of claims 21 to 29, wherein the DHT based overlay network routes messages in a recursive fashion or in an iterative fashion.
31. A method according to any one of claims 21 to 30, wherein the routing neighbours are super peers in a hierarchical overlay network.
32. A method according to any one of claims 28 to 31, wherein the operating states of routing neighbours are specified in terms of PMS parameters that include one or more 'unknown' status parameters, the method comprising:
A) if the set of alternative next hop nodes contains at least one peer in an active mode forwarding the message to one of the peers in active mode; and
B) if the set of alternative next hop nodes contains no peers in the active mode, selecting a peer from among the peers with unknown status having the lowest power consumption in the active mode.
PCT/EP2008/061259 2008-08-27 2008-08-27 Routing mechanism for distributed hash table based overlay networks WO2010022774A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN200880131844.2A CN102204346B (en) 2008-08-27 2008-08-27 Routing mechanism for distributed hash table based overlay networks
EP08803285.9A EP2319269B1 (en) 2008-08-27 2008-08-27 Routing mechanism for distributed hash table based overlay networks
US13/060,984 US20110205949A1 (en) 2008-08-27 2008-08-27 Routing Mechanism for Distributed Hash Table Based Overlay Networks
PCT/EP2008/061259 WO2010022774A1 (en) 2008-08-27 2008-08-27 Routing mechanism for distributed hash table based overlay networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2008/061259 WO2010022774A1 (en) 2008-08-27 2008-08-27 Routing mechanism for distributed hash table based overlay networks

Publications (1)

Publication Number Publication Date
WO2010022774A1 true WO2010022774A1 (en) 2010-03-04

Family

ID=40220168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/061259 WO2010022774A1 (en) 2008-08-27 2008-08-27 Routing mechanism for distributed hash table based overlay networks

Country Status (4)

Country Link
US (1) US20110205949A1 (en)
EP (1) EP2319269B1 (en)
CN (1) CN102204346B (en)
WO (1) WO2010022774A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2369812A1 (en) * 2010-03-24 2011-09-28 Research In Motion Limited Peer-to-peer network connectivity status
CN102404372A (en) * 2010-09-16 2012-04-04 中国移动通信集团江苏有限公司 Method, system and node device for storing content in WEB cache in distributed mode
CN102893274A (en) * 2010-03-24 2013-01-23 捷讯研究有限公司 Peer-to-peer network connectivity status
KR101734335B1 (en) * 2010-12-10 2017-05-11 인텔 코포레이션 Power management in a wireless network having stations with different power capabilities
WO2018063760A1 (en) * 2016-09-30 2018-04-05 Intel IP Corporation Power management techniques for wirelessly-interconnected devices

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839254B2 (en) 2009-06-26 2014-09-16 Microsoft Corporation Precomputation for data center load balancing
US9207993B2 (en) 2010-05-13 2015-12-08 Microsoft Technology Licensing, Llc Dynamic application placement based on cost and availability of energy in datacenters
US9563751B1 (en) 2010-10-13 2017-02-07 The Boeing Company License utilization management system service suite
US8769299B1 (en) 2010-10-13 2014-07-01 The Boeing Company License utilization management system license wrapper
CN102457867B (en) * 2010-10-21 2014-10-08 富士通株式会社 Wireless network device, wireless network system and wireless network node control method
US8849469B2 (en) 2010-10-28 2014-09-30 Microsoft Corporation Data center system that accommodates episodic computation
US9063738B2 (en) * 2010-11-22 2015-06-23 Microsoft Technology Licensing, Llc Dynamically placing computing jobs
US9595054B2 (en) 2011-06-27 2017-03-14 Microsoft Technology Licensing, Llc Resource management for cloud computing platforms
US9450838B2 (en) 2011-06-27 2016-09-20 Microsoft Technology Licensing, Llc Resource management for cloud computing platforms
CN103167464B (en) * 2011-12-09 2018-06-15 中兴通讯股份有限公司 Method, MS and the MN of triggering update mobile node map information
KR101556031B1 (en) 2012-01-30 2015-10-01 한국전자통신연구원 Method and system of distributed mobility control on network
US8891513B1 (en) * 2012-08-23 2014-11-18 Cisco Technology, Inc. System and method for low latency multicast in a network environment
EP2901654A1 (en) * 2012-09-25 2015-08-05 Telefonaktiebolaget L M Ericsson (publ) Communicating with a constrained internet device
US10075519B2 (en) * 2013-01-10 2018-09-11 Telefonaktiebolaget Lm Ericsson (Publ) Connection mechanism for energy-efficient peer-to-peer networks
US9426020B2 (en) * 2013-03-15 2016-08-23 Cisco Technology, Inc. Dynamically enabling selective routing capability
US10154458B2 (en) * 2013-09-04 2018-12-11 Qualcomm Incorporated Method and apparatus for maintaining reachability of a user equipment in idle state
EP3152661A4 (en) * 2014-06-03 2017-12-13 Nokia Solutions and Networks Oy Functional status exchange between network nodes, failure detection and system functionality recovery
US10234835B2 (en) 2014-07-11 2019-03-19 Microsoft Technology Licensing, Llc Management of computing devices using modulated electricity
US9933804B2 (en) 2014-07-11 2018-04-03 Microsoft Technology Licensing, Llc Server installation as a grid condition sensor
US9608907B2 (en) 2014-09-29 2017-03-28 Vivint, Inc. Systems and methods for centrally-assisted distributed hash table
US10897763B2 (en) 2015-01-30 2021-01-19 Itron Networked Solutions, Inc. Techniques for managing heterogenous nodes configured to support a homogeneous communication protocol
US10645004B2 (en) * 2015-03-20 2020-05-05 Convida Wireless, Llc Methods to support message routing at service layer
CN105049550A (en) * 2015-08-14 2015-11-11 电子科技大学 D1HT+Chord based name and address separation mapping system
US9929954B2 (en) * 2015-10-12 2018-03-27 Futurewei Technologies, Inc. Hash-based overlay routing architecture for information centric networks
US10237218B2 (en) 2016-08-29 2019-03-19 International Business Machines Corporation Message delivery management based on device accessibility
US10091148B2 (en) * 2016-08-29 2018-10-02 International Business Machines Corporation Message delivery management based on device accessibility
US10212223B2 (en) * 2016-09-30 2019-02-19 Hewlett Packard Enterprise Development Lp Overlay network management
CN112100238B (en) * 2020-09-07 2024-01-09 中国人民解放军海军工程大学 Ship remote maintenance system and remote maintenance management method
CN112507032B (en) * 2020-12-22 2022-05-27 正链科技(深圳)有限公司 K-bucket structure improvement method of kademlia protocol

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020090949A1 (en) * 2000-11-13 2002-07-11 Peter Stanforth Prioritized-routing for an ad-hoc, peer-to-peer, mobile radio access system
US20070057767A1 (en) * 2005-08-12 2007-03-15 Lg Electronics Inc. Method of providing notification for battery power conservation in a wireless system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9720856D0 (en) * 1997-10-01 1997-12-03 Olivetti Telemedia Spa Mobile networking
US6564055B1 (en) * 2000-01-21 2003-05-13 Telecommunication Systems, Inc. Intelligent roaming database (IRDB) updating
US20010037435A1 (en) * 2000-05-31 2001-11-01 Van Doren Stephen R. Distributed address mapping and routing table mechanism that supports flexible configuration and partitioning in a modular switch-based, shared-memory multiprocessor computer system
JP4199672B2 (en) * 2002-03-15 2008-12-17 メシュネットワークス、インコーポレイテッド System and method for automatic configuration of IP address to MAC address mapping and gateway presence discovery
SE528248C2 (en) * 2004-12-08 2006-10-03 Ericsson Telefon Ab L M Method for compensating delays
US7496059B2 (en) * 2004-12-09 2009-02-24 Itt Manufacturing Enterprises, Inc. Energy-efficient medium access control protocol and system for sensor networks
DE602006001201D1 (en) * 2006-03-13 2008-06-26 Ntt Docomo Inc Method and device for controlling the transmission of data from multiple sensor nodes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020090949A1 (en) * 2000-11-13 2002-07-11 Peter Stanforth Prioritized-routing for an ad-hoc, peer-to-peer, mobile radio access system
US20070057767A1 (en) * 2005-08-12 2007-03-15 Lg Electronics Inc. Method of providing notification for battery power conservation in a wireless system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Universal Mobile Telecommunications System (UMTS); Radio Resource Control (RRC) protocol specification (3GPP TS 25.331 version 5.10.0 Release 5); ETSI TS 125 331", ETSI STANDARDS, LIS, SOPHIA ANTIPOLIS CEDEX, FRANCE, vol. 3-R2, no. V5.10.0, 1 September 2004 (2004-09-01), XP014016832, ISSN: 0000-0001 *
CHEN B ET AL: "SPAN: AN ENERGY-EFFICIENT COORDINATION ALGORITHM FOR TOPOLOGY MAINTENANCE IN AD HOC WIRELESS NETWORKS", WIRELESS NETWORKS, ACM, NEW YORK, NY, US, vol. 8, no. 5, 1 September 2002 (2002-09-01), pages 481 - 494, XP001131429, ISSN: 1022-0038 *
LEUNG A K ET AL: "On Topology Control of Wireless Peer-to-Peer File Sharing Networks: Energy Efficiency, Fairness and Incentive", WORLD OF WIRELESS MOBILE AND MULTIMEDIA NETWORKS, 2005. WOWMOM 2005. S IXTH IEEE INTERNATIONAL SYMPOSIUM ON A TAORMINA-GIARDINI NAXOS, ITALY 13-16 JUNE 2005, PISCATAWAY, NJ, USA,IEEE, 13 June 2005 (2005-06-13), pages 318 - 323, XP010811097, ISBN: 978-0-7695-2342-2 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2369812A1 (en) * 2010-03-24 2011-09-28 Research In Motion Limited Peer-to-peer network connectivity status
CN102893274A (en) * 2010-03-24 2013-01-23 捷讯研究有限公司 Peer-to-peer network connectivity status
US8620986B2 (en) 2010-03-24 2013-12-31 Blackberry Limited Peer-to-peer network connectivity status
US9241034B2 (en) 2010-03-24 2016-01-19 Blackberry Limited Peer-to-peer network connectivity status
CN102404372A (en) * 2010-09-16 2012-04-04 中国移动通信集团江苏有限公司 Method, system and node device for storing content in WEB cache in distributed mode
KR101734335B1 (en) * 2010-12-10 2017-05-11 인텔 코포레이션 Power management in a wireless network having stations with different power capabilities
KR101778838B1 (en) * 2010-12-10 2017-09-14 인텔 코포레이션 Power management in a wireless network having stations with different power capabilities
WO2018063760A1 (en) * 2016-09-30 2018-04-05 Intel IP Corporation Power management techniques for wirelessly-interconnected devices

Also Published As

Publication number Publication date
EP2319269B1 (en) 2014-05-07
US20110205949A1 (en) 2011-08-25
CN102204346A (en) 2011-09-28
CN102204346B (en) 2015-07-08
EP2319269A1 (en) 2011-05-11

Similar Documents

Publication Publication Date Title
EP2319269B1 (en) Routing mechanism for distributed hash table based overlay networks
EP2031816B1 (en) Optimal operation of hierarchical peer-to-peer networks
US8130676B2 (en) Method for on demand distributed hash table update
US7660320B2 (en) Communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
KR101422213B1 (en) Apparatus and method for setting role based on capability of terminal
Huang et al. Network-aware P2P file sharing over the wireless mobile networks
EP2944069A2 (en) Connection mechanism for energy-efficient peer-to-peer networks
Eberspächer et al. Structured p2p networks in mobile and fixed environments
JP4533923B2 (en) Super-peer with load balancing function in hierarchical peer-to-peer system and method of operating the super-peer
Hautakorpi et al. Evaluation of DHTs from the viewpoint of interpersonal communications
Al-Mamou et al. ScatterPastry: An overlay routing using a DHT over wireless sensor networks
Elgazzar et al. RobP2P: a robust architecture for resource sharing in mobile peer-to-peer networks
Singh et al. Challenges and protocols for P2P applications in multi-hop wireless networks
O'Driscoll et al. Hierarchical clustering as an approach for supporting P2P SIP sessions in ubiquitous environments
Stojnic et al. COMPASS-optimized routing for efficient data access in mobile chord-based P2P systems
Salter et al. ROME: Optimising DHT-based peer-to-peer networks
Huang et al. A file discovery control scheme for p2p file sharing applications in wireless mobile environments
KR102199577B1 (en) Node and method for routing in heterogeneous traffic wireless sensor network
Zhang et al. Efficient Search Scheme in Mobile Peer-to-Peer Network
Dischinger Mobility Enhancements to an Approach for Structured Overlay Routing in Wireless Mobile Ad Hoc Networks
Ribe-Baumann et al. A hierarchical approach to resource awareness in dhts for mobile data management
Kornfilt et al. Adding structure to Gnutella to improve search performance in a real-world deployment
Gomes et al. Evaluating energy mechanisms for routing in wireless sensor networks
Li et al. SFDHT: a DHT designed for server farm
Gao et al. Multi-level virtual ring: A foundation network architecture to support peer-to-peer application in wireless sensor network

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880131844.2

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08803285

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2008803285

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13060984

Country of ref document: US