Любая передача режется на пакеты. Они летят независимо. Часть не доходит.
FEC - Forward Error Correction. Не реагируем на потерю - готовимся к ней.
Потеряли → попросили → подождали 200 мс.
Отправили с запасом → потеряли → восстановили.
10 пакетов данных + 4 восстановительных = 14 итого.
Выживут любые 10 из 14 - исходные данные целы.
Восстановительные пакеты - не копия, это математически вычисленная избыточность.
Сколько точек нужно, чтобы однозначно провести прямую?
Полином степени k−1 однозначно задаётся k точками. Меньше - нельзя определить. Больше - можно восстановить при потерях.
Данные: 3 и 7. Кодируем как точки прямой.
Остались (1, 3) и (3, 11). Проводим прямую. При x=2 единственно возможное значение - 7. Восстановлено.
RS-коды используют не прямые, а полиномы - кривые высоких степеней.
k пакетов данных → k точек полинома. Добавляем лишние точки-пакеты. Потеряли несколько → восстановили кривую → восстановили данные.
① Только целые числа ② Никогда не выходит за 0–255 ③ Сложение, умножение, деление работают корректно
Придумал Эварист Галуа в 1830-х. Ему было ~20 лет. Погиб на дуэли через год. Его математика работает в каждом QR-коде на планете.
GF(256) - замкнутая система. Любая операция над числами 0–255 даёт результат в 0–255. Без исключений.
Таблицы умножения для GF(256) вычислены заранее. Процессор смотрит готовый ответ за микросекунды.
Весь процесс - умножение матриц в GF(256).
Строки матрицы выживших пакетов → обратная матрица → умножаем → оригинал. Все обратные матрицы вычислены заранее.
Намеренное перемешивание пакетов перед отправкой.
Царапина = burst loss. CIRC (двойной RS + interleaving) превращает её в равномерные единичные ошибки - RS восстанавливает их незаметно.
udp2raw маскирует UDP под TCP. Сам по себе потери не лечит.
В связке с tinyfecVPN: RS-избыточность добавляется внутри туннеля, udp2raw скрывает туннель под TCP.
Провайдер видит TCP.
Потери восстанавливаются автоматически.
Математика Галуа из 1830-х - в вашем терминале.
Избыточность - инструмент. Иногда +40% трафика лучше, чем 300 мс задержки.
Математика XIX века - в вашем телефоне. Галуа придумал это в 1830-х. Хорошая теория находит применение.
Инструмент под задачу. RS - не серебряная пуля. В 5G выбрали другое