admin ®
Gender:  Longevity: 11 years Posts: 207

|
BitTorrent (literally “bit stream”) is a P2P protocol designed for exchanging files over the Internet. BitTorrent was created by programmer Bram Cohen.TerminologyDistribution (English seeding) is the process of distributing a file using the BitTorrent protocol. Peer (English peer - accomplice) - a client participating in the distribution. Sometimes only downloading participants are called peers. Seed, sometimes seeder (English seeder - sower) - a peer that has all the segments of the distributed file, that is, either the initial distributor of the file, or who has already downloaded the entire file. Leecher (English leech - leech) is a peer that does not yet have all the segments, that is, it continues to download. The term is often used in the negative sense that it has in other file-sharing networks: a user who gives away much less than he downloads. Swarm (eng. swarm) - the totality of all peers participating in the distribution. Availability (English availability), or distributed copies - the number of complete copies of the file available to the client. Each seed adds 1.0 to this number; Leechers increase availability based on download quantity, which other leechers do not have. For example, if there is one seed and two leechers in the distribution, each having downloaded 50% of the file (the downloaded parts are equal to each other), then the availability is 1.50. Rating (eng. share ratio) - the ratio of uploaded to downloaded. Announcement (English announce) - a client’s request to the tracker. With each announcement, the client transmits to the tracker information about the volumes of downloaded and uploaded content, and the tracker transmits to the client a list of addresses of other clients. The client contacts the tracker at certain time intervals, which are determined by the client and tracker settings. Announcement URL (English announce URL) - the address of the tracker to which the client makes an announcement. In many clients it is called “Tracker URL”. May include “passkey” - a unique code assigned by the tracker to the user’s account, which helps identify it on the tracker (added to the announcement URL in the *.torrent file itself). General features- No queues for downloading.
- Files are downloaded in small segments; The less accessible a segment is, the more often it will be transmitted. Thus, the presence of a “seeder” in the network with a complete file for downloading is not necessary - the system distributes segments between “peers” so that they can subsequently exchange the missing segments.
- Clients (peers) exchange segments directly with each other, according to the principle “you - to me, I - to you”.
- Uploaded segments become immediately available to other clients.
- The integrity of each segment is monitored.
- The download object can be several files (for example, the contents of a directory).
Protocols and ports- Clients connect to the tracker using the TCP protocol.
- Clients connect to each other using the TCP protocol.
- Port numbers are not fixed in the protocol specification and can be changed if necessary.
- Moreover, at the moment most trackers use the usual HTTP port 80, and for clients it is recommended to select a random incoming port.
- The DHT network in BitTorrent clients uses the UDP protocol.
In addition, the UDP protocol is used by UDP trackers (not supported by all clients and is not an official part of the protocol) and to connect clients to each other via UDP NAT Traversal[ /b] (used only in the BitComet client and is not an official part of the protocol).TrackerTracker (English tracker) is a specialized server running over the HTTP protocol. The tracker is needed so that clients can find each other. In fact, the tracker stores IP addresses, incoming client ports, and hashes that uniquely identify the objects involved in the downloads. According to the standard, file names are not stored on the tracker, and they cannot be found out by hash sums. However, in practice, a tracker often, in addition to its main function, also functions as a small web server. Such a server stores metadata files and descriptions of distributed files, provides download statistics for different files, shows the current number of connected peers, etc.Working without a trackerNew versions of the protocol have developed trackerless systems that solve some of the previous problems. The failure of a tracker in such systems does not automatically lead to the failure of the entire network. Starting with version 4.2.0 of the official client, it has implemented a trackerless function based on the Kademlia protocol. In such systems, the tracker is available decentrally, on clients, in the form of a distributed hash table. At the moment, not all clients use a protocol compatible with each other. BitComet, µTorrent, KTorrent and the official BitTorrent client are compatible with each other. Azureus also has a trackerless mode, but its implementation differs from the official one, as a result of which it cannot work via DHT with the above clients. The principle of operation of the BitTorrent protocol Before starting the download, the client connects to the tracker, tells it its address and the hash amount of the requested file, in response, the client receives the addresses of other clients downloading or distributing the same file. Next, the client periodically informs the tracker about its progress and receives an updated list of addresses.
Clients connect to each other and exchange file segments without the direct participation of the tracker. For the BitTorrent network to operate effectively, it is necessary that as many clients as possible be able to accept incoming connections. Incorrect NAT or firewall configuration may prevent this. When connecting, clients immediately exchange information about the segments they have. The client who wants to download the segment sends a request, and if the second client is ready to download, it receives this segment. The client then verifies the checksum of the segment and notifies all connected peers that it has this segment. Each client has the ability to temporarily block the return to another client (English choke). This is done to more efficiently use the output channel. In addition, when choosing who to unblock, preference is given to peers who have themselves transferred many segments to this client. Thus, peers with good upload rates encourage each other according to the principle “you give me, I give you.”Super seeding (super seed)- Super seed (English super seeding) is a method implemented in those BitTorrent clients whose authors try to minimize the amount of data before the first completion of the peer download. The method was conceived by John Hoffman and was first implemented in the BitTornado client in mid-2003.
- A super seed is a change in seeder behavior and cannot be implemented without breaking the BitTorrent protocol. However, this is not stated by the protocol developer, Bram Cohen, nor in the official client.
- Super seed works when there is only one seed. In fact, it forces users to share downloaded data. A client that has given any part of a file to one participant stops transferring data until it finds a second copy of this part on the network. Since many participants are unable or unwilling to make downloaded data available to others, the overall upload rate drops. In normal mode, unlike super-seed, everyone always receives the requested information, if available, so the average data transfer speed is higher in it.
- Super seed is effective in hands with a large number of players. With a small group of people (2-3 people), their clients, for various reasons, may refuse to establish contact with each other. In this case, the enabled super seed will force clients to wait until the data becomes available. When the number of downloaders is large (10-20 people), it is enough to give each part of the file only once, then clients will be able to exchange it among themselves, and each of them will receive the entire file.
Client programsCross-platform:- aria2 - supports HTTP, FTP, BitTorrent; Metalink 3.0 files
- Azureus - written in Java, so it is cross-platform;
- BitTornado is a cross-platform client written in Python;
- FoxTorrent is an extension for the Mozilla Firefox browser that implements the functions of the BitTorrent client;
- mlDonkey - cross-platform client;
- The Opera browser fully supports downloading torrents, starting from version 9.0;
- TorrentFlux - written in PHP, runs on a remote Web server as a PHP script, allowing you not to keep your computer turned on all the time, but at the same time download and distribute torrents.
For UNIX-like systems:- BTPD - console client for Unix/GNU+Linux, written in C++; works in daemon mode;
- CTorrent is a console client for Unix/GNU+Linux, which ceased development in 2004;
- Deluge is a client for GNU/Linux, written in Python; uses GTK;
- KTorrent - uses the Qt library; works in the KDE environment;
- rTorrent - console client for UNIX/GNU+Linux, written in C++; uses ncurses and libTorrent libraries;
- Transmission is a client for Mac OS X, FreeBSD, OpenBSD, NetBSD, GNU/Linux and BeOS, using GTK.
For Microsoft Windows and Windows NT:- µTorrent;
- BitComet;
- FlashGet;
- GetRight.
- Shareaza - supports work with several file-sharing networks, including BitTorrent.
For Mac OS:
|