Орлов Никита 2 3 • Базовая модель описания канала – модель канала со стираниями • Методы для повышения достоверности доставки сообщений: a) Протокол управления передачей (Transmission Control Protocol, ) b) Протокол пользовательских дейтаграмм (User Datagram Protocol, ) c) Прямая коррекция ошибок с помощью помехоустойчивого кодирования (Forward Error Correction, ) 4 Преимущества: Гарантированная доставка данных Устраняет дублирование при получении двух копий одного пакета Недостатки: Необходимость обратного канала Большие задержки из-за повторной пересылки и установки соединения Не предусмотрено широковещательной рассылки (протокол «точка-точка») 5 Преимущества: Минимальная задержка передачи Минимальный трафик Возможна широковещательная рассылка Недостатки: Возможна потеря или дублирование пакетов Не заботится о корректном порядке доставки 6 Классические FEC коды не способны решить проблему потерь пакетов: Сверточные коды исправляют отдельные битовые ошибки Блоковые коды (в том числе РС) способны исправлять пачки ошибок лишь в отдельно взятом пакете Для решения данной проблемы был разработан новый класс помехоустойчивых кодов – . 7 Увеличить достоверность передачи данных Упростить широковещательную передачу Передача в режиме реального времени применить кодирование для сетевых приложений работающих в режиме реального времени, примерами таких являются: 1) Цифровое телевещание через Интернет (IPTV) 2) Интернет-телефония (VoIP) 3) Распределенные сетевые игры 4) и др. 8 9 Требования к идеальному кодовому «фонтану»: 1. Код должен представлять потенциально неограниченный поток символов 2. Время кодирования одного символа должно быть малым 3. Сообщение из 𝐾 символов должно быть реконструировано (декодировано) по любым 𝐾 кодовым символам 4. Время реконструкции должно линейно зависеть от величины 𝐾 10 Код был создан Майклом Лаби (Michael Luby) в 1998 г. Свое название он получил от “Luby Transform” (преобразование Лаби). Однако опубликованы коды были лишь в 2002 году. 11 инф. 1 1 1 1 кодовый бит 1 XOR 0 = 1 степень d = 2 0 1 1. Выбрать степень 𝑑𝑖 из распределения 𝜌 𝑑 2. Выбрать случайным равномерным образом 𝑑𝑖 соседей 3. Сложить соседей по модулю два ( ) 12 кодовое слово 1 инф. слово 1 0 1 1 1 1 1 1 K … 1 … 0 1 N 𝑁 – потенциально неограниченная величина 13 инф. слово кодовое слово ? 1 0 1 1 1 1 0 1 1 1 ? 1. Найти кодовые символы степени 𝑑 =1 2. Восстановить соответствующие инф. биты 14 1 кодовое слово 1 = 0 XOR 1 1 1 1 1 инф. слово 0 1 1 1 3. Обновить соседей этого инф. бита 4. Удалить ветви 5. Повторить 15 1 кодовое слово 1 1 1 1 1 инф. слово 0 1 1 1 16 инф. слово 1 1 1 0 1 кодовое слово 0 0 1 0 = 1 XOR 1 1 Отказ от декодирования! 17 инф. слово кодовое слово a1 c1 a2 a3 c2 c3 a4 a5 c4 c5 c6 18 инф. слово кодовое слово a1 c1 a2 a3 c2 c3 a4 a5 c4 c5 c6 19 инф. слово кодовое слово a1 c1 a2 a3 c2 c3 a4 a5 c4 c5 c6 20 инф. слово кодовое слово a1 c1 a2 a3 c2 c3 a4 a5 c4 c5 c6 21 инф. слово кодовое слово a1 c1 a2 a3 c2 c3 a4 a5 c4 c5 c6 22 инф. слово кодовое слово a1 c1 a2 a3 c2 c3 a4 a5 c4 c5 c6 23 инф. слово кодовое слово a1 c1 a2 a3 c2 c3 a4 a5 c4 c5 c6 Успешное декодирование! 24 Ключевым аспектом LT-кодов является плотность распределения вероятности 𝜌 𝑑 . Из одной вероятностной задачи был взят результат: «Из 𝐾 исходных символов с вероятностью 1/𝐾 производится 𝐾′ случайных выборок. Для того чтобы с вероятностью 1 − 𝛿 каждый из всех 𝐾 исходных символов оказался хоть раз среди 𝐾′ 𝐾 𝛿 кодовых символов, необходимо ≅ 𝐾 ln , при достаточно большом 𝐾» Имея такое число кодовых символов можно реконструировать исходное сообщение с вероятностью 1 − 𝛿. 𝐾′ 25 Для алгоритма декодирования на каждой итерации требуется, чтобы в графе остался хоть один символ степени 1. Идеальное распределение моделирует ситуацию когда остается лишь один: 𝜇(𝑑) = 1 , 𝐾 1 , 𝑑(𝑑 − 1) 𝑑=1 𝑑 = 2, … , 𝐾 Стоимость кодирования этим распределением минимальна и равна ln 𝐾. Однако, использовать его не разумно так как кодовые символы плохо защищены. 26 Для LT-кода с 𝐾 = 104 27 Для обеспечения стабильного декодирования разработали робастное распределение 𝜌 𝑑 : 𝜇 𝑑 +𝜏 𝑑 𝜌(𝑑) = 𝑑𝜇 𝑑 +𝜏 𝑑 где 𝜏(𝑑) определяется согласно: 𝑆 𝐾𝑑 𝜏(𝑑) = 𝑆 ln 0 𝐾 𝑑 = 1,2, … , 𝑆−1 𝑆 𝛿 𝑑 = 𝐾𝑆 𝑑 > 𝐾𝑆 𝐾 здесь 𝑆 = 𝑐 ln 𝐾 - число исходных символов, 𝛿 хоть один раз входящих в кодовые символы степени 𝑑 = 𝐾𝑆, где 0 < 𝑐 < 1, а 𝛿 – вероятность отказа от декодирования. 28 Параметры кода 𝐾 = 104 , 𝑐 = 0.2, 𝛿 = 0.02, дают значения 𝑆 = 224, 𝐾/𝑆 = 41 29 Параметры кода 𝐾 = 104 , 𝑐 = 0.2, 𝛿 = 0.02, дают значения 𝑆 = 224, 𝐾/𝑆 = 41 30 31 Стоимость кодирования – среднее число операций XOR для получения одного кодового символа. В предельном случае 𝐾′ ≅ 𝐾 оказывается 𝐾 𝛿 равной ln Стоимость декодирования – среднее число операций XOR для получения одного информационного символа. Так же оказывается 𝐾 порядка ln операций 𝛿 Вероятность отказа от декодирования 𝛿 выбирается в зависимости от требования к надежности системы передачи 32 𝐾′ . 𝐾 Минимально-необходимая избыточность Исходное сообщение будет декодировано с вероятностью 1 − 𝛿 по 𝐾 ′ = 𝐾 1 + 𝜀 символам, где 𝑆 2𝑆 ln 𝛿 𝐾 𝐾 𝛿 𝜀= . Так как 𝑆 = 𝑐 ln 𝐾 параметром распределения 𝑐 можно добиться требуемого значения 𝐾 ′ Для декодирования сообщения требуется порядка 𝐾 𝐾 ln операций . В результате, время 𝛿 декодирования почти линейно зависит от 𝐾 33 Приведенные результаты являются аппроксимирующими. Результаты на практике тем ближе к теоретическим, чем больше 𝐾 Выбор больших значений 𝐾 напрямую связан с появлением весьма существенных задержек в системе, а так же серьезных требований к объему памяти декодера 34 o Кодовые символы генерируются независимо друг от друга o Длины исходных и кодовых символов должны быть равны o Коды основаны на статистической задаче, по этому эффективность LT-кодов проявляется лишь при больших значениях 𝐾 35 • • • • 𝑁 – число кодовых символов 𝐾 – число информационных символов 𝐿 - размер символа (размеры информационного и кодового символа должны совпадать) Параметры распределения 𝜌 𝑑 : o 0 < 𝑐 < 1 – влияет на 𝐾′ (число кодовых символов необходимых для восстановления исходного сообщения) o 0 < 𝛿 < 1 – вероятность отказа от декодирования 36 Канал со стираниями можно характеризовать величиной (Packet Loss Ratio), то есть соотношением числа потерянных пакетов к числу переданных, выраженных в процентах. является аналогом вероятности стирания 𝑝𝑒 = 1 − 𝑞 37 38 Почти линейное время декодирования Скорость кода близка к 1 Простая реализация широковещательной передачи Экономия трафика Возможна адаптация кода к условиям в канале Не зависит от статистики стираний в канале Нет необходимости в обратном канале Алгоритмы кодирования и декодирования принципиально не зависят от размера пакета Для задачи «многие-одному» возможна параллельная загрузка 39 Отказ от декодирования может произойти даже при отсутствии стираний Плохие характеристики для малых 𝐾 Большие задержки передачи Серьезные требования к объему памяти декодера Требуются мощные коды обнаруживающие ошибки. Из-за конструкции кода одна не обнаруженная ошибка при декодировании может распространиться на большую часть остальных символов 40 41