Восстановление потерь пакетов в компьютерных сетях

УДК 621.313.684

К.В. Шинкаренко, А.М. Кориков

Восстановление потерь пакетов в компьютерных сетях

Исследованы вопросы применения стирающих кодов для восстановления пакетов от потерь в компьютерных IP-сетях. Подтверждена гипотеза о функциональной зависимости эффективности стирающих кодов от выбора степеней проверочных пакетов. Предложен способ повышения эффективности стирающих кодов.

Ключевые слова: стирающие коды, потери пакетов, компьютерные сети, передача данных.

В современном мире компьютерные сети выполняют важнейшую роль, так как являются основой глобального информационного обмена. Компьютерные сети повседневно используются для передачи гигантских объемов разнообразной информации: файлов данных, электронной почты, мультимедиа данных, голосового трафика и т.д.

Как и в любой среде передачи, в компьютерных сетях существуют помехи и шумы, ведущие к потерям и искажениям данных. Поскольку современные компьютерные сети являются сетями пакетной передачи данных, искажения отдельных бит в пакете могут привести к потере пакета целиком ввиду расхождения контрольной суммы бит. Потери пакетов также могут происходить из-за перегрузок коммутаторов, «проседания» пропускной способности каналов из-за слишком большого числа одновременно подключенных пользователей, переполнения входных буферов сетевых устройств и т.д.

Большинство сетевых приложений крайне чувствительны к потерям данных. Для некоторых сетевых приложений проблема потерь пакетов решается путем повторной передачи источником потерянных пакетов по запросу получателя — так называемая схема ARQ (Automatic Repeat reQuest). Однако такая схема неприемлема для сетевых приложений, работающих в режиме реального времени, поскольку запрос и повторная отправка пакета являются длительными операциями. Кроме того, схема ARQ требует наличия обратного канала между источником и получателем данных, что не всегда осуществимо. В качестве примера таких систем могут быть приведены системы потокового телевещания по сетям IP, системы голосовой связи, онлайн-игр и пр. В таких системах для доставки данных, как правило, используется протокол UDP (User Datagram Protocol). Протокол UDP был создан с целью доставки пакетов с малой задержкой, однако доставка пакетов получателям не гарантируется.

Для решения проблемы потерь пакетов были разработаны так называемые стирающие коды. Впервые работу, посвященную стирающим кодам, опубликовал М. Лаби в 2002 г. [1]. Стирающие коды являются самыми «молодыми» среди всех известных ныне помехоустойчивых кодов, и их изученность на сегодня не является доскональной [2].

Данная работа посвящена исследованию эффективности восстановления пакетов от потерь с помощью стирающих кодов.

1. Понятие стирания. Канал со стираниями

Согласно Питерсону, «стиранием называется ошибка, позиция которой известна, а значение может быть (а может и не быть) нулевым» [3].

Данное определение может быть переформулировано следующим образом: стирание — это ошибка, позиция которой известна, а значение не определено.

В целом, потери пакетов, имеющие место в сетях IP, подпадают под это определение. Поскольку в сетях IP используется сквозная нумерация пакетов, то существует возможность определить позицию потерянного пакета. Значение стертого пакета неизвестно получателю (декодеру).

Стирающий канал характеризуется вероятностью q успешной доставки пакета (значение полученного пакета идентично значению исходного пакета), и вероятностью p = 1—q того, что передаваемый пакет будет стерт. Вероятность стирания p определяет интенсивность потерь пакетов. Впрочем, в качестве аналога вероятности стирания общепринято использовать соотношение потерь пакетов, выражаемое в процентах от числа передаваемых пакетов. Обозначим эту величину через PLR (Packet Loss Ratio). По сути, PLR величина является аналогом вероятности стирания.

В данной работе используется модель канала с независимыми случайными стираниями. Позиции стираний в такой модели определяются значениями случайной величины с

Доклады ТУСУРа, № 2 (18), часть 2, декабрь 2008

равномерным законом распределения, и предполагается, что значение пакета не влияет на вероятность его стирания.

2. Исследование эффективности стирающих кодов

Основными задачами, требующими решения при построении стирающих кодов, являются нахождение способа выбора исходных пакетов для генерации кодовых пакетов, а также определение количества исходных пакетов, требуемых для генерации кодовых пакетов (степени кодовых пакетов).

Очевидно, что выбор степени кодовых пакетов может непосредственным образом влиять на эффективность работы стирающего кода в смысле восстановления пакетов от потерь. В связи с этим возникает задача определения характера функциональной зависимости эффективности, параметров, влияющих на эффективность, с целью нахождения способов повышения эффективности.

Для решения этой задачи были экспериментально исследованы систематические стирающие коды (ССК). Алгоритм кодирования ССК является одним из наиболее простых среди стирающих кодов, однако результаты, полученные для ССК, могут быть обобщены для стирающих кодов как класса, в силу способа построения ССК, который будет рассмотрен далее.

Понятие «систематичность» используется для стирающих кодов в том же смысле, что и в теории блоковых кодов [3]. Систематическим называется код, в котором проверочные данные передаются отдельно от исходных данных. Таким образом, исходные данные при кодировании систематическим кодом не подвержены модификации.

ССК представляют собой прямые помехоустойчивые коды, т.е. обладают способностью исправлять ошибки в прямом режиме, не требуя канала обратной связи между источником и приемником для передачи дополнительной информации для исправления ошибок.

ССК строится следующим образом. Исходное информационное сообщение делится на K исходных пакетов. Длины всех пакетов эквивалентны и равны L. В дополнение к K исходным пакетам добавляются V пакетов; таким образом, общее число передаваемых пакетов оказывается N > K. Отношение V/K называется избытком кодовой последовательности или избытком кодовых пакетов. Исходные K пакетов передаются как есть, V проверочных пакетов представляют собой результат операции «исключающее или» (XOR) над D исходными пакетами. Величина D называется степенью проверочного пакета и представляет собой некоторое число, значение которого может быть задано в интервале 0 < D < K. Исходные пакеты, вовлеченные в кодирование при генерации проверочного символа, называют «соседями» (neighbours). Пакеты, подлежащие передаче, включая исходные пакеты и проверочные пакеты, будем обобщенно называть кодовыми пакетами.

Гипотеза. Эффективность восстановления пакетов при помощи стирающих кодов зависит от выбора степеней проверочных пакетов D.

Для подтверждения либо опровержения выдвинутой гипотезы был проведен следующий эксперимент.

Программно был реализован алгоритм кодирования ССК. Выбор соседей в данной реализации осуществлялся псевдослучайным образом при помощи функции rand() языка программирования Си.

Критерием оценки эффективности стирающего кода является общее количество пакетов, доступных получателю после декодирования ССК.

В эксперименте использовалась модель канала с независимыми случайными стираниями, описанная в п. 1. Для определения позиций стираний использовалась функция языка программирования Си rand().

Количество исходных пакетов K было задано равным 100.

Исследование эффективности ССК проводилось по трем параметрам:

— степени кодовых пакетов D;

— соотношению потерь пакетов (PLR);

— избытку кодовых пакетов H.

Степень кодовых пакетов варьировалась от 0,1K до 0,9 K с шагом 0,1K. Для PLR были использованы значения {1, 3, 5, 8}, для избытка кодовых пакетов — {5, 7, 10, 15}.

Наиболее эффективное восстановление с помощью стирающего кода может быть достигнуто лишь статистически, как осреднение по большому числу запусков кодирования — декодирования, при различных комбинациях позиций стираний, поскольку для каждого конкретного кода можно задать позиции стираний таким образом, чтобы код исправлял все стирания либо, напротив, не был способен исправить хотя бы одно стирание. В связи

Доклады ТУСУРа, № 2 (18), часть 2, декабрь 2008

с этим,в эксперименте оценивание эффективности ССК осуществлялось по большому числу запусков кодирования — декодирования. В данном эксперименте было использовано значение Я = 1000 запусков.

Результаты эксперимента представлены на рисунке. Столбцы со штриховкой соответствуют PLR = 3%, светло-серые — PLR = 5%, темно-серые — PLR = 8% .

Степень проверочных пакетов

а) Избыток = 5%

П0Л2£Н0тИ1ЕЬКЫИ

3D 40 50 60

Степень проверочных пакетов

б) Избыток = 7%

Степень проверочных пакетов

в) Избыток = 10%

Полиномиальный

ПОЛИНОМИАЛЬНЫЙ

Доклады ТУСУРа, № 2 (18), часть 2, декабрь 2008

Процент восстановленных пакетов от степени кодовых пакетов.

Результат осреднения по 1000 запусков для кода ССК

Помимо среднего значения процента восстановленных пакетов, в эксперименте также вычислялось среднеквадратическое отклонение от среднего для каждого набора варьируемых параметров.

На основе полученных значений среднеквадратического отклонения были определены значения доверительных интервалов для полученных результатов. Было установлено, что с вероятностью 0,95, значение процента восстановленных пакетов попадет в интервал, отстоящий от среднего полученного значения, не более чем на 0,75%.

Приведенные гистограммы иллюстрируют, что для различных уровней потерь пакетов наибольшая эффективность восстановления пакетов с помощью ССК достигается при использовании различных значений степеней кодовых пакетов. Максимум аппроксимирующей кривой смещается в сторону меньших значений степеней кодовых пакетов при увеличении PLR. При этом вид аппроксимирующей кривой эффективности восстановления зависит также от значений PLR и Н.

По полученным экспериментальным результатам была построена таблица аппроксимирующих полиномов для функции зависимости эффективности ССК F(D) от степени проверочных пакетов D (таблица).

Аппроксимирующие полиномы функции эффективности ССК F от степени проверочных пакетов D, по интервалам значений PLR и Н

Избыток пакетов H, в % от K PLR Аппроксимирующий полином F

0 < H < 5 0 < PLR < 5 F(D) = 0,0007D5 - 0,0182D4 + 0,1603D3 - 0,7267D2 + + 1,969D + 96,805

5 < PLR < 8 F(D) = -0,0009D5 + 0,0209D4 - 0,151D3 + 0,2113D2 + + 0,8691D + 95,862

PLR > 8 F(D) = 0,0013D5 - 0,039D4 + 0,4255D3 - 2,0691D2 + + 3,9091D + 92,503

5 < H < 10 0 < PLR < 5 F(D) = 0,0006D5 - 0,0154D4 + 0,1468D3 -0,7184D2 + + 2,0146D + 97,208

5 < PLR < 8 F(D) = -0,0013D5 + 0,0339D4 - 0,2919D3 + 0,7738D2 + + 0,3058D + 96,525

PLR > 8 F(D) = 0,002D5 - 0,0623D4 + 0,7131D3 - 3,6809D2 + + 7,6532D + 90,955

H > 10 0 < PLR < 5 F(D) = 0,0006D5 - 0,0186D4 + 0,2032D3 - 1,0507D2 + + 2,6861D + 97,13

5 < PLR < 8 F(D) = 0,0002D5 + 0,0005D4 - 0,0219D3 - 0,1783D2 + + 1,7589D + 96,535

PLR > 8 F(D) = 0,0007D5 - 0,0313D4 + 0,4986D3 - 3,3373D2 + + 8,4829D + 90,976

Заключение

Была выдвинута и экспериментально подтверждена гипотеза о зависимости эффективности восстановления пакетов при помощи стирающих кодов от степеней проверочных пакетов D. В результате эксперимента установлено, что для достижения наивысшей эффективности восстановления пакетов при помощи стирающего кода выбор степени проверочных пакетов должен осуществляться с учетом соотношения потерь пакетов в сети и допустимого избытка кодовых пакетов. По результатам экспериментальных данных получены аппроксимирующие полиномы функции эффективности ССК от степеней проверочных пакетов, что позволит повысить эффективность восстановления пакетов в компьютерных сетях при помощи стирающих кодов.

Литература

1. Luby M. LT Codes // Proc. of the 43rd Annual IEEE Symp. on Foundations of Computer Science (FOCS). - 2002. - P. 271-282.

2. Варгаузин В. Помехоустойчивое кодирование в пакетных сетях // ТелеМультиМедиа. - 2005. - № 3. - C. 10-16.

3. Питерсон У. Коды, исправляющие ошибки: Пер. с англ. под ред. Р. Добрушина. -М.: Мир, 1972. - 338 с.

Доклады ТУСУРа, № 2 (18), часть 2, декабрь 2008

Шинкаренко Константин Всеволодович

Аспирант каф. автоматизированных систем управления (АСУ) ТУСУРа

Тел. 89609697167

Эл. почта: shinkarenko_k@mail.ru

Кориков Анатолий Михайлович

Д-р. техн. наук, проф., зав. кафедрой АСУ ТУСУРа Эл. почта: korikov@asu.tusur.ru

K.V. Shinkarenko, A.M. Korikov

Packet Loss Recovery in the Computer Networks

The erasure codes in application to packet loss recovery in the computer IP networks are investigated. It has been obtained, that the erasure coding effectiveness depends on certain choice of parity packet degree. The method of the erasure coding effectiveness increasing has been proposed. Key words: erasure codes, packet losses, computer networks, data transfer.

Доклады ТУСУРа, № 2 (18), часть 2, декабрь 2008