Local Peer Discovery
Local Peer Discovery (LPD), Local Service Discovery (LSD) — протокол, расширяющий возможности системы обмена файлами BitTorrent. Он был разработан для получения возможности обнаружения торрент-клиентом пиров в локальных сетях, чтобы сократить трафик, проходящий через подключение к Интернету в случае, когда другой компьютер в локальной сети раздаёт нужный торрент.
История
Протокол Local Peer Discovery был разработан в 2007 году и реализован в uTorrent версии 1.7[1].
Формальная спецификация протокола — BEP 14 — была создана в 2015 году[2].
Протокол
Протокол LPD использует многоадресную рассылку пакетов приватного диапазона подобно протоколу SSDP[2].
LPD (LSD) реализован с помощью похожих на HTTP сообщений в пакетах UDP, отправляемых multicast-группе IPv4 239.192.152.143:6771 из диапазона административно-ограниченных (англ. Administratively scoped) адресов многоадресных рассылок (org-local)[3][2].
В IPv6 для Local Service Discovery используется multicast-группа [ff15::efc0:988f]:6771, относящаяся к адресному пространству site-local[2].
Данные в пакете LPD/LSD представляют собой текстовые строки. Структура данных[2]:
BT-SEARCH * HTTP/1.1\r\n Host: <host>\r\n Port: <port>\r\n Infohash: <ihash>\r\n cookie: <cookie (optional)>\r\n \r\n \r\n
Значения полей пакета[2]:
- <host> — адрес использованной мультикаст-группы (
[ff15::efc0:988f]:6771или239.192.152.143:6771); - <port> — порт, на котором торрент-клиент принимает соединения;
- <ihash> — хэш раздачи (торрента);
- <cookie (optional)> — специфичное для отправителя значение, по которому отправитель может определить, что к нему вернулся его собственный пакет, вся строка может отсутствовать в пакете;
- постоянные строки:
- \r\n — символы возврата каретки и новой строки;
BT-SEARCH * HTTP/1.1— идентификатор протокола LDP/LSD (заголовок).
Реализации
Поддержка протокола Local Peer Discovery (Local Service Discovery) реализована в следующих клиентах:
- µTorrent, начиная с версии 1.7 RC6[4];
- BitTorrent/Mainline[5];
- MonoTorrent, начиная с версии 0.80[6]
- протокол реализован в библиотеке libtorrent[7]:
- Transmission, начиная с версии 2.0[8];
- Deluge, как минимум с версии 2.1[9]
Альтернативы
10 мая 2008 года была опубликована спецификация BEP 26 multicast-расширения протокола Bittorrent «Zeroconf Peer Advertising and Discovery»[10], но оно мало используется из-за сложности реализации.
Примечания
- ↑ Local Peer Discovery - Best new uTorrent Feature (англ.). SuperJason’s Personal Blog (14 августа 2007). Дата обращения: 20 января 2026. Архивировано из оригинала 12 марта 2013 года.
- ↑ 1 2 3 4 5 6 BEP14, 2017.
- ↑ Protocol Design Discussion » Local Peer Discovery Documentation (англ.). uTorrnet Forum (30 октября 2009). Дата обращения: 12 декабря 2009. Архивировано из оригинала 29 сентября 2012 года.
- ↑ Announcements » µTorrent 1.7 Release Candidate 6 (англ.) (28 июня 2007). Дата обращения: 12 декабря 2009. Архивировано из оригинала 29 сентября 2012 года.
- ↑ BitTorrent User Manual (англ.). Дата обращения: 12 декабря 2009. Архивировано из оригинала 29 сентября 2012 года.
- ↑ MonoTorrent 0.80 (англ.). Дата обращения: 5 мая 2010. Архивировано из оригинала 29 сентября 2012 года.
- ↑ libtorrent manual: features (англ.). Дата обращения: 12 декабря 2009. Архивировано из оригинала 29 сентября 2012 года.
- ↑ Changes : Transmission 2.00 (англ.) (15 июня 2010). Дата обращения: 23 июня 2010. Архивировано 31 августа 2011 года.
- ↑ Релиз BitTorrent-клиента Deluge 2.1. OpenNET (29 июня 2022).
- ↑ BEP 26 : [англ.] : [арх. 23 ноября 2025] // BitTorrent.org. — 2017. — 12 January.