Анализ работы модифицированного протокола TCP в условиях перегрузки сети

Гуденко С.А. (МФТИ)


Основная идея протокола NTCP заключается в оценке пропускной способности канала на основе данных, полученных от сетевых узлов на пути конкретного соединения TCP. На базе этой оценки рассчитывается размер окна перегрузки отправителя (congestion window), необходимый для того, чтобы исключить перегрузки буферов транзитных маршрутизаторов.



Рис. 1.

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

Далее приводится описание тестовой установки, использованной для проведения эксперимента и описание самого эксперимента с приведением его результатов.

Установка состоит из двух NTCP-модулей (на базе ОС Linux; смотри рис. 1) и расположенного между ними маршрутизатора (также на базе Linux).

Сначала проводится мониторинг работы протокола в штатном режиме (маршрутизатор не перегружается). Отслеживается эволюция окна перегрузки в случае работы NTCP и сравнение с традиционным TCP (в случае Linux - TCP-reno).

Затем на маршрутизаторе искусственно создается перегрузка - пропускная способность выходного интерфейса ограничивается таким образом, чтобы она была меньше пропускной способности входного интерфейса. Ограничение пропускной способности осуществляется с помощью алгоритма “маркерное ведро” (Token bucket). В этом режиме записывается и отображается эволюция окна перегрузки отправителя для NTCP и традиционного TCP, a также график загрузки буфера маршрутизатора в обоих случаях. Ниже на рисунках представлены результаты измерений.



Рис. 2. Эволюция окна перегрузки (CWND) для алгоритма ТСР newRENO при размере буфера маршрутизатора 100 килобайт


Рис. 3. То же, что и на предыдущем рисунке но для протокола NTCP. Здесь протокол, предвидя переполнение буфера, реагирует снижение CWND

Очевидно, нужно усовершенствовать алгоритм прогноза, чтобы подавить осцилляции CWND.



Рис. 4. Эволюция окна перегрузки (CWND) для алгоритма NТСР при размере буфера маршрутизатора 500 килобайт

Из рисунка видно, что относительная амплитуда осцилляций в этом варианте существенно ниже.



Рис. 5. Эволюция загрузки буфера для алгоритма TCP-RENO при размере буфера маршрутизатора 500 килобайт

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



Рис. 6. Эволюция загрузки буфера для алгоритма NTCP при размере буфера маршрутизатора 500 килобайт

Для этого размера буфера преимущество протокола NTCP перед TCP-RENO очевидно, так как среднее значение загрузки буфера, несмотря на существенную перегрузку в канале, остается стабильным.

Оптимизация алгоритма прогнозирования степени загрузки буферов позволит достичь еще большего преимущества.

Литература

1.Протокол TCP http://book.itep.ru/4/44/tcp_443.htm
2.Семенов Ю.А. Модели реализации протокола TCP и его перспективы http://book.itep.ru/4/44/tcp.htm
3.Стивенс Р. Протоколы TCP/IP. Практическое руководство С.-Петербург, 2003
3.Таненбаум Э. Компьютерные сети, 4-е издание. Питер, 2003