LEDBAT (Low Extra Delay Background Transport, с англ. — «Фоновый транспорт с низкой дополнительной задержкой») — это способ быстрой передачи данных в Интернете без засорения сети[1]. LEDBAT был изобретен Станиславом Шалуновым[en][2][3] и используется Apple для обновлений программного обеспечения и BitTorrent в большинстве своих передач[4], а также при распространении программного обеспечения Microsoft SCCM[5]. По оценкам, LEDBAT будет переносить 13—20 % интернет-трафика[6].

LEDBAT — это алгоритм управления перегрузкой, основанный на задержке, который использует всю доступную полосу пропускания при ограничении увеличения задержки[7]. Он делает это путем измерения односторонней задержки и использования изменений в измерениях, чтобы ограничить перегрузку, которую вызывает сам поток LEDBAT в сети.

Цели дизайна править

Контроль перегруженности LEDBAT преследует следующие цели[2]:

  1. Использовать всю доступную пропускную способность и поддерживать низкую задержку в очереди, когда другой трафик отсутствует;
  2. Ограничить задержку в очереди, добавляемую к задержке остального трафика;
  3. Быстро уступить стандартному TCP, который имеет ту же самую узкую ссылку.

Реализации и развертывание править

Две основные реализации — это uTP от BitTorrent и как часть TCP от Apple. BitTorrent использует uTP для большей части трафика и делает код доступным по лицензии с открытым исходным кодом[8]. Apple использует LEDBAT для обновлений программного обеспечения, так что большие загрузки программного обеспечения для Mac OS X компьютеров и устройств IOS не мешают нормальной деятельности пользователей. Кроме этого Apple делает доступным исходный код[9].

Обе вышеперечисленные реализации направлены на ограничение задержки организации очереди до 100 мс. Это максимум времени задержки, разрешенный стандартизированным протоколом. Если один из них использует более низкое значение, то он будет голодать, когда используется другой[2][9].

В Windows 10 в Anniversary Update появилась поддержка LEDBAT через опцию недокументированного сокета в качестве экспериментального модуля контроля перегрузки Windows TCP и Windows Server 2019[10][11][12].

Пример править

Предположения:

  1. Часы отправителя и получателя не синхронизированы.
  2. Отправитель отправляет с фиксированной скоростью.

Отправитель отправляет 5 пакетов данных каждые 10 тактов:  . Единицы не важны. Получатель получает данные не только от этого конкретного отправителя, но и из других источников. Для 5 отправленных пакетов получатель получает их со следующими отсчетами тактов:  . Первые различия (задержка в одну сторону) между полученным и отправленным счетчиком тактов:  . Вторые различия (изменение в одну сторону задержки):  . Из положительного увеличения задержки в одном направлении получатель сделает вывод о том, что перегрузка увеличивается, и соответственно скорректирует скорость передачи.

См. также править

Примечания править

  1. McMillan, Robert. "How the Large Hadron Collider Will Bring the Internet to Everything". WIRED (англ.). Архивировано 25 июня 2018. Дата обращения: 9 октября 2018.
  2. 1 2 3 Mirja. Low Extra Delay Background Transport (LEDBAT). tools.ietf.org. Дата обращения: 8 июля 2020. Архивировано 2 октября 2020 года.
  3. By Tammy Parker, Open Garden to enable channel bonding over Wi-Fi, 3G and 4G Архивная копия от 12 мая 2016 на Wayback Machine, December 10, 2012, Retrieved November 24, 2013
  4. This Is How Your BitTorrent Downloads Move So Fast Архивная копия от 13 декабря 2015 на Wayback Machine, July 29, 2013, Retrieved November 24, 2013
  5. aczechowski. Content management fundamentals - Configuration Manager (англ.). docs.microsoft.com. Дата обращения: 2 апреля 2019. Архивировано 4 сентября 2019 года.
  6. By Gabe Stein, Former BitTorrent Engineer Thinks He Can Fix Your Wi-Fi--For Good Архивная копия от 24 сентября 2015 на Wayback Machine, July 24, 2013, Retrieved November 24, 2013
  7. BY ROBERT MCMILLAN, THE INTERNET OF THINGS Архивная копия от 6 марта 2014 на Wayback Machine, July 21, 2013, Retrieved November 24, 2013
  8. Libutp — The uTorrent Transport Protocol library Архивная копия от 25 января 2021 на Wayback Machine, Retrieved November 24, 2013
  9. 1 2 tcp_ledbat.c. Дата обращения: 3 июля 2020. Архивировано 6 ноября 2018 года.
  10. Announcing: New Transport Advancements in the Anniversary Update for Windows 10 and Windows Server 2016. Дата обращения: 3 июля 2020. Архивировано 9 октября 2018 года.
  11. Microsoft. LEDBAT++: Low priority TCP Congestion Control in Windows (PDF) (2017).
  12. "Top 10 Networking Features in Windows Server 2019: #9 LEDBAT – Latency Optimized Background Transport" (англ.). Архивировано 17 августа 2018. Дата обращения: 17 августа 2018.