Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bittorrent Protocol Implementation. Bittorrent Bittorrent is a widely used peer-to- peer network used to distribute files, especially large ones It has.

Similar presentations


Presentation on theme: "Bittorrent Protocol Implementation. Bittorrent Bittorrent is a widely used peer-to- peer network used to distribute files, especially large ones It has."— Presentation transcript:

1 Bittorrent Protocol Implementation

2 Bittorrent Bittorrent is a widely used peer-to- peer network used to distribute files, especially large ones It has a number of legal uses which separate it from other P2P

3 Traditional vs. Bittorrent One server provides many clients Many clients provide many clients Images from sitepoint.com

4 Explanation The.torrent file provides info about tracker URL, filename, size, and more Client connects to tracker through URL Tracker gives client a list of other clients Client then downloads file from other clients (not a centralized server) Periodic update with tracker for new client list

5 Purpose Create a Bittorrent client and make the underlying libraries and utilities available for further improvement and usage

6 Goals Analyze the Bittorrent protocol and create a workable implementation that can be used to download files through the Bittorrent network Complete internet publishing solution using Bittorrent (torrent file, tracker, client)

7 Expected Results Utility to create.torrent metadata files Parse.torrent files and connect to tracker Tracker Peer communication Peer Peer communication

8 Similar Projects Mainline Bittorrent client Azureus Bittorrent client Rakshasa libtorrent Rasterbar libtorrent python-libtorrent

9 Mainline Bittorrent Client Official client by creator of Bittorrent Python Open source Sets the standard and extensions to the Bittorrent protocol

10 Azureus Bittorrent Client Very popular alternative client Java Open source Lots of features, plugins, options High memory usage and load on system

11 Rakshasa libtorrent Bittorrent development library C++ Open source Used to write rtorrent, high performance terminal client Not very widespread usage

12 Rasterbar libtorrent Bittorrent development library C++ Open source Used by a number of Bittorrent clients Mature and stable

13 python-libtorrent Python wrapper for Rasterbar libtorrent Developed for Deluge Bittorrent client Beta software No documentation

14 libtorrent Attempted using Rakshasa and Rasterbar libtorrent Lack of documentation and online help Not as mature as desired Overall slow progress

15 .torrent File Specification Official document on bittorrent.org Details the storage format of metadata in.torrent files “Bencoded” strings, integers, lists, dictionaries to store metadata Unicode and ASCII

16 Bencoding Integer: 6 => “i6e” String: “hello” => “5:hello” List: [“hello”,”world”] => “l5:hello5:worlde” Dictionary: {“hello”:”world”} => “d5:hello5:worlde”

17 Bencoding implementation Python, good string manipulation Structure of a.torrent file is a dictionary containing string keys and integer, string, list, and dictionary values Recursion to encode Stack to unencode

18 Download Client Attempted writing a client using both Rakshasa and Rasterbar libtorrent Could download file based on proper.torrent file with Rakshasa Could not compile Rasterbar Lack of documentation hinders further progress

19 Future of the Client Continue work without documentation with either Rakshasa or Rasterbar libtorrent Write own torrent library, which increases “research” aspect of project

20 Possible tests Create a.torrent and see if it can be used to download the file Read in an external.torrent and see if is parsed correctly Tracker Peer communication is forthcoming, check of exchanged bencoded dictionaries

21 Preliminary Results Bencoded.torrent file creation and reading is very possible through the use of Python Client using Rakshasa libtorrent can download, but future progress will be slow

22 Summary Bencoding torrent files Torrent file structure and info Libtorrent (Rakshasa, Rasterbar) clients are hard to implement Probably will write own Bittorrent library in Python


Download ppt "Bittorrent Protocol Implementation. Bittorrent Bittorrent is a widely used peer-to- peer network used to distribute files, especially large ones It has."

Similar presentations


Ads by Google