140 likes | 297 Views
Bittorrent. Zachary Neyland. Definitions. Client – An application Tracker – A server that assists in communication between peers Peer – Someone that is currently downloading while sharing Seed – Someone who is only sharing; 100% complete
E N D
Bittorrent Zachary Neyland
Definitions • Client – An application • Tracker – A server that assists in communication between peers • Peer – Someone that is currently downloading while sharing • Seed – Someone who is only sharing; 100% complete • Leecher – Someone who ONLY downloads and does not share • Swarm – The group of computers uploading/downloading
What is BT? • BT is a Peer-2-Peer protocol • Created by Bram Cohen in April 2001, released July 2001 • Peers/Seeds VS a centralized file server
General Idea • File is broken in to many different pieces • Each piece is downloaded in a “rarest” first order • As peers get more pieces they seed those until 100% - then they become a seed
Tracker’s Role • Assists in communication between peers • It manages connections: • Informs the swarm of a new client • Informs the new client of the swarm • Does NOT contain any information about the file being downloaded • Allows for large number of clients to connect without using much power
Client’s Role • Determines what order to download pieces in • Creates and manages a list of peers/seeds • Reassembles file once all of the pieces have arrived
Client -> Tracker communication(Announcement) • Info_hash – The file that the client is looking to download • peer_id – 20 characters that typically represent the client used • Usually –AAXXXX-… • port/ip – The port and IP address that the client is running on • Up/downloaded – Amount in bytes that the client has done • Events • Started • Stopped • Completed • Left – amount of bytes left to download
Tracker Response • Interval – How often the client should announce itself • Complete – Number of seeders • Incomplete – Number of peers • Peers – A list of all clients connected (seeds and peers) • Two ways of sending the information • Binary and Dictionary
Binary VS Dictionary • Binary • A string consisting of multiples of 6 bytes • 4 Bytes are the IP • 2 Bytes are the port • Dictionary • Plain text consisting of: • Peer_id • IP • Port
Example • 4 peers and 1 seed • 4 pieces • Seed only sends needs to send a total of one copy
BT Indexers • Lists .torrent files • Typically a website • Usually provides a means for finding specific torrents • Searching • Forums • Often double as a tracker
Legal Issues • Trackers do not actually host any files • Peers may not actually send 100% of a file to another peer
Applications • Piracy • Games • Movies • Music • TV • Legit • Patches (WOW) • OS Distribution (Linux) • Music • Games • Movies
Questions • Who created the BT protocol? • Is ThePirateBay an indexer or a tracker?