Орлов Никита 2 3 • Базовая модель описания канала – модель канала со стираниями • Методы для повышения достоверности доставки сообщений: a) Протокол управления передачей (Transmission Control Protocol, ) b) Протокол пользовательских дейтаграмм (User Datagram Protocol, ) c) Прямая коррекция ошибок с помощью помехоустойчивого кодирования (Forward Error Correction, ) 4 5 Код был создан Майклом Лаби (Michael Luby) в 1998 г. Свое название он получил от “Luby Transform” (преобразование Лаби). Однако опубликованы коды были лишь в 2002 году. 6 инф. 1 1 1 1 кодовый бит 1 XOR 0 = 1 степень d = 2 0 1 1. Выбрать степень 𝑑𝑖 из распределения 𝜌 𝑑 2. Выбрать случайным равномерным образом 𝑑𝑖 соседей 3. Сложить соседей по модулю два ( ) 7 кодовое слово 1 инф. слово 1 0 1 1 1 1 1 1 K … 1 … 0 1 N 𝑁 – потенциально неограниченная величина 8 инф. слово кодовое слово ? 1 0 1 1 1 1 0 1 1 1 ? 1. Найти кодовые символы степени 𝑑 =1 2. Восстановить соответствующие инф. биты 9 1 кодовое слово 1 = 0 XOR 1 1 1 1 1 инф. слово 0 1 1 1 3. Обновить соседей этого инф. бита 4. Удалить ветви 5. Повторить 10 1 кодовое слово 1 1 1 1 1 инф. слово 0 1 1 1 11 инф. слово 1 1 1 0 1 кодовое слово 0 0 1 0 = 1 XOR 1 1 Отказ от декодирования! 12 Ключевым аспектом LT-кодов является плотность распределения вероятности 𝜌 𝑑 . Из одной вероятностной задачи был взят результат: «Из 𝐾 исходных символов с вероятностью 1/𝐾 производится 𝐾′ случайных выборок. Для того чтобы с вероятностью 1 − 𝛿 каждый из всех 𝐾 исходных символов оказался хоть раз среди 𝐾′ 𝐾 𝛿 кодовых символов, необходимо ≅ 𝐾 ln , при достаточно большом 𝐾» Имея такое число кодовых символов можно реконструировать исходное сообщение с вероятностью 1 − 𝛿. 𝐾′ 13 Для алгоритма декодирования на каждой итерации требуется, чтобы в графе остался хоть один символ степени 1. распределение моделирует ситуацию когда остается лишь один: 𝜇(𝑑) = 1 , 𝐾 1 , 𝑑(𝑑 − 1) 𝑑=1 𝑑 = 2, … , 𝐾 Стоимость кодирования этим распределением минимальна и равна ln 𝐾. Однако, использовать его не разумно так как кодовые символы плохо защищены. 14 Для LT-кода с 𝐾 = 104 15 Для обеспечения стабильного декодирования разработали робастное распределение 𝜌 𝑑 : 𝜇 𝑑 +𝜏 𝑑 𝜌(𝑑) = 𝑑𝜇 𝑑 +𝜏 𝑑 где 𝜏(𝑑) определяется согласно: 𝑆 𝐾𝑑 𝜏(𝑑) = 𝑆 ln 0 𝐾 𝑑 = 1,2, … , 𝑆−1 𝑆 𝛿 𝑑 = 𝐾𝑆 𝑑 > 𝐾𝑆 𝐾 здесь 𝑆 = 𝑐 ln 𝐾 - число исходных символов, 𝛿 хоть один раз входящих в кодовые символы степени 𝑑 = 𝐾𝑆, где 0 < 𝑐 < 1, а 𝛿 – вероятность отказа от декодирования. 16 Параметры кода 𝐾 = 104 , 𝑐 = 0.2, 𝛿 = 0.02, дают значения 𝑆 = 224, 𝐾/𝑆 = 41 17 Параметры кода 𝐾 = 104 , 𝑐 = 0.2, 𝛿 = 0.02, дают значения 𝑆 = 224, 𝐾/𝑆 = 41 18 19 Стоимость кодирования – среднее число операций XOR для получения одного кодового символа. В предельном случае 𝐾′ ≅ 𝐾 оказывается 𝐾 𝛿 равной ln Стоимость декодирования – среднее число операций XOR для получения одного информационного символа. Так же оказывается 𝐾 порядка ln операций 𝛿 Вероятность отказа от декодирования 𝛿 выбирается в зависимости от требования к надежности системы передачи 20 𝐾′ . 𝐾 Минимально-необходимая избыточность Исходное сообщение будет декодировано с вероятностью 1 − 𝛿 по 𝐾 ′ = 𝐾 1 + 𝜀 символам, где 𝑆 2𝑆 ln 𝛿 𝐾 𝐾 𝛿 𝜀= . Так как 𝑆 = 𝑐 ln 𝐾 параметром распределения 𝑐 можно добиться требуемого значения 𝐾 ′ Для декодирования сообщения требуется порядка 𝐾 𝐾 ln операций . В результате, время 𝛿 декодирования почти линейно зависит от 𝐾 21 Приведенные результаты являются аппроксимирующими. Результаты на практике тем ближе к теоретическим, чем больше 𝐾 Выбор больших значений 𝐾 напрямую связан с появлением весьма существенных задержек в системе, а так же серьезных требований к объему памяти декодера 22 o Кодовые символы генерируются независимо друг от друга o Длины исходных и кодовых символов должны быть равны o Коды основаны на статистической задаче, поэтому эффективность LT-кодов проявляется лишь при больших значениях 𝐾 23 24 Почти линейное время декодирования Скорость кода близка к 1 Простая реализация широковещательной передачи Экономия трафика Возможна адаптация кода к условиям в канале Не зависит от статистики стираний в канале Нет необходимости в обратном канале Алгоритмы кодирования и декодирования принципиально не зависят от размера пакета Для задачи «многие-одному» возможна параллельная загрузка 25 Отказ от декодирования может произойти даже при отсутствии стираний Плохие характеристики для малых 𝐾 Большие задержки передачи Серьезные требования к объему памяти декодера Требуются мощные коды обнаруживающие ошибки. Из-за конструкции кода одна не обнаруженная ошибка при декодировании может распространиться на большую часть остальных символов 26 27