TU Berlin

Internet Network ArchitecturesPeer-to-Peer


zur Navigation

Es gibt keine deutsche Übersetzung dieser Webseite.

Peer-to-Peer Computing

Peer-to-peer computing is an interesting networking paradigm as it offers a high degree of scalability by exploiting the resources of the participants and avoids single-points of failures. Due to these desirable properties, peer-to-peer computing plays a crucial role in many networking applications beyond file-sharing, and the underlying ideas are also discussed as a design principle for the future Internet. Our research is concerned with the question of whether peer-to-peer is mature enough to step outside its "comfort zone". We conduct measurements of state-of-the-art peer-to-peer networks such as Kad and investigate the robustness, e.g., to Sybil attacks or selfish behavior. For example, we implemented the proof-of-concept BitTorrent client "BitThief" which provides evidence that despite the tit-for-tat incentive mechanism, free-riding is possible in BitTorrent. We develop algorithms to improve the performance of peer-to-peer systems: we devise peer-to-peer networks which are robust to worst-case churn (see e.g., our IPTPS paper), which allow for efficient joins and leaves (see e.g., our SHELL system at ICALP), or which are robust to denial of service attacks (see e.g., our Chameleon system at SPAA). Some of these algorithms were successfully implemented in the online storage tool Wuala and the streaming tool Streamforge, two Swiss startups.


  • Stefan Schmid

Selected Publications

eDonkey and eMule's Kad: Measurements and Attacks
Zitatschlüssel LSW-EAEKMAA-11
Autor Locher, Thomas and Schmid, Stefan and Wattenhofer, Roger
Seiten 383–403
Jahr 2011
ISSN 0169-2968
Adresse Amsterdam, Netherlands
Journal Fundamenta Informaticae
Jahrgang 109
Nummer 4
Verlag IOS Press
Organisation Polish Mathematical Society
Zusammenfassung This article reports on the results of our measurement study of the Kad network. Although several fully decentralized peer-to-peer systems have been proposed in the literature, most existing systems still employ a centralized architecture. The Kad network is a notable exception. Since the demise of the Overnet network, the Kad network has become the most popular peer-to-peer system based on a distributed hash table. It is likely that its user base will continue to grow in numbers over the next few years due to the system's scalability and reliability. The contribution of the article is twofold. First, we compare the two networks accessed by eMule: the centralized paradigm of the eDonkey network and the structured, distributed approach pursued by the Kad network. We re-engineer the eDonkey server software and integrate two modified servers into the eDonkey network in order to monitor traffic. Additionally, we implement a Kad client exploiting a design weakness to spy on the traffic at arbitrary locations in the ID space. The collected data provides insights into the spacial and temporal distributions of the peers' activity. Moreover, it allows us to study the searched content. The article also discusses problems related to the collection of such data sets and investigates techniques to verify the representativeness of the measured data. Second, this article shows that today's Kad network can be attacked in several ways. Our simple attacks could be used either to hamper the correct functioning of the network itself, to censor content, or to harm other entities in the Internet not participating in the Kad network, such as ordinary web servers. While there are heuristics to improve the robustness of Kad, we believe that the attacks cannot be thwarted easily in a fully decentralized peer-to-peer system, i.e., without some kind of a centralized certification and verification authority. This result may be relevant in the context of the current debate on the design of a clean-slate network architecture for the Internet which is based on concepts known from the peer-to-peer paradigm.
Link zur Publikation Download Bibtex Eintrag



Schnellnavigation zur Seite über Nummerneingabe