BitHoc: Tracker-less BitTorrent for Mobile Ad Hoc Networks

 

·        Overview

·        Global Architecture

·        BitHoc Client Description

·        BitHoc Tracker Description

·        BitHoc Search Engine Description

·        Implementation

·        Screenshots

·        Documentation

·        Dependencies

·        Related Publications

·        Related Talks

·        People involved

·        Contact

          

go to planete project

 

logo_pantalla_vertical.png

Design and Development of a BitTorrent Client and Distributed Tracker

Solution for Mobile Ad Hoc Networks

Overview

File sharing and wireless networks are two domains gaining a lot of interest nowadays. Solutions like BitTorrent and Emule are known to perform very well over wired networks where end-to-end performances are almost guaranteed. However, in wireless networks especially in the Ad Hoc mode, many constraints appear as the lack of resources, the mobility, and the fact that nodes are at the same time hosts and routers, which pose question marks on the performances of these protocols with their default configuration.

The Planète group-team is studying the problem within the context of the ITEA ExpeShare European project. Our current research aims at the design of an architecture that allows both the lookup and sharing of digital content over a wireless AdHoc network. This architecture will provide developers with a set of primitives that they can use in building efficient P2P file sharing applications.

Difficulties are both in the lookup of data and in their sharing once localized. As a solution for the sharing problem; we proposed the two following main applications (services):

-         BitHoc Tracker: It is an implementation of a BitTorrent tracker-less solution (membership management solution) for MANET nodes using the Windows mobile 6 operating system. In fact, in the mobile Ad Hoc mode, one cannot rely on a central server (for example a Tracker in a BitTorrent application) which provides each peer periodically with the lists of peers interested in the P2P service. The BitHoc Tracker handles this problem and proposes a method to connect peers to each other in a distributed manner and allows exchange of membership information. The objective of this service is to enable peers to discover each other and keep informed about the peers joining or leaving the P2P service overlay during the session.

 

-         BitHoc Client: It is an Implementation of an adapted version of the BitTorrent protocol for mobile AdHoc Networks. The targeted operating system is Windows Mobile 6.  To ensure content sharing, this service decides in distributed manner of the structure of the overlay of data exchanges and the scheduling of the sending of pieces of data among devices. This service is based on the classical BitTorrent file sharing protocol which we adapted to the constraints of the wireless ad hoc network. Namely, adapt the peer neighbours (the ones to whom open data transfer connections) selection strategy and the piece selection strategy to account for the topology of the network and the scarcity and shared nature of resources.

Global Architecture

Architecture.JPG

The figure above describes the global architecture of our solution which includes 3 main components:

- The OLSR Ad Hoc routing service that updates periodically the entries of device routing table.

- The Ad Hoc distributed tracker solution: BitHoc Tracker that constructs and adapts the BitTorrent trackers overlay, peer’s and torrent’s map based on the device routing table. 

- The adapted BitTorrent client, BitHoc Client takes in charge the data sharing procedure (seeding, leeching, and creation of MetaInfo files…). BitHoc Client uses the BitTorrent default HTTP messages like in the original protocol in order to ask the local tracker for up-to-date information about the peers involved in a given BitTorrent session.

 

BitHoc Client Description

Written in C++ (Visual Studio 2008 Project), using Multiplatform socket library adapted to Windows Mobile 6.

Ensures the following features:

    -  It offers the user a torrent wizard enabling him to create Torrent file from the mobile device.

    -   It manages practically the storage of created Meta Info files and shared contents.

    -  It allows both content leeching and seeding.

    - It permits the user to pause and resume a sharing session while conserving its context.

    -  It shows the sharing status of each content (File name, Size, Downloaded bytes, Elapsed Time, Number of peers included in the sharing process, Number of uploaded bytes).

    - It gives more details about a currently shared content (the saving absolute path, Number of pieces, Tracker’s announces URL, Piece Size, Slice Size...).

    - It offers a configuration wizard enabling the user to personalize the following parameters of the protocol:

·        Listen port.

·        Contents storage directory

·        Choke timer.

·        Minimum number of peers.

·        Maximum number of peers.

·        Maximum parallel leeching sessions.

·        Maximum active sessions.

    - It gives the user the opportunity to select the BitTorrent’s protocol version to use. He can choose either the classic Internet version or a version adapted to mobile AdHoc networks. For more details about this last one, please read the following paper:

Mohamed Karim Sbai, Chadi Barakat, Jaeyoung Choi, Anwar Al Hamra, Thierry Turletti, "Adapting BitTorrent to wireless ad hoc networks" In proceedings of 7th International conference on ad hoc networks and wireless 2008 (AD-HOC NOW), Sophia Antipolis, France, September 2008. (Download)

BitHoc Tracker Description

Written in C++ (Visual Studio 2008 Project).

Ensures the following functionalities:

 - It allows a peer to join the membership overlay. It consists in looking for peers that are already in the overlay and getting the membership information from them. The new arrival information will be after that disseminated to all peers of the membership overlay.

- It allows a peer to leave the membership overlay. It consists in informing the members of the overlay of the departure and restructuring the overlay to account for this event. The membership overlay saved in the peers memory is after that deleted. The function returns True if the peer succeeded in leaving the membership overlay.

- It offers a configuration wizard enabling the user to personalize the following parameters:

   - Http listening port.

   - Broadcasting port.

   - Broadcast address.

   - Tracker client poll interval.

- It allows real-time monitoring of the status of the overlay namely it tracks:

                 -  The list of shared contents.

                 -   The list of members per sharing session.

                 -   The current topology of the ad hoc network by getting up-to-date routing information.

- It manages the tracing of events (joining, leaving nodes, etc)

- It implements further sophisticated functionalities like debugging and remote controlling (Sending ping requests, Sending status requests from remote desktop web browser, etc …).

 

BitHoc Search Engine Description

Written in C# (Visual Studio 2008 Project + .Net Compact Framework).

Ensures the following functionalities:

-         A user willing to share some content with the members of his community needs to indicate to the BitHoc Search Engine the location of the content in the mobile device file system. First, the Search Engine creates implicitly a meta-info file (torrent file) that identifies in a unique manner a sharing session of the content. After that, the Search Engine publish the new torrent file and a short text description of the related content (introduced by the user), which will update the local torrent files database maintained in the underlying BitHoc tracker via HTTP messages.

-         A remote user, willing to share the same content, has to use the BitHoc search Engine to find and download the torrent file. He specifies for that the name of the content or some key words related to its description. The request is sent via HTTP messages to its local tracker which looks for the closest match in its local database. If there are no matches, it forwards the HTTP request to the other trackers in the discovery overlay. Then it presents the received results through an ergonomic user interface. Based on the details of received answers (fitness to the search, number of peers involved in the sharing session, number of seeders, and number of leechers ...), the user can choose the torrent file to download, then start the content sharing using the BitHoc client.

Documentation (generated by Doxygen)

-         BitHoc Tracker code documentation.

-         BitHoc Client code documentation.

Implementation (Weekly Updated Version)

-         Latest release of BitHoc Tracker for Windows Mobile 6. (Source Code)

-         Latest release of BitHoc Client for Windows Mobile 6. (Source Code)

-         Latest release of BitHoc Search Engine for Windows Mobile 6 (You need to install the .Net Compact Framework within your mobile in order to be able to run the BitHoc Search Engine). (Source Code coming soon)

Note: This program is free software; you can redistribute it and/or modify it under the terms of the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

Screenshots

    - BitHoc Tracker screenshots.

    - BitHoc Client screenshots.

Dependencies

    - OpenSSL library compiled for Pocket PC 2003 under Visual Studio 2008 (Compatible with Windows Mobile 6).

           - Download the latest release.

    - Multi Platform C++ Sockets Library adapted to Pocket PC 2003 SDK and compiled under Visual Studio 2008 (Compatible with Windows Mobile 6).

           - Download the latest release.

Related Publications

·         Mohamed Karim Sbai, Emna Salhi, Chadi Barakat, "P2P Content sharing in spontaneous multi-hop wireless networks", to appear in proceeding of the International Conference on COMmunication Systems and Networks (COMSNETS), India, January 2010.

·         Mohamed Karim SBAI, Chadi BARAKAT, "Revisiting content sharing in wireless ad hoc networks", to appear in proceedings of the fourth workshop on self-organizing systems (IWSOS), Zurich, December 2009.(Download)

·         Emna Salhi, Karim Sbai, and Chadi Barakat, "Neighborhood selection in mobile P2P networks", in proceeding of the 11th Algotel conference, Carry-Le-Rouet, France, June 2009. (Download)

·         Mohamed Karim Sbai, Emna Salhi, Chadi Barakat, "A membership management protocol for mobile P2P networks", in proceedings of the ACM Mobility Conference, Nice, September 2009. (Download)

·         Amir Krifa, Mohamed Karim Sbai, Chadi BARAKAT, Thierry TURLETTI, "A Standalone Content Sharing Application for Spontaneous Communities of Mobile Handhelds", demo description to appear in proceedings of the ACM SIGCOMM Mobiheld Workshop, Barcelona, Aug 2009. (Download)

·         Mohamed Karim Sbai, Chadi Barakat, Jaeyoung Choi, Anwar Al Hamra, Thierry Turletti, "AdaptingBitTorrent to wireless ad hoc networks" In proceedings of 7th International conference on ad hoc networks and wireless 2008 (AD-HOC NOW), Sophia Antipolis, France, September 2008. (Download)

·         Amir KRIFA, Mohamed Karim SBAI, Chadi BARAKAT, Thierry TURLETTI, "BitHoc: A content sharing application for Wireless Ad hoc Networks", demo description to appear in proceedings of the IEEE Percom conference, Galveston, Texas, March 2009. (Download)

 

Related Talks

·         Mohamed Karim Sbai, Demonstration of BitHoc, ACM SIGCOMM Mobiheld Workshop, Barcelona, Aug 2009. (Download)

·         Mohamed Karim Sbai, Poster presented in Percom conference, Galveston, Texas, March 2009.(Download)

·         Mohamed Karim Sbai, Presentation of a Membership Management Protocol for Mobile P2P Networks, Mobility Conference, Nice, France, 2009. (Download)

·         Amir Krifa, Presentation of the BitHoc package, Expeshare meeting, Oulou, Finlande, June 2009. (Download)

·         Amir Krifa, Demonstration of BitHoc, GEMALTO, Paris, June 2009.

·         Amir Krifa, Presentation of BitHoc, ENSI, Tunisia, Mars 2009.(Download)

 

People involved

·        Amir Krifa

·        Mohamed Karim Sbai

·        Chadi BARAKAT

·        Thierry Turletti

Contact

-         Please send any general or development related question about BitHoc to bithoc-dev@lists-sop.inria.fr.

-         In order to join our mailing list, please send an email to sympa@sophia.inria.fr with the command “SUB bithoc-dev email-address”.

 

Free counter and web stats