BitTorrent (дословно «поток битов») — P2P-протокол, предназначенный для обмена файлами через интернет. Общие особенности
- Отсутствие очередей на закачку.
- Файлы закачиваются небольшими сегментами; чем менее доступен сегмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сида» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
- Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
- Закачанные сегменты становятся немедленно доступны другим клиентам.
- Контролируется целостность каждого сегмента.
- В качестве объекта закачки могут выступать несколько файлов (например, содержимое каталога).
Принцип работы протокола
Принцип работы BitTorrent: Нагрузка на распространителя файла уменьшается благодаря тому, что клиенты начинают обмениваться данными сразу же, даже если файл не докачан ими до конца.
Перед началом закачки клиент подсоединяется к трекеру, сообщает ему свой адрес, и получает адреса других клиентов, скачивающих или раздающих этот же файл. Далее клиент периодически информирует трекер о своем прогрессе и получает обновленный список адресов.
Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения. Неправильная настройка NAT или файрвола могут этому помешать.
При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Клиент, желающий скачать сегмент, посылает запрос и, если второй клиент готов отдавать, получает этот сегмент. После этого клиент проверяет контрольную сумму сегмента и оповещает всех присоединенных пиров о наличии у него этого сегмента.
Каждый клиент имеет возможность временно блокировать отдачу другому клиенту (англ. choke). Это делается для более эффективного использования канала отдачи. Кроме того, при выборе кого разблокировать предпочтение отдается пирам, которые сами передали этому клиенту много сегментов. Таким образом, пиры с хорошими скоростями отдачи поощряют друг друга по принципу «ты — мне, я — тебе».
Чем больше качают, тем выше скорость, вместо одного интернет-канала на всех используется суммарная доступная емкость каналов всех качающих, которая больше 100 мегабит.