F-Chord: Improved Uniform Routing on Chord
G. Cordasco, L. Gargano, A. Negro, and V. Scarano
Dipartimento di Informatica ed Applicazioni, Università di Salerno, 84084, Fisciano (SA), Italy
M. Hammar
Research and Development, Apptus Technologies AB, IDEON, 22370 Lund, Sweden
We propose a family of novel Chord-based P2P schemes
retaining all positive aspects that made Chord a popu-
lar topology for routing in P2P networks. The schemes,
based on the Fibonacci number system, allow to simul-
taneously improve on the maximum/average number of
hops for lookups and the routing table size per node.
© 2008 Wiley Periodicals, Inc. NETWORKS, Vol. 52(4), 325–332
2008
Keywords: peer-to-peer; overlay network; uniform routing;
greedy routing; fibonacci numbers
1. INTRODUCTION
Peer-to-peer (P2P) is a class of network applications
in which each workstation has equivalent capabilities and
responsibilities and communications are potentially symmet-
ric. P2P computing takes advantage of existing computing
power, computer storage, and networking connectivity, avail-
able at the edges of the Internet, by allowing users to leverage
their collective power to the benefit of all. Because accessing
these decentralized resources means operating in an environ-
ment of unstable connectivity and unpredictable IP addresses,
P2P nodes must operate independently from central servers.
Many are the recent P2P applications that are available.
Among the most popular, without any doubt, are the file shar-
ing systems. Anyway, sharing other resources is also common
(like file storage systems and systems that use CPU time on
each node).
Scalability has been recognized as the central challenge
in designing such systems [14]. To obtain a scalable sys-
tem, several P2P systems are based on distributed hash table
(DHT) schemes [3, 15, 16, 18]. In DHT schemes, data as well
as nodes are associated with a key and each node in the sys-
tem is responsible for storing a certain range of keys. Each
Received November 2006; accepted February 2008
Correspondence to: G. Cordasco; e-mail: cordasco@dia.unisa.it
DOI 10.1002/net.20253
Published online 3 June 2008 in Wiley InterScience (www.interscience.
wiley.com).
© 2008 Wiley Periodicals, Inc.
node stores data that correspond to a certain portion of the
key space, and uses a routing scheme to forward the request
for data whose key does not belong to its key space to the
appropriate next-hop node.
In this article, we propose a family of new routing schemes
that reduce the routing table size, and the maximum/average
number of hops for lookup requests in Chord-like systems
[16] without introducing any other protocol overhead. The
improvement is obtained with no harm to the simplicity
and ease of programming that are some of the many good
characteristics that made Chord a popular choice.
The basis of Chord can be seen as a ring of N identifiers
labelled from 0 to N − 1. The edges, representing the overlay
network, go from identifier x to identifier
1
x + 2
i
, for each
x ∈{0, ... , N −1} and i < log N . The degree and the diameter
are log N , the average path length is (log N )/2. Routing is
greedy, never overshooting the destination.
Because of low diameter and average path length, Chord
offers fast lookup algorithms. Moreover, low average path
length also offers a good tolerance to malfunctioning, since
short paths (on average) do not often incur in faulty nodes.
By having also low degree, it provides efficient join/leave of
nodes since the cost depends on the diameter and the degree
and is, in fact, upper bounded by their product. Chord is
scalable: with n ≤ N nodes present in the network the same
performance (in terms of n rather than N ) can be obtained
w.h.p. Efficient routing in Chord is easy (a greedy algorithm
is optimal) due to the fact that Chord is uniform: x is connected
to y iff x + z is connected to y + z. Since we are restricting
ourselves to uniform routing schemes, we can use the term
jump of size s to indicate the existence in the overlay network
of an edge from x to x + s for any identifier x = 0, ... , N − 1
(e.g. Chord has jumps of size 2
i
, for i = 0, ... , log N − 1).
Uniformity is a crucial requirement, since it makes any
system a good candidate for real implementations: besides
simplicity in the implementation it also offers an optimal
1
Throughout the article, arithmetics on node identities is always mod N
where N is the number of identifiers. Similarly, all the logarithms are base
2, unless differently specified.
NETWORKS—2008—DOI 10.1002/net