LEDBAT
Низкая дополнительная задержка фонового транспорта (англ. Low Extra Delay Background Transport, LEDBAT) — это способ быстрой передачи данных в Интернете без засорения сети[1]. LEDBAT был изобретен Станиславом Шалуновым[2][3] и используется Apple для обновлений программного обеспечения и BitTorrent в большинстве своих передач[4], а также при распространении программного обеспечения Microsoft SCCM[5]. По оценкам, LEDBAT будет переносить 13—20 % интернет-трафика[6].
LEDBAT — это алгоритм управления перегрузкой, основанный на задержке, который использует всю доступную полосу пропускания при ограничении увеличения задержки[7]. Он делает это путем измерения односторонней задержки и использования изменений в измерениях, чтобы ограничить перегрузку, которую вызывает сам поток LEDBAT в сети.
Цели дизайна
Контроль перегруженности LEDBAT преследует следующие цели[2]:
- Использовать всю доступную пропускную способность и поддерживать низкую задержку в очереди, когда другой трафик отсутствует;
- Ограничить задержку в очереди, добавляемую к задержке другого трафика;
- Быстро уступить стандартному 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].
Пример
Предположения:
- Часы отправителя и получателя не синхронизированы.
- Отправитель отправляет с фиксированной скоростью.
Отправитель отправляет 5 пакетов данных каждые 10 тактов: . Единицы не важны. Получатель получает данные не только от этого конкретного отправителя, но и из других источников. Для 5 отправленных пакетов получатель получает их со следующими отсчетами тактов: . Первые различия (задержка в одну сторону) между полученным и отправленным счетчиком тактов: . Вторые различия (изменение в одну сторону задержки): . Из положительного увеличения задержки в одном направлении получатель сделает вывод о том, что перегрузка увеличивается, и соответственно скорректирует скорость передачи.
См. также
- TCP перегрузка контроля
Примечания
- McMillan. How the Large Hadron Collider Will Bring the Internet to Everything (англ.), WIRED. Дата обращения 9 октября 2018.
- Mirja. Low Extra Delay Background Transport (LEDBAT) . tools.ietf.org.
- By Tammy Parker, Open Garden to enable channel bonding over Wi-Fi, 3G and 4G, December 10, 2012, Retrieved November 24, 2013
- This Is How Your BitTorrent Downloads Move So Fast, July 29, 2013, Retrieved November 24, 2013
- aczechowski. Content management fundamentals - Configuration Manager (англ.). docs.microsoft.com. Дата обращения: 2 апреля 2019.
- By Gabe Stein, Former BitTorrent Engineer Thinks He Can Fix Your Wi-Fi--For Good, July 24, 2013, Retrieved November 24, 2013
- BY ROBERT MCMILLAN, THE INTERNET OF THINGS, July 21, 2013, Retrieved November 24, 2013
- Libutp — The uTorrent Transport Protocol library, Retrieved November 24, 2013
- tcp_ledbat.c
- Announcing: New Transport Advancements in the Anniversary Update for Windows 10 and Windows Server 2016 .
- Microsoft. LEDBAT++: Low priority TCP Congestion Control in Windows (PDF) (2017).
- Top 10 Networking Features in Windows Server 2019: #9 LEDBAT – Latency Optimized Background Transport (англ.). Дата обращения 17 августа 2018.