Исследование эффективности применения перспективных корректирующих кодов в гибридной ARQ/FEC системе
на прикладном уровне
Карпухин Е.О., Центр информационных технологий в проектировании Российской
академии наук ret1987@yandex.ru
Бритвин Н.В., Мешавкин К.В., Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский авиационный институт (национальный исследовательский университет)» britvin.nickita@yandex.ru, meshavkin1996@gmail.com
Аннотация
Рассмотрены особенности реализации перспективных корректирующих кодов в гибридных ARQ/FEC системах. Разработана программная модель, позволяющая оценить эффективность применения кодов Рида-Соломона, расширенных кодов с проверкой на четность и «сетевого» кода в гибридных системах с обратной связью и методами помехоустойчивого кодирования. Оценка производительности операций кодирования и декодирования показала преимущество использования «сетевого» кода в ARQ/FEC системах перед кодами Рида-Соломона.
1 Введение
Одним из наиболее эффективных способов обеспечения надежной доставки сообщений, позволяющим сократить число перезапросов и уменьшить время сборки данных на прикладном уровне, является применение механизма FEC (forward error correction). Однако при малых задержках в сети накладные расходы на кодирование достаточно велики, что не позволяет широко использовать механизм FEC. Гибридные ARQ/FEC системы обладают
преимуществами и ARQ (automatic repeat request), и FEC систем, что вызывает интерес к исследованию эффективности их применения в системах информационного взаимодействия. Анализ ARQ/FEC систем [1] показал, что необходимо использовать корректирующие коды, позволяющие восстанавливать искаженные символы и пакеты на приемной стороне без использования механизмов обратной связи, а также применять необходимые комбинации FEC и изменять скорость отправки данных
путем управления окном получателя [2].
В работе [3] выделены перспективные коды для использования в ARQ/FEC системах: расширенные коды с проверкой на четность и коды Рида-Соломона. К ним следует добавить «сетевой» код, который позволяет сократить время сборки данных [4].
Исследовать эффективность применения кодов Рида-Соломона, расширенного кода с проверкой на четность и «сетевого» кода в гибридной ARQ/FEC системе позволит разработка соответствующих кодеков и программной модели для оценки их производительности при использовании различных сценариев управления окном и корректирующей способностью кодов.
2 Особенности реализации кодеков в программной модели
Расширенные коды с проверкой на четность, коды Рида-Соломона и «сетевой» код предназначены для кодирования и декодирования байтовых данных. Однако в сетях с коммутацией пакетов, таких как Интернет, размер пакета может достигать нескольких килобайт, что делает затруднительным использование указанных кодов. Для этих целей в классах, отвечающих за реализацию кодеков, должен существовать промежуточный метод, который позволит дробить пакет на части и кодировать/декодировать фрагменты
различных пакетов с одинаковыми номерами байт (см. Рис. 1).
При передаче больших объемов данных требуется использование механизмов управления окном, которое предполагает передачу определенного количества данных с разделением на пакеты. В программной модели реализована функция, которая
позволяет сформировать требуемый объем данных на основе введения размера информационной последовательности
пакетов и их длины. При этом она успешно работает с большими объемами данных и не зависит от кодеров и декодеров, что позволяет использовать ее с любыми кодами.
■ .1 ■ + 0 □
! 1 1 1 1
! 1 1 1 1
|хсум| mod 256
■нз в
-в—
«31= 256
Рис. 1. Формирование и декодирование пакетов с данными на примере кода с расширенной проверкой на четность.
Каждый из кодеков разработан так, чтобы его можно было легко внедрить в гибридную ARQ/FEC систему без дополнительных доработок. Эта особенность достигается реализацией каждого кодека в отдельном классе. Программная модель и кодеки написаны на языке высокого уровня C#, что совместно с предполагаемым использованием протокола UDP для передачи данных, основанной на гибридных механизмах ARQ/FEC, позволит найти широкое применение в современных
телекоммуникационных сетях.
Необходимо также отметить уникальные особенности реализации каждого из кодеков:
• Кодер и декодер расширенных кодов с проверкой на четность используют единственный метод, который отвечает за вычисление контрольной суммы, что позволяет как получить проверочные символы, так и восстановить утраченные. Данный подход упрощает реализацию кодека.
• Коды Рида-Соломона не требуют определения позиций ошибок (т.н. «стираний»). Для систем с механизмом FEC это является существенным преимуществом, однако для гибридной ARQ/FEC системы данные коды не дают эффекта из-за использования идентификаторов для подтверждения принятых пакетов.
• «Сетевой» код позволяет декодировать пакеты «на лету», не
требуя доставки всех пакетов с избыточностью при количестве ошибок, меньшем корректирующей способности.
• Декодирование расширенных кодов с проверкой на четность и «сетевого» кода предполагает передачу идентификаторов потерянных пакетов соответствующему методу
декодирования.
3 Внешний вид и основные
характеристики разработанной программной модели для оценки производительности кодеков
Методы кодирования, описанные выше, были разработаны и применены в программной модели. Внешний вид программы при её запуске показан на Рис. 2.
Рис. 2. Диалоговое окно программной модели для оценки производительности кодеков.
В левой части окна следует выбрать одну из шести операций, которая будет совершена с файлом («Выберите код»):
• Кодер Рида-Соломона;
• Кодер расширенного кода с проверкой на четность;
• Кодер «сетевого» кода;
• Декодер Рида-Соломона;
• Декодер расширенного кода с проверкой на четность;
• Декодер «сетевого» кода.
В меню «Выберите файл для кодирования или декодирования данных» можно выбрать файл, который требуется кодировать или декодировать в соответствии с выбором операции. При этом если требуется закодировать файл, то выбирается файл с любым расширением, если нужно декодировать файл, то выбирается файл с расширением «.enc», а после декодирования файл получает расширение «.dec». Как закодированный, так и декодированный файлы помещаются в ту же папку, в которой
находился исходный файл.
В правой части окна следует указать значения четырех параметров, с которыми будет работать программная модель:
• Размер информационной последовательности (измеряется в количестве пакетов);
• Корректирующая способность кода (измеряется в количестве пакетов);
• Размер пакета (измеряется в байтах);
• Количество искаженных (потерянных) пакетов.
Последний параметр позволяет
смоделировать потери пакетов, возникающие при передаче данных по сети в рамках окна (информационной последовательности).
Также корректирующая способность кодов должна быть больше либо равна количеству потерянных пакетов.
Для кода Рида-Соломона не следует использовать корректирующую способность выше 8 [5], а для расширенного кода с проверкой на четность не следует использовать корректирующую способность и количество искаженных пакетов, отличное от 1 [6].
После внесения значений для всех требуемых параметров можно оценить производительность кодирования или декодирования выбранного кода, нажав кнопку «Оценить производительность кодирования/декодирования» (см. Рис. 3). Результаты оценки (время выполнения операций кодирования/декодирования и интенсивность обработки данных) будут выведены внизу окна.
Рис. 3. Результаты оценки производительности выбранного кода с заданными параметрами.
Схема проведения эксперимента по оценке времени выполнения операций кодирования данных показана на Рис. 4.
Рис. 4. Схема проведения эксперимента по оценке времени обработки файла кодером или декодером.
4 Оценка эффективности каждого кодека с различными параметрами моделирования
Все эксперименты, описанные ниже, производились с использованием файлов размером от 100 до 1000 Мбайт. Ниже представлена конфигурация оборудования и программного обеспечения, на котором производилась оценка:
• DualCore Intel Pentium E6300;
• Hitachi HDS723030ALA640;
• Microsoft Windows 7 x64;
• Microsoft .NET Framework 4.5.2.
Были проведены три оценки скорости
обработки данных кодером и декодером с использованием ранее рассмотренных кодов:
• С изменением размера информационной последовательности с параметрами «Корректирующая способность и количество потерянных пакетов: 2 пакета для кода Рида-Соломона и «сетевого» кода и 1 пакет для расширенного кода с проверкой на четность; Размер пакета: 1500 байт» (см. Рис. 5);
• С изменением корректирующей способности и количества потерянных пакетов с параметрами «Размер информационной последовательности:
200 пакетов; Размер пакета: 1500 байт» (см. Рис. 6), при этом были задействованы коды, способные восстанавливать несколько
потерянных пакетов; С изменением размера пакета с параметрами «Размер
информационной последовательности: 100 пакетов; Корректирующая способность и количество потерянных пакетов: 2 пакета для кода Рида-Соломона и «сетевого» кода и 1 пакет для расширенного кода с проверкой на четность» (см. Рис. 7).
последователь н
Рис. 5. Скорость обработки данных при изменении размера информационной последовательности.
Рис. 6. Скорость обработки данных при изменении корректирующей способности и количества потерянных пакетов одновременно.
Рис. 7. Скорость обработки данных при изменении размера пакета.
Из результатов проведенной оценки видно, что расширенный код с проверкой на четность позволяет обеспечить наибольшую
скорость передачи данных практически для всех параметров, однако не может восстановить более одного пакета, что сильно ограничивает области его применения.
Код Рида-Соломона показал худшие результаты по сравнению с «сетевым» кодом. Он в 3 раза медленнее осуществляет кодирование данных и в 4 раза их декодирование. Это связано в том числе и с тем, что для укорачивания кода применяется дополнение информационных слов нулевой последовательностью байт до требуемого кодером размера, которая хоть и не передается по каналу, но негативно влияет на скорость обработки данных в связи с увеличением количества кодовых слов.
В остальном же «сетевой» код обеспечивает высокую скорость обработки данных, может работать с корректирующей способностью больше 8 пакетов, а также сам процесс формирования кодового слова и декодирования проще, чем у кодов Рида-Соломона.
5 Вывод
Проведенная разработка и оценка перспективности использования кодов Рида-Соломона, расширенных кодов с проверкой на четность и «сетевого» кода в гибридной ARQ/FEC системе показала:
• Увеличение размера информационной последовательности приводит к росту скорости обработки данных и достигает максимума в районе 250 пакетов для каждого из кодов.
• Увеличение корректирующей способности кода ожидаемо снижает производительность кодеков. Для увеличения скорости обработки данных необходим поиск компромисса между размером информационной последовательности и количеством восстанавливаемых пакетов.
• Размер пакета не оказывает существенного влияния на скорость обработки данных каждым из кодов. Наиболее стабильна в этом случае ситуация для кодов Рида-Соломона.
Использование расширенных кодов с проверкой на четность в гибридной ARQ/FEC системе подходит для восстановления единственного утраченного пакета, что характерно для локальных сетей [4]. Коды Рида-Соломона следует применять в
ARQ/FEC системах, использующих единственный пакет-подтверждение на весь объем данных, содержащихся в окне. «Сетевой» код предпочтительнее
использовать в остальных случаях, так как он обеспечивает лучшую скорость обработки данных по сравнению с кодом Рида-Соломона.
Благодарности
Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 16-07-00186 A
Список литературы
1. Карпухин Е.О. (2016) Вариант ARQ/FEC системы для противодействия блокировкам пакетов в очередях на приемной стороне. // Информационные технологии и вычислительные системы. № 4. с.5-12.
2. Гридин В.Н. Карпухин Е.О. Евдокимов И.А. (2015) Оценка эффективности способа управления доставкой сетевых пакетов на стороне получателя. // Системы и средства информатики. т. 25. № 3.
3. Карпухин Е.О. Карнаков В.В. (2016)
Применение корректирующих кодов в системах ARQ/FEC на транспортном и прикладном уровнях // Информационные технологии в науке, образовании и управлении: труды межд. конф. IT + S&E46. c.207-211.
4. Карпухин Е.О. Бритвин Н.В. (2016) Применение транспортного кодирования для уменьшения времени сборки данных на приемной стороне // Электросвязь. №10. с. 46-50.
5. Richard E. Blahut. (1983) Theory and Practice of Error Control Codes. Addison Wesley Longman. New York, United States.
6. Robert Gallager. (1968) Information Theory and Reliable Communication. John Wiley & Sons Inc.