22.01.2015 Views

Military Communications and Information Technology: A Trusted ...

Military Communications and Information Technology: A Trusted ...

Military Communications and Information Technology: A Trusted ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

256 <strong>Military</strong> <strong>Communications</strong> <strong>and</strong> <strong>Information</strong> <strong>Technology</strong>...<br />

mechanism, a more robust <strong>and</strong> more reliable publish/subscribe functionality<br />

is possible. In contrast to Pastry there are millions of active Kademlia nodes <strong>and</strong><br />

three major implementations which are actively developed <strong>and</strong> researched [11].<br />

A performance analysis of KadScribe is presented in section IV. A description<br />

of KadScribe follows.<br />

Kademlia defines a distance metric <strong>and</strong> a mechanism to route to a position –<br />

or equivalently – a key in the P2P network. The identifier is a key in the Kademlia<br />

key space. The routing table of a Kademlia node is a binary tree (Fig. 1). Each<br />

leaf contains a list of nodes, the so called buckets. A bucket holds a fixed number<br />

k of references to reach other nodes. As the network may contain up to n nodes,<br />

the routing table size has to be limited. In Kademlia the memory requirement<br />

for the routing table is O(k . b), with b as the number of bits of an identifier.<br />

A node carries a tag which defines which identifiers are contained in its subtree.<br />

In the figure, b <strong>and</strong> k are assumed to be 4, the st<strong>and</strong>ard key length of Kademlia<br />

is 160. A tag of 1xxx means that the most significant bit is 1 for the whole subtree<br />

<strong>and</strong> the other bits are unknown. The right subtree of the root carries this tag.<br />

The local node identifier is assumed to be 0000 in the depicted tree. If the local<br />

identifier is not 0000 the local node may do an XOR operation with its own<br />

identifier on all identifiers in the routing table. The table then looks exactly<br />

as in the example. The transformation can to be undone by applying the XOR<br />

operation again as the XOR operation is involutary. In comparison to the original<br />

description of Kademlia where the tree is built according to the local identifier,<br />

this transformation may simplify the implementation.<br />

Figure 1. The Kademlia routing table<br />

Routing to destination keys is done in Kademlia by iteratively querying nodes<br />

which are increasingly closer to the final destination. To do so, responses from<br />

queried nodes contain the k closest nodes to the destination they are aware of.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!