Low Extra Delay Background Transport ( LEDBAT ) — это способ быстрой передачи данных в Интернете без засорения сети. [1] LEDBAT был изобретен Станиславом Шалуновым [2] [3] и используется Apple для обновлений программного обеспечения , BitTorrent для большинства своих передач [4] и точками распространения программного обеспечения Microsoft SCCM . [5] В какой-то момент времени LEDBAT, по оценкам, передавал 13–20% интернет-трафика . [4] [6] [3]
LEDBAT — это алгоритм управления перегрузкой на основе задержки , который использует всю доступную полосу пропускания , ограничивая при этом увеличение задержки; [2] [7] он делает это путем измерения односторонней задержки и использования изменений в измерениях для ограничения перегрузки, которую сам поток LEDBAT вызывает в сети. LEDBAT описан в RFC 6817.
Контроль перегрузки LEDBAT преследует следующие цели: [2]
Две основные реализации — uTP от BitTorrent и как часть TCP от Apple. BitTorrent использует uTP для большей части трафика и делает код доступным по лицензии с открытым исходным кодом . [8] Apple использует LEDBAT для обновлений программного обеспечения, чтобы большие загрузки программного обеспечения на компьютеры macOS и устройства iOS не мешали обычной деятельности пользователя; Apple также делает исходный код доступным. [9]
Обе вышеприведенные реализации направлены на ограничение задержки сетевой очереди до 100 мс. Это максимально допустимый стандартизированным протоколом предел. Если бы одна использовала меньшее значение, то она бы голодала, когда другая была бы в использовании. [2] [9]
В обновлении Windows 10 Anniversary Update появилась поддержка LEDBAT через недокументированную опцию сокета в качестве экспериментального модуля управления перегрузкой TCP Windows и Windows Server 2019. [ 10] [11] [12]
Предположения:
Отправитель отправляет 5 пакетов данных каждые 10 тактов: 10, 20, 30, 40, 50. Единицы измерения не важны. Получатель получает данные не только от этого конкретного отправителя, но и из других источников. Для 5 отправленных пакетов получатель получает их на следующих тактах: 112, 135, 176, 250, 326. Первые различия (задержка в одну сторону) между полученными и отправленными тактами составляют: 102, 115, 146, 210, 276. Вторые различия (изменение задержки в одну сторону) составляют: 13 (115 - 102), 31, 64 и 66. Получатель сделает вывод из положительного увеличения задержек в одну сторону, что перегрузка увеличивается, и соответствующим образом скорректирует скорость передачи.