Протокол BitTorrent
Что такое BitTorrent?
BitTorrent — пиринговый сетевой протокол для кооперативного обмена файлами через Интернет.Файлы передаются частями, каждый torrent-клиент, получая эти части, в то же время отдаёт их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных. Протокол был создан Брэмом Коэном, написавшим первый torrent-клиент «BitTorrent» на языке Python, 4 апреля 2001 года. Запуск первой версии состоялся 2 июля 2001 года.Существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.
Принцип работы
Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера, который лишь хранит информацию, полученную от подключенных к обмену клиентов, список самих клиентов и другую статистическую информацию. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения.При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Клиент, желающий скачать сегмент (личер), посылает запрос и, если второй клиент готов отдавать, получает этот сегмент. После этого клиент проверяет контрольную сумму сегмента. Если она совпала с той, что записана в торрент-файле, то сегмент считается успешно скачанным, и клиент оповещает всех присоединённых пиров о наличии у него этого сегмента. Если же контрольные суммы различаются, то сегмент начинает скачиваться заново. Некоторые клиенты банят тех пиров, которые слишком часто отдают некорректные сегменты.Таким образом, объём служебной информации (размер торрент-файла и размер сообщений со списком сегментов) напрямую зависит от количества, а значит, и размера сегментов. Поэтому при выборе сегмента необходимо соблюдать баланс: с одной стороны, при большом размере сегмента объём служебной информации будет меньше, но в случае ошибки проверки контрольной суммы придётся заново скачивать больше информации. С другой стороны, при малом размере ошибки не так критичны, так как необходимо заново скачать меньший объём, но зато размер торрент-файла и сообщений об имеющихся сегментах становится больше.
![Картинки по запросу bittorrent принцип работы](https://i.ytimg.com/vi/5ZnqUwKtS18/maxresdefault.jpg)
Какие программы работают с этим протоколом?
- WebTorrent
- BitComet
- BitSpirit
- BitTorrent (программа)
- FlashGet
- Lphant
- Net Transport
- Opera
- QBittorrent
- RTorrent
- Shareman
- Tixati
- Tribler
- ΜTorrent
Протокол HTTP
HTTP — это протокол, позволяющий получать различные ресурсы, например HTML-документы. Протокол HTTP лежит в основе обмена данными в Интернете. HTTP является протоколом клиент-серверного взаимодействия, что означает инициирование запросов к серверу самим получателем, обычно веб-браузером (web-browser). Полученный итоговый документ будет (может) состоять из различных поддокументов являющихся частью итогового документа: например, из отдельно полученного текста, описания структуры документа, изображений, видео-файлов, скриптов и многого другого.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLKpp3FbA7Yezru2ChQxlYgXUmxsr7FtcxWKWMHB3w6nnr_Kd96jmbVDKuyK8WSDQ7kq0qM1TCYoXOTLLIL2lDjXF7IMVN6FNT8h2kpadXDRL05hcOZPvlotw4Cv0fcWPABY67XDi2yyI/s640/what-is-http.jpg)
Запросы содержат следующие элементы:
HTTP-метод, обычно глагол подобно GET, POST или существительное, как OPTIONS или HEAD, определяющее операцию, которую клиент хочет выполнить. Обычно, клиент хочет получить ресурс (используя GET) или передать значения HTML-формы (используя POST), хотя другие операция могут быть необходимы в других случаях.
HTTP-метод, обычно глагол подобно GET, POST или существительное, как OPTIONS или HEAD, определяющее операцию, которую клиент хочет выполнить. Обычно, клиент хочет получить ресурс (используя GET) или передать значения HTML-формы (используя POST), хотя другие операция могут быть необходимы в других случаях.
Путь к ресурсу: URL ресурсы лишены элементов, которые очевидны из контекста, например без protocol (http://), domain (здесь developer.mozilla.org), или TCP port (здесь 80).
Версию HTTP-протокола.
Заголовки (опционально), предоставляюшие дополнительную информацию для сервера.
Или тело, для некоторых методов, таких как POST, которое содержит отправленны ресурс.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4BXnRvHvFyRBPvUjNM24-PBYtipTNwnK6kf_0CpzZrguliYN1rsGfP92RwTulV-1Wgh9CFRH3-kW5NmTyMeYjEZPxPpNJvLse8L0S2VkNEm1AZK9OlVGW29_qpKPV8rZsG51VPTlV9Rc/s640/http-htpps.png)
Совсем недавно HTTPS протокол был актуальным только для сайтов с проведением транзакций и обработкой личных данных пользователей. Сейчас уже этот протокол становится практически стандартом для всех. На это повлиял анонс Google о HTTPS, как о факторе, позитивно влияющем на ранжирование в поисковой выдачи. Кроме того несколько последних исследований от гигантов SEO рынка на больших объемах данных показали, что в ТОПе в основном сайты с защищенным шифрованием. Вероятно через пару лет, вопрос какой из протоколов выбрать вообще станет неактуальным.
HTTP это протокол передачи гипертекста. Он является базовым протоколом, который используется в всемировой паутине, и этот протокол определяет, как сообщения форматируются и передаются, и какие действия веб-серверы и браузеры должны выполнять в ответ на различные команды.
HTTP это протокол передачи гипертекста. Он является базовым протоколом, который используется в всемировой паутине, и этот протокол определяет, как сообщения форматируются и передаются, и какие действия веб-серверы и браузеры должны выполнять в ответ на различные команды.