УДК 004.942
О ВЫБОРЕ РАЗМЕРА БУФЕРА МАРШРУТИЗАТОРА КОМПЬЮТЕРНОЙ СЕТИ, НАГРУЖЕННОГО ИНТЕНСИВНЫМ ТРАФИКОМ РЕАЛЬНОГО ВРЕМЕНИ
Э.В. Афонцев, М.К. Гребенкин, С.В. Поршнев
Уральский государственный технический университет, г. Екатеринбург E-mail: [email protected]
Представлены результаты моделирования передачи данных по протоколу UDP в сети с каналом, лимитирующим пропускную способность системы. Рассмотрены различные варианты выбора размера буфера и коэффициента загрузки канала.
Ключевые слова:
Имитационное моделирование, буфер маршрутизатора, симулятор NS-2.
Буфер маршрутизатора компьютерной сети предназначен для сглаживания кратковременной перегрузки в канале передачи данных. Увеличение размера буфера позволяет повысить эффективность использования сетевого оборудования, обеспечивая возможность работы при высокой загрузке канала с малым уровнем потерь пакетов. С другой стороны, увеличение объема буфера влечет за собой повышение стоимости оборудования и увеличение времени задержки пакетов в условиях перегрузки. Таким образом, выбор оптимального размера буфера является актуальной задачей. На практике интернет-провайдеры должны принимать решения относительно выбора буфера. Сделанный выбор может повлиять на экономические показатели и качество обслуживания клиентов. В современной литературе приводятся различные, порой противоречивые, рекомендации по данному вопросу [1-3].
Цель данной работы - изучение наиболее распространенных рекомендаций по выбору буфера сетевого маршрутизатора и проверка их адекватности путем имитационного моделирования.
Широкое распространение получила простая формула для расчета необходимого размера буфера [1] B = RTT ■ P, (1)
где Р - пропускная способность канала, RTT (Round Trip Time) - время прохождения сигнала от источника трафика до маршрутизатора и обратно.
Формула (1) получается из условия исключения сброса пакетов на маршрутизаторе при передаче информации по протоколу TCP. Напомним, что данный протокол предполагает «медленный» старт. При успешной передачи некоторого количества пакетов (окна) и получения подтверждения об их доставке, скорость передачи информации постепенно увеличивается. Предположим, что в какой-то момент скорость приблизилась к пропускной способности канала Р (но еще не превысила ее). Получив подтверждение о доставке пакетов, сервер повысит скорость передачи информации. Произойдет перегрузка канала, и начнется заполнение буфера. Время, от момента начала посылки пакетов с повышенной скоростью до момента, когда сервер «узнает» о перегрузке (т. е. прекратится получение
подтверждений о доставке пакетов), равно ЯТТ. После этого, согласно протоколу ТСР, сервер снизит скорость передачи информации в 2 раза. Пропускной способности канала будет опять достаточно, и начнется разгрузка буфера.
Получим оценку размеров буфера в соответствии с формулой (1). Примем Р=10 Гбит/е, ЛТТ=100 мс, тогда 5=125 Мб или порядка ста тысяч пакетов.
Необходимо отметить, что формула (1) не вполне корректна, поскольку при ее выводе предполагалось, что единственной целью применения буфера является исключение сброса пакетов. На самом деле, протокол ТСР устроен так, что сброс пакетов не приводит к потере информации, а, по сути, является сигналом обратной связи. Не получив подтверждение о доставке пакета, сервер повторяет передачу на меньшей скорости. Таким образом, происходит согласование внешней нагрузки и пропускной способности входного канала.
Отметим еще один важный момент, неучтенный при выводе формулы (1). При ее получении предполагалось, что все пользователи работают совершенно синхронно. То есть, они одновременно начинают сеанс передачи пакетов, и нарастание потока информации, предусмотренное протоколом ТСР, у них происходит одинаково. В результате, они перегружают канал одновременно. В действительности же, запросы разных пользователей распределены по времени случайным образом. Если учесть этот факт и если допустить небольшой процент потерь пакетов, то получается следующая формула для объема буфера [2]
В и Р ■ ЯТТ, (2)
где N - число независимых потоков трафика.
Согласно формуле (2) требуемый размер буфера В уменьшается при увеличении числа пользователей. Для рассмотренного выше примера (Р=10 Гбит/е, ЯТТ=100 мс), предполагая, что в канале происходит передача N=10000 независимых потоков, получим В=1,25 Мб или около тысячи пакетов.
Существует еще один способ оценки оптимального размера буфера, в котором используется одна из простейших моделей телетрафика - модель
М/М/1 [3]. В данной модели предполагается, что пакеты поступают на маршрутизатор независимо друг от друга и имеют пуассоновское распределение по времени. Согласно модели М/М/1 вероятность потери пакетов можно рассчитать по формуле
W = рв, (3)
где B - размер буфера (в пакетах), р - коэффициент использования канала, который определяется как отношение среднего потока данных на входе в канал к его пропускной способности. Основное условие применимости формулы (3) - независимость поступления пакетов на маршрутизатор.
Согласно формуле (3) даже при высокой загрузке канала, например, при р«0,9, можно обойтись небольшим буфером - около сотни пакетов. Вероятность потери пакетов в этих условиях составит порядка 10-5, что пренебрежимо мало. К сожалению, обнаружить в литературе доказательства применимости формулы (3) к реальному трафику автором не удалось.
Таким образом, можно констатировать, что на сегодняшний день существуют различные подходы к оценке оптимального размера буфера, которые дают противоречивые рекомендации по данному вопросу. При этом ни один из этих подходов не дает гарантии получения надежного результата. Задача тем более усложняется, что современные сети являются мультисервисными, в них передаются разнородные потоки информации. Часть потока данных (просмотр WEB-страниц, скачивание больших файлов) передается по TCP-протоколу, т. е. в адаптивном режиме и поток информации подстраивается под пропускную способность канала. Другая часть потока данных передается в режиме реального времени - по UDP-протоколу. По нашему мнению, наиболее рациональный подход к решению рассматриваемой задачи об оптимальном размере буфера маршрутизатора, основан на учете структуры реального трафика в комплексе с другими средствами обеспечения качества обслуживания. Необходимо так же учитывать ряд дополнительных факторов, не учитывавшихся ранее: условие минимизации задержки получения пакетов и ее вариации (джиттера) и др.
Адекватно учесть все вышеперечисленные факторы можно при использовании компьютерного моделирования трафика [4]. Данный подход позволяет в «безжелезном» варианте рассматривать различные варианты конфигураций компьютерных сетей и алгоритмов управления потоками данных. Это дает возможность выбирать конструктивные решения оптимальные, как с точки зрения их стоимости, так и качества обслуживания. Существует специализированное программное обеспечение для моделирования сетевого трафика - сетевые симуляторы.
Среди некоммерческих сетевых симуляторов наибольшее распространения получил симулятор ns-2 (network simulator-2) [5, 6], который является
программным обеспечением с открытым исходным кодом на языке C++. Отметим, что для него отсутствуют ограничения прав использования, модификации и распространения. В ns-2 на уровне ядра реализованы модели практически всех существующих сегодня протоколов: MPLS, IPv6, OSPF, а также множество дисциплин обслуживания очередей: RED, WFQ, CBQ, SFQ и т. д. В качестве управляющего интерфейса используется язык OTcl. При этом определять и управлять моделью можно как через интерфейс OTcl, так и с использованием языка C++. Кроме того, в ns-2 позволяет создавать различные виды трафика. Например, можно моделировать трафик, подчиняющийся как пуассоновскому закону, так и самоподобный. Гибкая архитектура ns-2 даёт возможность её пользователям реализовывать собственные математические функции и законы на языке программирования C++. В ns-2 также реализована возможность моделирования возникновения ошибок (искажение или потеря информации) на канальном уровне, на уровне битов или пакетов. Есть возможность реализации собственной модели ошибок.
В статье обсуждаются результаты компьютерного моделирования маршрутизатора, расположенного на входе в локальную компьютерную сеть, в условиях трафика реального времени, с помощью сетевого симулятора ns-2. Источниками данного трафика могут являться, например, телеконференции, IP-телефония, сетевые компьютерные игры и т. д. [7] Спецификой трафика реального времени являются повышенные требования к скорости передачи данных. Это можно обеспечить за счет применения UDP-протокола, отличающегося от стандартного TCP-протокола, повышенной скоростью передачи данных, обратной стороной которой является уменьшение гарантий их доставки. Для характеристики эффективности передачи трафика реального времени мы использовали вероятность потери пакетов.
Конфигурация моделируемой сети представлена на рис. 1. Узел n0, связанные с ним генераторы трафика Sb S2, ..., Sk и канал, соединяющий узлы n0 и nb моделируют трафик в высокоскоростном магистральном канале. Узел n1 описывает маршрутизатор, расположенный на входе в локальную сеть. Множество пользователей локальной сети представлены в виде приемника трафика, расположенного в узле n2. Лимитирующим звеном системы является линия, связывающая пользователей с маршрутизатором. Перегрузка этой линии приводит к сбросу и задержке пакетов на маршрутизаторе.
В модели учитываются:
1. Характеристики трафика: максимально возможная нагрузка на входе в маршрутизатор n1 (при одновременном действии всех источников т. е. Sm=Ssi, где st - максимальная интенсивность i-го элементарного источника), а также распределение нагрузки по времени, размер передаваемых пакетов, протокол передачи данных.
2. Характеристики маршрутизатора: объем буфера Б (число пакетов) и протокол управления очередью.
S2
Si
100 Мбит/с
1 Мбит/с
П0 ni П2
200 мс
10 мс
Sk
Рис. 1. Конфигурация моделируемой сети
В модели использовались экспоненциальные источники трафика со следующими параметрами, характерными для ЛЫР-трафика [8]: Г(Ж=352 мс, 70рр=650 мс, Х=200 байт. Интенсивность каждого источника составляла 6=32 Кбит/с. Расчеты проводились для двух случаев:
1) число источников трафика £=80, коэффициент заполнения канала
Р =
T
kS = kP =
= 352/(352 + 650) -80 -32/1000 = 0,899,
2) число источников трафика £=87, коэффициент заполнения канала
Р =
T + T
ON OFF
Результаты моделирования позволяют сделать вывод о том, что при достижении размера буфера 5=100 пакетов доля потерянных становится меньше или порядка 1 %. Следовательно, даже при достаточно большом заполнении канала (р=0.9...0.98) увеличение размера буфера свыше 100 пакетов нецелесообразно.
Полученные результаты качественно согласуются с оценкой по модели М/М/1 теории массового обслуживания [9], согласно которой средняя длина очереди составляет р/(1-р). Для рассмотренных выше примеров р=0,899 и 0,987 это дает значения 9 и 49, соответственно. Расчетные значения средней длины очереди для этих вариантов загрузки канала составили 12 и 214 пакетов, соответственно. Если размер буфера будет в несколько раз больше среднего размера очереди, то количество потерянных пакетов окажется невелико. Это подтверждается результами моделирования.
Таким образом, можно сделать вывод о том, что необходимый объем буфера маршрутизатора составляет порядка нескольких сотен пакетов. И даже при высокой средней загрузке канала потери в этих условиях будут малы.
= 352/(352 + 650) -87 -32/1000 = 0,987.
Время моделирования составляло 1000 с. Включение генераторов трафика происходило случайным образом в течении первых 5 с. В качестве алгоритма управления очередью на маршрутизаторе был выбран алгоритм DropTail [6].
Было проведено компьютерное моделирование работы маршрутизатора для следующих вариантов размера буфера: 1010 (т. е. практически бесконечный размер буфера), 10, 30 и 100 пакетов. Для каждого варианта рассматривались два указанных выше значения коэффициента заполнения канала (р=0,899; 0,987;.
Типичные зависимости длины очередей от времени для бесконечного размера буфера представлены на рис. 2. Из рис. 2 видно, что длина очереди в рассмотренный временной интервал не превосходит 200 и 100 пакетов для случаев р=0,899 и р=0,987 соответственно. Следовательно, здесь можно использовать буфер конечного размера.
Типичные зависимости доли потерянных пакетов от времени для размеров буфера, равных 10, 30 и 100 пакетов, представлены на рис. 3 и 4, соответственно. Из рис. 3, 4 видно, что через «500 с после начала моделирования, доля потерянных пакетов стабилизируется и слабо изменяется относительно среднего значения. Зависимости среднего значения доли потерянных пакетов от размера буфера и аппроксимирующие их кривые представлены на рис. 5.
100 200 300 400 500 600 700 800 900 1000
время, С
Рис. 2. Заполнение очереди в пакетах в течении 1000 с для двух вариантов: р=0,899 (верхний график) и р=0,987 (нижний график)
400 500 600
время, С
Рис 3. Зависимость доли потерянных пакетов от времени при значении коэффициента заполнения канала р=0,899
100 200 300 400 500 ООО 700 ООО ЭОО 1000
время, с
Рис. 4. Зависимость доли потерянных пакетов от времени при значении коэффициента заполнения канала р=0,987
Мы рассмотрели неадаптивный UDP-протокол передачи данных. Следует ожидать, что для стандартного ТСР протокола число потерянных пакетов будет еще меньше. Поскольку данный прото-
раэмер буфера, пакеты Рис. 5. Зависимость доли потерянных пакетов от размера буфера при значениях коэффициента заполнения канала: 1) 0,899, 2) 0,987
кол является адаптивным, то при возникновении перегрузки в сети источник трафика снизит скорость передачи данных.
СПИСОК ЛИТЕРАТУРЫ
1. Kung H.T Sizing and Management of Router Buffers // Second Annual Sprint Applied Research Partners Advanced Networking (SPARTAN) Symposium. - 1998. - V. 1. - № 9. - P. 34-37.
2. Wischik D., McKeown N. Buffer Size for Core Routers // Computer Communication Review. - 2005. - V. 3. - № 35. - P. 75-78.
3. Лившиц Б.С., Пшеничников А.П., Харкевич А.Д. Теория телетрафика. - М.: Связь, 1979. - 224 с.
4. Шелухин О.И., Тенякшев А.М., Осин А.В. Моделирование информационных систем. - М.: Радиотехника, 2005. - 368 c.
5. McCanne S., Floyd S. NS - Network Simulator [Электронный ресурс]. - режим доступа: http://www-ash.cs.berkeley.edu/ns/. -
22.03.2008.
6. Fall K., Varadhan K. The ns Manual [Электронный ресурс]. - режим доступа: http://www.isi.edu/nsnam/ns/doc/index.html. -
01.04.2008.
7. Столлингс В. Современные компьютерные сети. - СПб.: Питер, 2003. - 783 с.
8. Петунин С.А. Технология построения имитационных моделей трафика мультисервисной сети с IP-телефонией // Препринт РФЯЦ-ВНИИТФ. - 2004. - № 213. - 32 с.
9. Крылов В.В. Теория телетрафика и ее приложения. - СПб.: БХВ-Петербурт, 2005. - 288 с.
Поступила 14.07.2008 г.