220 likes | 241 Views
A standalone application for spontaneous mobile communities enabling efficient content sharing using P2P networking architecture with features like file sharing, peer lookup, content publishing, and discovery. Developed in C++ and C#.
E N D
A Standalone Content Sharing Application for Spontaneous Communities of Mobile Handhelds Authors: Amir Krifa – Amir.Krifa@sophia.inria.fr Mohamed Karim Sbai – mksbai@sophia.inria.fr Chadi Barakat – Chadi.Barakat@sophia.inria.fr Thierry Turletti – turletti@sophia.inria.fr
Objectives • Design of the P2P networking architecture for content sharing. (P2P file sharing, Peer lookup and membership management, content publishing and discovery) • It’s an adapted version of BitTorrent for wireless ad-hoc networks. • Change neighborhood definition (choking algorithm) and piece selection strategy in the BitTorrent classical client. • Replace the tracker by a distributed peer lookup and membership management service. (A distributed ad hoc tracker). • Provide a Content Publishing and Discovery mechanism.
BitHoc Architecture XML-RPC BitHoc Torrent Files Finder BitHoc Client Distributed DHT Daemon Http Messages Torrent Files Data Base List of peers BitHoc Tracker Membership Overlay List of torrents OLSR Routing Daemon Routing Table Sharing Sessions Status Data Base Data Sharing Ovelay
BitHoc Architecture XML-RPC BitHoc Torrent Files Finder BitHoc Client Distributed DHT Daemon Http Messages Torrent Files Data Base List of peers BitHoc Tracker Membership Overlay List of torrents OLSR Routing Daemon Routing Table Sharing Sessions Status Data Base Data Sharing Ovelay
BitHoc Tracker • BitHoc TrackerisWritten in C++ using Visual Studio 2008 • The main functionalities are: • Maintaining the membership of the distributed overlays of different Torrents. • Based on the HTTP messages received from the BitHoc client and the other trackers. • Updates the trackers’ overlay map each time the OLSR routing daemon modifies the routing table. • Maintaining the distributed .torrent files database.
BitHoc Tracker • Other Features: • Detecting the 1-Hop neighbors and updating the trackers overlay based on that (The OLSR routing daemon does not detect the 1-hop neighbors). • A configuration wizard that enables specifying specific parameters (e.g. Http listening port, Broadcasting port, Broadcast address, Tracker Client Poll Interval, Activating trace functionalities) • A dialog that shows the current device routing table. • A dialog that shows the list of peers. • A dialog that shows the list of torrents.
BitHoc Tracker (Configuration, Dialog and UI )
BitHoc Tracker (Configuration, Dialog and UI )
BitHoc Tracker (Configuration, Dialog and UI )
Architecture XML-RPC BitHoc Torrent Files Finder BitHoc Client Distributed DHT Daemon Http Messages Torrent Files Data Base List of peers BitHoc Tracker Membership Overlay List of torrents OLSR Routing Daemon Routing Table Sharing Sessions Status Data Base Data Sharing Ovelay
BitHoc Client • BitHoc Client is written in C++ usingvisual studio 2008, based on the Multiplatform socket and OpenSSL libraries adapted to Windows Mobile 6. • Startting from Btpeer, core bittorrent client functionality implemented in C++ • Via a configuration dialog the user can choose between: • The Basic Internet bittorrent version. • Bittorrent version adapted to AdHoc mobile networks.
BitHoc Client • Other features: • Create torrent wizard that enables you to create a MetaInfo file from your mobile device. • Leech, Seed torrent from within the application. • Pause and resume download. • Organize all torrents that have been processed into one single hierarchical directory based on the hash associated to each torrent.
BitHoc Client • Show each torrent downloading status ( File name, Size, Downloaded bytes, Elapsed Time, Number and list of peers included in the downloading process, Number of uploaded bytes in case of seeding). • Details Dialog showing more details about the file one is currently downloading ( absolute path, Number of pieces, Tracker announce URL, Piece Size, Slice Size,...). • Configure BitTorrent client wizard that enables specifying the following parameters ( Listen port, Torrents directory, where downloaded torrents will be store, Choke Timer, Min Peers, Max Peers, Max Downloader and Max Active Torrents)
BitHoc Client Creating a new MetaInfo file
Architecture XML-RPC BitHoc Torrent Files Finder BitHoc Client Distributed DHT Daemon Http Messages Torrent Files Data Base List of peers BitHoc Tracker Membership Overlay List of torrents OLSR Routing Daemon Routing Table Sharing Sessions Status Data Base Data Sharing Ovelay
BitHoc Search Engine • BitHoc Search Engine is written in C# using visual studio 2008 • Compact .NET framework 2.0 • PocketXML-RPC library. • BitHoc Search Engine is a multi-tab application that presents the following features: • Publishing a new .Torrent file either via the local tracker of the remote DHT service. • Retrieving a .Torrent file by specifying a set of keywords. • Download on point-to-point the retrieved .Torrent files from the remote host.
Proposed Demo Scenario • Create a torrent file from an already existing data file, • Using BitHoc Search Engine, the seeder has to associate a description to the torrent file and to publish it, • Using BitHoc Client, the seeder has to start seeding the published torrent file, • Using BitHoc Search Engine, the other leechers has look for the published torrent file using keywords related to the published description, • Once they have downloaded the torrent file leechers could join the sharing session, using BitHoc Client.
References • Bithoc website: http://planete.inria.fr/bithoc/ • 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. • Amir KRIFA, Mohamed Karim SBAI, Chadi BARAKAT, Thierry TURLETTI, "A standalone content sharing application for spontaneous communities of mobile handhelds", demo description in proceedings of the ACM SIGCOMM MobiHeld Workshop, Barcelona, Aug 2009. • 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.