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