В чем измеряется пропускная способность компьютерной сети
Персональные компьютеры, ноутбуки, смартфоны и другие гаджеты обмениваются информацией, используя кабельные, оптоволоконные и другие каналы связи.
Передача информации в общем виде выглядит следующим образом.
Скорость передачи информации — это скорость, с которой передаются данные через канал связи, показывающая, какое количество бит информации передаётся за единицу времени.
Базовой единицей измерения скорости передачи информации является бит в секунду и обозначается бит/с .
Пропускная способность канала — одна из важных характеристик каналов передачи информации, которая показывает, какова максимальная скорость передачи информации по каналу связи в единицу времени.
С другой стороны, пропускная способность канала — это количество информации, передаваемое в единицу времени.
V = I t , где \(V\) — пропускная способность канала; \(I\) — объём переданной информации; \(t\) — время передачи информации.
Основные единицы измерения пропускной способности канала: бит/с; Кбит/с; Мбит/с.
Дополнительные единицы измерения: байт/с; Кбайт/с; Мбайт/с.
\(1\) байт/с | \(8\) бит/с |
\(1\) Кбит/с | \(1024\) бит/с |
\(1\) Мбит/с | \(1024\) Кбит/с |
\(1\) Гбит/с | \(1024\) Мбит/с |
При решении задач используется формула I = V · t , где \(V\) — пропускная способность канала; \(I\) — объём переданной информации; \(t\) — время передачи информации.
Если скорость передачи информации задана в бит/с, а размер файла — в мегабайтах, то следует привести все единицы в один формат и только после этого делать вычисления.
1.8 Коротко о единицах измерения в компьютерных сетях или что такое пропуская способность канала связи
Еще из этой записи вы узнаете, почему скорость Интернета у вас дома не 100 Мбит/с, а меньше и докуда (до какой точки) вообще вам гарантирует провайдер такую скорость передачи данных, а также вы поймете, что пропускная способность считается несколько иначе, нежели занятое пространство на жестком диске.
Перед началом я хотел бы вам напомнить, что ознакомиться с опубликованными материалами первой части нашего курса можно по ссылке: «Основы взаимодействия в компьютерных сетях».
1.8.1 Введение
Совсем коротко мы поговорим о единицах измерения в компьютерных сетях. По большей части нас будет интересовать пропускная способность канала связи и время. С временем все понятно, оно так или иначе всем знакомо и может измеряться в секундах минутах, часах, днях, долях секунды. А вот с пропускной способностью канала связи не совсем, мы, как сетевые инженеры, строящие свою компьютерную сеть на оборудование Cisco, будем измерять пропускную способность в соотношении битов, пройденных через канал за секунду или битах в секунду.
1.8.2 Пропускная способность канала связи и простая аналогия
Cisco в своих курсах (по крайней мере в курсах ICND1 и ICND2) не считает нужным посвящать вас в глубокий физический смысл этой величины, поэтому и мы здесь не будем останавливаться на этом деле. За подробностями обращайтесь к поисковой системе, либо не поленитесь и найдите книгу Бернарда Скляра «Цифровая связь», там очень подробно и хорошо описан физический смысл пропускной способности и полосы пропускания, а также откуда это все у нас пошло и как мы дожили до таких измерений пропускной способности канала связи.
Здесь я приведу лишь грубую аналогию: представьте, что у вас есть плоский стол, в центре которого вырезано круглое отверстие, а также коробка с бесконечным количеством шаров (давайте только договоримся, что каждый шар имеет определенный вес, скажем, 200 грамм) и ваша задача заключается, в том, чтобы за какую-то определенную единицу времени пропустить как можно большее количество шаров через отверстие, а результат мы будем измерять не в количестве шаров, а в килограммах. Насколько быстро это у вас получится?
Сложный вопрос, но мы можем выделить здесь три важных фактора, которые повлияют на конечный результат: вес шара, диаметр отверстия и то, насколько быстро вы сможете орудовать, проталкивая эти шары. К характеристикам непосредственно канала в данном случае относится диаметр отверстия, к характеристикам передаваемых данных относится вес шара, а также можно провести аналогию с тем «насколько быстро вы сможете орудовать, проталкивая эти шары» и производительностью реального сетевого оборудования.
В данному случае пропускная способность будет измеряться в том, сколько килограммов/граммов/тонн шаров вы сможете пропустить через это отверстие за секунду. Например, у вас получилось за секунду протолкнуть в отверстие 5 шаров, тогда пропускная способность вашей системы будет 1 килограмм в секунду или 1 кг/с. Как можно увеличить пропускную способность вашей системы? Первый и очевидный способ – увеличить диаметр отверстия (улучшить канал связи), допустим, чтобы через это отверстия в один момент времени могло проходить не один шар, а два или три. Если мы увеличим отверстие в два раза, то, наверное, за секунду мы сможем пропустить через отверстие не 5, а 10 шаров, а это уже 2 килограмма и, соответственно, пропускная способность увеличится до 2 кг/c.
Вас должно было смутить слово «наверное» в предыдущем абзаце. И это слово там появилось не случайно. Дело все в том, что тут возникает вопрос: а хватит ли нам сноровки и ловкости, чтобы брать сразу по два шара из коробки постоянно или в принципе, если не хватит, то нам нужно тренироваться. Если говорить о компьютерных сетях, то, например, ваш физическая среда передачи данных позволяет вам передавать данных со скоростью 1 Гигабит/с, а у вашего оборудования нет таких портов, да и вообще оно не рассчитано на такую скорость передачи данных, тогда вам нужно будет обновить это оборудование.
И наконец третий параметр – вес шара. Например, мы можем его увеличить с двухсот грамм до четырехсот, тем самым мы увеличим пропускную способность нашей вымышленной системы (вес увеличиваем за счет увеличения плотности материала, объем шара не меняется, допустим шары у нас были алюминиевые, а теперь мы взяли и заменили их на медные, поэтому диаметр отверстия изменять не нужно). Допустим мы по-прежнему сможем проталкивать через отверстие 5 шаров, но пропускная способность за счет увеличения веса шара увеличится в два раза с 1 кг/с до 2 кг/c. Но возникает вопрос: а сможем ли мы поднимать шары, если они будут весом 400 грамм или нам надо подкачаться? В реальной жизни есть такой параметр MTU (количество полезной информации в кадре/пакете, этот параметр можно задавать как для канального уровня модели OSI, так и для сетевого уровня эталонной модели сетевого взаимодействия), о нем мы обязательно поговорим, но чуть позже, его можно изменять, но не все оборудование сможет работать с некоторыми особенно большими значениями MTU, да и увеличение MTU в два раза не приведет к увеличению пропускной способности в два раза, позже вы поймете почему.
Итак, мы выделили три главных фактора, которые будут влиять на пропускную способность нашей компьютерной сети:
Поэтому, когда вы говорите про пропускную способность, желательно уточнять про что вы именно говорите и в чем именно вы измеряете пропускную способность.
Рисунок 1.8.1 Простая компьютерная сеть
На Рисунке 1.8.1 показана простая компьютерная сеть, у каждого устройства в этой сети есть своя производительность и свои характеристики, например, очевидно, что принтеру не нужен канал связи с пропускной способностью 1 Гбит/c, так как его буфер ограничен, а скорость печати значительно медленнее указанной скорости передачи данных.
1.8.3 Лирическое отступление по поводу провайдеров и скорости Интернета 100 Мбит/с
Тут, кстати, стоит сказать пару слов о провайдере. Когда вы берете у провайдера «интернет 100 мегабит/с», вы берете не чистых 100 мегабит/с полезных данных. Вы берете полосу пропускания шириной 100 мегабит. При этом провайдер вам не гарантирует, что такая полоса пропускания будет во всем Интернете, такая полоса будет только до конечного порта провайдера, который, будем пока говорить так, подключен к общей сети, которую мы называем Интернет. Как только ваш пакет вышел из сети провайдера и отправился в путешествие до серверов Ютуба, ваш поставщик услуг теряет контроль над этим пакетом, так как до Ютуба пакет может пройти через сети других провайдеров.
Рисунок 1.8.2 Грубая схема пути пакета от вашего ПК до Интернета
Если посмотреть на Рисунок 1.8.2, на котором изображена очень грубая схема того, какой путь пройдет ваш пакет от вашего ПК, до Интернета, легко можно понять, что провайдер гарантирует вам 100 Мбит/c, ровно до той желтой стрелочки, которая соединяет маршрутизатор провайдера с облачком, которое я назвал Интернет. Ну а что касается нижней части схемы, то желтая стрелочка, соединяющая домашний роутер с роутером провайдера, имеет пропускную способность 100 Мбит/c, это как раз означает то, что если вы берете у провайдера такой канал, то он будет делиться между всеми устройствами, находящимися за вашим домашним роутером.
А еще стоит учитывать, что ваш домашний роутер должен общаться на своем роутерском языке с роутером провайдера и другими провайдерскими устройствами, и вот этих 100 Мбит/с, которые вы взяли у провайдера, также используются для этих целей, то есть в канале 100 Мбит/с передается как полезный трафик, так и служебный (примерно 7%) и этот момент даже описан, ну или по крайней мере должен быть прописан в вашем договоре (смотрите по ключам вроде: процент утилизируемого трафика или процент служебного трафика).
В общем и целом, вы берете не чистых 100 Мбит/с, а грязных, вывод из этого прост: не насилуйте мозг провайдерской тех. поддержки, а читайте договор, разбирайтесь в том, что вы берете и смотрите, на что подписываетесь.
1.8.4 Единицы измерения канала связи и единицы измерения объема данных на жестком диске компьютера
Если вы IP-инженер, сетевой инженер или администратор сети, то для вас пропускная способность, скорее всего, будет представлена в бит/c и это чертовски удобно. Но бит/c не всегда удобная единица измерения, слишком много нулей придется печатать или считывать с экрана, если вы работаете с современной компьютерной сетью, вероятно вам будет удобнее работать килобитами (10 в 3-ей степени бит)[1 Кбит/c], мегабитами (10 в 6-ой степени бит)[1 Мбит/с] или гигабитами (10 в 9-ой степени бит)[1 Гбит/с].
Обратите внимание, если мы говорим о пропускной способности канала связи, то 1 Кбит = 1000 бит. Но если мы говорим о компьютерной логике и о мере измерения объемов памяти, то мир меняется и, к сожалению, об этом знают не все сетевые инженеры, хотя, казалось бы, очевидная вещь. Итак, когда мы говорим про объем памяти компьютера, то мы тоже вполне себе неплохо используем эти самые биты, но до тех пор, пока мы используем просто биты, а не килобиты или мегабиты. Так, например, 1 Кбит на жестком диске равен 1024 битам, а 1 Кбит пропускной способности канала связи равен 1000 битам. Вопрос: куда делись или откуда появились этих 24 бита?
А дело вот в чем: когда мы говорим про пропускную способность канала связи, то один килобит для нас представляется как 10 в третьей степени бит или 1000 бит, а когда мы говорим про объем памяти, то 1 килобит это 2 в 10 степени бит (это соответствует общей концепции вычислительной техники, подробнее читайте у Таненбаума в его «Архитектуре компьютера»). Вам важно запомнить, что размеры памяти всегда представляются как степень двойки, поэтому даже если вы от бит перейдете к байтам (в одном байте 8 бит), то в логике компьютера 1 килобайт памяти, это не 1000 байт, а 1024 байта.
Но скорость передачи данных не измеряется двоичной системой счисления, для этого мы используем десятичную систему и, соответственно, степени десятки. И вот эта очевидная и базовая вещь в реальной работе приводит к тому, что сетевой инженер пытается решить проблему, которой нет. В качестве примера возьмем такой замечательный во всех отношениях файловый менеджер с названием Total Commander, у которого есть встроенный FTP клиент, при помощи которого абонент, арендующий у провайдера канал связи, решил замерить производительность своего канала (действительно ли провайдер дает ему заявленную скорость или нет), все бы ничего, но дело в том, что FTP клиент, встроенный в Total Commander измеряет скорость копирования файлов, а не скорость канала связи, поэтому результаты он показывает в компьютерной логике и не в мегабитах, а в мегабайтах за секунду. Если хотите попрактиковаться, то вот вам вопрос: канал с какой пропускной способностью арендовал клиент у провайдера, если Total Commander показывал скорость копирования файлов 2.3-2.5 мегабайта в секунду.
Другой пример, есть такой замечательный производитель сетевого оборудования, название которого начинается на D и заканчивается на Link, а между двумя этими словами дефис еще есть. Если говорить о провайдерах, то они любят коммутаторы этого вендора устанавливать для подключения конечных абонентов (если к вам домой приходит витая пара, то, вероятно, она уходит на чердак или в подвал и со стороны провайдера она воткнута в коммутатор этого вендора), такие коммутаторы называются коммутаторами доступа. Как правило, но не всегда, порты этих коммутаторов, с которых включены абоненты, имеют пропускную способность 100 Мбит/c, но не все абоненты берут скорость 100 Мбит/с, кому-то 30 Мбит/с подавай, кому-то пятнадцать.
И самым простым и ломовым способом ограничить пропускную способность для таких абонентов является ограничение полосы пропускания непосредственно на порту, с которого включен абонент (но, если речь идет про услугу доступ в интернет, то провайдеры так не делают, так как маркетологи обещают абонентам при любой скорости доступа в Интернет, пусть даже и 10 Мбит/c, скорость к внутрисетевым ресурсам будет 100 Мбит/c). Так вот, у D-Link есть модели, которым говоришь: D-Link на 5-ом порту надо ограничить скорость до 20 Мбит/c. D-Link на это отвечает: хорошо, я тебя понял и сделал как ты говоришь. Но, мы же должны быть ответственными инженерами, поэтому мы говорим коммутатору: D-Link, покажи скорость, которую ты выставил на 5-ый порт. А D-Link отвечает: вот смотри, на 5-ом порту скорость 24.9 (с хвостиком). И эта ситуация как раз-таки связана с проблемой компьютерной логики подсчета и логики пропускной способности канала связи. Но не подумайте, ничего плохого про D-Link я говорить не хочу, эта ситуация решается парой команд в конфигурации коммутатора.
А теперь давайте я приведу таблицу степеней десятки, в которой будет записано число без степени, это же число, но в виде 10 в степени и как эта вся штука называется (префикс).
Степень | Число в явном виде | Префикс |
10 -24 | 0.000000000000000000000001 | йокто |
10 -21 | 0.000000000000000000001 | цепто |
10 -18 | 0.000000000000000001 | атто |
10 -15 | 0.000000000000001 | фемто |
10 -12 | 0.000000000001 | пико |
10 -9 | 0.000000001 | нано |
10 -6 | 0.000001 | микро |
10 -3 | 0.001 | милли |
10 3 | 1000 | Кило |
10 6 | 1 000 000 | Мега |
10 9 | 1 000 000 000 | Гига |
10 12 | 1 000 000 000 000 | Тера |
10 15 | 1 000 000 000 000 000 | Пета |
10 18 | 1 000 000 000 000 000 000 | Экза |
10 21 | 1 000 000 000 000 000 000 000 | Цетта |
10 24 | 1 000 000 000 000 000 000 000 000 | Йотта |
1.8.5 Выводы
Итак, в завершении разговора о пропускной способности канала связи выделим все самое основное и важное. И первое, нужно быть внимательным при работе с пропускной способностью, хотя эта общая рекомендации при работе с компьютерными сетями в целом. Второе, пропускная способность канала связи считается иначе, нежели объем памяти на компьютере. Третье, провайдер дает нам не 100 Мегабит/с скорости Интернета, а полосу пропускания 100 мегабит, причем грязную полосу, часть которой занята служебным трафиком.
Четвертое, стоит отделять пропускную способность канала связи от пропускной способности компьютерной сети в целом, да и вообще каналы связи работают куда быстрее, чем может работать компьютер, поэтому производители сетевого оборудования везде, где это только возможно, стараются заменить программные вычисления аппаратными. Пятое, для нас в рамках всего нашего разговора пропускная способность будет измеряться как соотношение бит/c. Ну и шестое (об этом будет подробнее в разговоре про MTU), на пропускную способность системы в целом влияет то, сколько полезных данных содержится в одном фрагменте данных (кадре или пакете), MTU на пропускную способность непосредственно канала не влияет, поэтому в компьютерных сетях и системах связи иногда размер чего-либо имеет большое значение.
Я бы хотел опубликовать цикл статей об измерениях характеристик систем связи и сетей передачи данных. Эта статья вводная и в ней будут затронуты лишь самые основы. В дальнейшем планирую более глубокое рассмотрение в стиле «как это сделано».
Покупая продукт или услугу мы часто оперируем таким понятием как качество. Что же такое качество? Если мы обратимся к словарю Ожегова, то там увидим следующее: «совокупность существенных признаков, свойств, особенностей, отличающих предмет или явление от других и придающих ему определенность». Перенося определение на область сетей связи, приходим к выводу, что нам требуется определить «существенные признаки, свойства и особенности», позволяющие однозначно определить отличие одной линии или сети связи от другой. Перечисление всех признаков и свойств обобщаются понятием «метрика». Когда кто-то говорит о метриках сетей связи, он имеет в виду те характеристики и свойства, которые позволят точно судить о системе связи в целом. Потребность в оценке качества лежит большей частью в экономической области, хотя и техническая её часть не менее интересна. Я же попробую балансировать между ними, чтобы раскрыть все самые интересные аспекты этой области знаний.
Всех заинтересовавшихся прошу под кат.
Мониторинг и диагностика систем связи
Как я писал выше, метрики качества определяют экономическую составляющую владения сетью или системой связи. Т.е. стоимость аренды или сдачи в аренду линии связи напрямую зависит от качества этой самой линии связи. Стоимость, в свою очередь, определяется спросом и предложением на рынке. Дальнейшие закономерности описаны у Адама Смита и развиты Милтоном Фридманом. Даже во времена СССР, когда была плановая экономика, а о «рынке» думали, как о преступлении против власти и народа, существовал институт госприемки, как для военных, так и гражданских целей, призванный обеспечить надлежащее качество. Но вернемся в наше время и попробуем определить эти метрики.
Рассмотрим сеть на основе Ethernet, как самой популярной технологии на данный момент. Не будем рассматривать метрики качества среды передачи данных, поскольку они мало интересуют конечного потребителя (разве что материал самой среды иногда бывает интересен: радио, медь или оптика). Самая первая метрика, которая приходит в голову — пропускная способность (bandwidth), т.е. сколько данных мы можем передать в единицу времени. Вторая, связанная с первой,- пакетная пропускная способность (PPS, Packets Per Second), отражающая сколько фреймов может быть передано в единицу времени. Поскольку сетевое оборудование оперирует фреймами, метрика позволяет оценить, справляется ли оборудование с нагрузкой и соответствует ли его производительность заявленной.
Третья метрика — это показатель потери фреймов (frame loss). Если невозможно восстановить фрейм, либо восстановленный фрейм не соответствует контрольной сумме, то принимающая, либо промежуточная система его отвергнет. Здесь имеется ввиду второй уровень системы OSI. Если рассматривать подробнее, то большинство протоколов не гарантируют доставку пакета получателю, их задача лишь переслать данные в нужном направлении, а те кто гарантирует (например, TCP) могут сильно терять в пропускной способности как раз из-за перепосылок фреймов (retransmit), но все они опираются на L2 фреймы, потерю которых учитывает эта метрика.
Четвертая — задержка (delay, latency),- т.е. через сколько пакет отправленный из точки A оказаться в точке B. Из этой характеристики можно выделить еще две: односторонняя задержка (one-trip) и круговая (round-trip). Фишка в том, что путь от A к B может быть один, а от B к A уже совсем другим. Просто поделить время не получится. А еще задержка время от времени может меняться, или “дрожать”,- такая метрика называется джиттером (jitter). Джиттер показывает вариацию задержки относительно соседних фреймов, т.е. девиацию задержки первого пакета относительно второго, или пятого относительно четвертого, с последующим усреднением в заданный период. Однако если требуется анализ общей картины или интересует изменение задержки в течении всего времени теста, а джиттер уже не отражает точно картину, то используется показатель вариации задержки (delay variation). Пятая метрика — минимальный MTU канала. Многие не придают важности этому параметру, что может оказаться критичным при эксплуатации “тяжелых” приложений, где целесообразно использовать jumbo-фреймы. Шестой, и малоочевидный для многих параметр — берстность — нормированная максимальная битовая скорость. По этой метрике можно судить о качестве оборудования, составляющего сеть или систему передачи данных, позволяет судить о размере буфера оборудования и вычислять условия надежности.
Об измерениях
Поскольку с метриками определились, стоит выбрать метод измерения и инструмент.
Задержка
Известный инструмент, поставляемый в большинстве операционных систем — утилита ping (ICMP Echo-Request). Многие ее используют по нескольку раз на дню для проверки доступности узлов, адресов, и т.п. Предназначена как раз для измерения RTT (Round Trip Time). Отправитель формирует запрос и посылает получателю, получатель формирует ответ и посылает отправителю, отправитель замеряя время между запросом и ответом вычисляет время задержки. Все понятно и просто, изобретать ничего не нужно. Есть некоторые вопросы точности и они рассмотрены в следующем разделе.
Но что, если нам надо измерить задержку только в одном направлении? Здесь все сложнее. Дело в том, что помимо просто оценки задержки пригодится синхронизировать время на узле отправителе и узле-получателе. Для этого придуман протокол PTP (Precision Time Protocol, IEEE 1588). Чем он лучше NTP описывать не буду, т.к. все уже расписано здесь, скажу лишь то, что он позволяет синхронизировать время с точностью до наносекунд. В итоге все сводится к ping-like тестированию: отправитель формирует пакет с временной меткой, пакет идет по сети, доходит до получателя, получатель вычисляет разницу между временем в пакете и своим собственным, если время синхронизировано, то вычисляется корректная задержка, если же нет, то измерение ошибочно.
Если накапливать информацию об измерениях, то на основании исторических данных о задержке можно без труда построить график и вычислить джиттер и вариацию задержки — показатель важный в сетях VoIP и IPTV. Важность его связана, прежде всего, с работой энкодера и декодера. При “плавающей” задержке и адаптивном буфере кодека повышается вероятность не успеть восстановить информацию, появляется “звон” в голосе (VoIP) или “перемешивание” кадра (IPTV).
Потери фреймов
Проводя измерения задержки, если ответный пакет не был получен, то предполагается, что пакет был потерян. Так поступает ping. Вроде тоже все просто, но это только на первый взгляд. Как написано выше, в случае с ping отправитель формирует один пакет и отправляет его, а получатель формирует свой собственный о отправляет его в ответ. Т.е. имеем два пакета. В случае потери какой из них потерялся? Это может быть не важно (хотя тоже сомнительно), если у нас прямой маршрут пакетов соответствует обратному, а если это не так? Если это не так, то очень важно понять в каком плече сети проблема. Например, если пакет дошел до получателя, то прямой путь нормально функционирует, если же нет, то стоит начать с диагностики этого участка, а вот если пакет дошел, но не вернулся, то точно не стоит тратить время на траблшутинг исправного прямого сегмента. Помочь в идентификации могла бы порядковая метка, встраиваемая в тестовый пакет. Если на обоих концах стоят однотипные измерители, то каждый из них в любой момент времени знает количество отправленных и полученных им пакетов. Какие именно из пакетов не дошли до получателя можно получить сравнением списка отправленных и полученных пакетов.
Минимальный MTU
Измерение этой характеристики не то чтобы сложно, скорее оно скучно и рутинно. Для определения минимального размера MTU (Maximum transmission unit) следует лишь запускать тест (тот же ping) с различными значениями размеров кадра и установленным битом DF (Don't Fragmentate), что приведет к непрохождению пакетов с размером кадра больше допустимого, ввиду запрета фрагментации.
Например, так не проходит:
А так уже проходит:
Не часто используемая метрика с коммерческой точки зрения, но актуальная в некоторых случаях. Опять же, стоит отметить, что при асимметричном пути следования пакетов, возможен различный MTU в разных направлениях.
Пропускная способность
Наверняка многим известен факт, что количество переданной полезной информации в единицу времени зависит от размера фрейма. Связано это с тем, что фрейм содержит довольно много служебной информации — заголовков, размер которых не меняется при изменении размера фрейма, а изменяется поле “полезной” части (payload). Это значит, что несмотря на то, что даже если мы передаем данные на скорости линка, количество полезной информации переданной за тот же период времени может сильно варьироваться. Поэтому несмотря на то, что существуют утилиты для измерения пропускной способности канала (например iperf), часто невозможно получить достоверные данные о пропускной способности сети. Все дело в том, что iperf анализирует данные о трафике на основе подсчета той самой «полезной» части, окруженной заголовками протокола (как правило UDP, но возможен и TCP), следовательно нагрузка на сеть (L1,L2) не соответствует подсчитанной (L4). При использовании аппаратных измерителей скорость генерации трафика устанавливается в величинах L1, т.к. иначе было бы не очевидно для пользователя почему при измерении размера кадра меняется и нагрузка, это не так заметно, при задании ее в %% от пропускной способности, но очень бросается в глаза при указании в единицах скорости (Mbps, Gbps). В результатах теста, как правило, указывается скорость для каждого уровня (L1,L2,L3,L4). Например, так (можно переключать L2, L3 в выводе):
Пропускная способность в кадрах в секнду
Если говорить о сети или системе связи как о комплексе линий связи и активного оборудования, обеспечивающего нормальное функционирование, то эффективность работы такой системы зависит от каждого составляющего ее звена. Линии связи должны обеспечивать работу на заявленных скоростях (линейная скорость), а активное оборудование должно успевать обрабатывать всю поступающую информацию.
У всех производителей оборудования заявляется параметр PPS (packets per second), прямо указывающий сколько пакетов способно «переварить» оборудование. Ранее этот параметр был очень важен, поскольку подавляющее число техники просто не могло обработать огромное количество “мелких” пакетов, сейчас же все больше производители заявляют о wirespeed. Например, если передаются малые пакеты, то времени на обработку тратится, как правило, столько же, сколько и на большие. Поскольку содержимое пакета оборудованию не интересно, но важна информация из заголовков — от кого пришло и кому передать.
Сейчас все большее распространение в коммутирующем оборудовании получают ASIC (application-specific integrated circuit) — специально спроектированные для конкретных целей микросхемы, обладающие очень высокой производительностью, в то время как раньше довольно часто использовались FPGA (field-programmable gate array) — подробнее об их применении можно прочитать у моих коллег здесь и послушать здесь.
Бёрстность
Стоит отметить, что ряд производителей экономит на компонентах и использует малые буферы для пакетов. Например заявлена работа на скорости линка (wirespeed), а по факту происходят потери пакетов, связанные с тем, что буфер порта не может вместить в себя больше данных. Т.е. процессор еще не обработал скопившуюся очередь пакетов, а новые продолжают идти. Часто такое поведение может наблюдаться на различных фильтрах или конвертерах интерфейсов. Например предполагается, что фильтр принимает 1Gbps поток и направляет результаты обработки в 100Mbps интерфейс, если известно, что отфильтрованный трафик заведомо меньше 100Mbps. Но в реальной жизни случается так, что в какой-то момент времени может возникнуть «всплеск» трафика более 100Mbps и в этой ситуации пакеты выстраиваются в очередь. Если величина буфера достаточна, то все они уйдут в сеть без потерь, если же нет, то просто потеряются. Чем больше буфер, тем дольше может быть выдержана избыточная нагрузка.
После оценки требуемой пропускной способности на каждом из участков IP-сети необходимо определиться с выбором технологий сетевого и канального уровней OSI. В соответствии с выбранными технологиями определяются наиболее подходящие модели сетевого оборудования. Этот вопрос также непростой, поскольку пропускная способность напрямую зависит от производительности оборудования, а производительность, в свою очередь, – от программно-аппаратной архитектуры. Рассмотрим подробнее критерии и методы оценки пропускной способности каналов и оборудования в IP-сетях.
Критерии оценки пропускной способности
Со времени возникновения теории телетрафика было разработано множество методов расчета пропускных способностей каналов. Однако в отличие от методов расчета, применяемых к сетям с коммутацией каналов, расчет требуемой пропускной способности в пакетных сетях довольно сложен и вряд ли позволит получить точные результаты. В первую очередь это связано с огромным количеством факторов (в особенности присущих современным мультисервисным сетям), которые довольно сложно предугадать. В IP-сетях общая инфраструктура, как правило, используется множеством приложений, каждое из которых может использовать собственную, отличную от других модель трафика. Причем в рамках одного сеанса трафик, передаваемый в прямом направлении, может отличаться от трафика, проходящего в обратном направлении. Вдобавок к этому расчеты осложняются тем, что скорость трафика между отдельно взятыми узлами сети может изменяться. Поэтому в большинстве случаев при построении сетей оценка пропускной способности фактически обусловлена общими рекомендациями производителей, статистическими исследованиями и опытом других организаций.
Чтобы более или менее точно определить, какая пропускная способность требуется для проектируемой сети, необходимо в первую очередь знать, какие приложения будут использоваться. Далее для каждого приложения следует проанализировать, каким образом будет происходить передача данных в течение выбранных промежутков времени, какие протоколы для этого применяются.
Для простого примера рассмотрим приложения небольшой корпоративной сети.
Пример расчета пропускной способности
Предположим, в сети расположены 300 рабочих компьютеров и столько же IP-телефонов. Планируется использовать такие сервисы: электронная почта, IP-телефония, видеонаблюдение (рис. 1). Для видеонаблюдения применяются 20 камер, с которых видеопотоки передаются на сервер. Попытаемся оценить, какая максимальная пропускная способность потребуется для всех сервисов на каналах между коммутаторами ядра сети и на стыках с каждым из серверов.
Телефония и видеонаблюдение
Другие приложения – телефония и видеонаблюдение – в своей структуре передачи потоков схожи: оба вида трафика передаются с использованием протокола UDP и имеют более или менее фиксированную скорость передачи. Главные отличия в том, что у телефонии потоки являются двунаправленными и ограничены временем вызова, у видеонаблюдения потоки передаются в одном направлении и, как правило, являются непрерывными.
Чтобы оценить требуемую пропускную способность для трафика телефонии, предположим, что в пики активности количество одновременных соединений, проходящих через шлюз, может достигать 100. При использовании кодека G.711 в сетях Ethernet скорость одного потока с учетом заголовков и служебных пакетов составляет примерно 100 кбит/с. Таким образом, в периоды наибольшей активности пользователей требуемая пропускная способность в ядре сети составит 10 Мбит/с.
Трафик видеонаблюдения рассчитывается довольно просто и точно. Допустим, в нашем случае видеокамеры передают потоки по 4 Мбит/с каждая. Требуемая пропускная способность будет равна сумме скоростей всех видеопотоков: 4 Мбит/с х 20 камер = 80 Мбит/с.
Витоге осталось сложить полученные пиковые значения для каждого из сетевых сервисов: 600 + 10 + 80 = 690 Мбит/с. Это и будет требуемая пропускная способность в ядре сети. При проектировании следует также предусмотреть и возможность масштабирования, чтобы каналы связи могли как можно дольше обслуживать трафик разрастающейся сети. В нашем примере будет достаточно использования Gigabit Ethernet, чтобы удовлетворить требованиям сервисов и одновременно иметь возможность беспрепятственно развивать сеть, подключая большее количество узлов
Конечно же, приведенный пример является далеко не эталонным – каждый случай нужно рассматривать отдельно. В реальности топология сети может быть гораздо сложнее (рис. 2), и оценку пропускной способности необходимо производить для каждого из участков сети.
Нужно учитывать, что VoIP-трафик (IP-телефония) распространяется не только от телефонов к серверу, но и между телефонами напрямую. Кроме того, в разных отделах организации сетевая активность может различаться: служба техподдержки совершает больше телефонных вызовов, отдел проектов активнее других пользуется электронной почтой, инженерный отдел больше других потребляет интернет-трафик и т.д. В результате некоторые участки сети могут требовать большей пропускной способности по сравнению с остальными.
Полезная и полная пропускная способность
В нашем примере при расчете скорости потока IP-телефонии мы учитывали используемый кодек и размеры заголовка пакета. Это немаловажная деталь, которую нужно иметь в виду. В зависимости от способа кодирования (используемые кодеки), объема данных, передаваемых в каждом пакете, и применяемых протоколов канального уровня формируется полная пропускная способность потока. Именно полная пропускная способность должна учитываться при оценке требуемой пропускной способности сети. Это наиболее актуально для IP-телефонии и других приложений, использующих передачу низкоскоростных потоков в реальном времени, в которых размер заголовков пакета составляет существенную часть от размера пакета целиком. Для наглядности сравним два потока VoIP (см. таблицу). Эти потоки используют одинаковое сжатие, но разные размеры полезной нагрузки (собственно, цифровой аудиопоток) и разные протоколы канального уровня.
Скорость передачи данных в чистом виде, без учета заголовков сетевых протоколов (в нашем случае – цифрового аудиопотока), есть полезная пропускная способность. Как видно из таблицы, при одинаковой полезной пропускной способности потоков их полная пропускная способность может сильно различаться. Таким образом, при расчете требуемой пропускной способности сети для телефонных вызовов в пиковые нагрузки, особенно у операторов связи, выбор канальных протоколов и параметров потоков играет значительную роль.
Выбор оборудования
Выбор протоколов канального уровня обычно не составляет проблемы (сегодня чаще стоит вопрос, какая пропускная способность должна быть у канала Ethernet), но вот выбор подходящего оборудования даже у опытного инженера может вызвать затруднения.
Развитие сетевых технологий одновременно с растущими потребностями приложений в пропускной способности сетей вынуждает производителей сетевого оборудования разрабатывать все новые программно-аппаратные архитектуры. Часто у отдельно взятого производителя встречаются на первый взгляд схожие модели оборудования, но предназначенные для решения разных сетевых задач. Взять, к примеру, коммутаторы Ethernet: у большинства производителей наряду с обычными коммутаторами, используемыми на предприятиях, есть коммутаторы для построения сетей хранения данных, для организации операторских сервисов и т.д. Модели одной ценовой категории различаются своей архитектурой, "заточенной" под определенные задачи.
Кроме общей производительности, выбор оборудования также должен быть обусловлен поддерживаемыми технологиями. В зависимости от типа оборудования определенный набор функций и виды трафика могут обрабатываться на аппаратном уровне, не используя ресурсы центрального процессора и памяти. При этом трафик других приложений будет обрабатываться на программном уровне, что сильно снижает общую производительность и, как следствие, максимальную пропускную способность. Например, многоуровневые коммутаторы, благодаря сложной аппаратной архитектуре, способны осуществлять передачу IP-пакетов без снижения производительности при максимальной загрузке всех портов. При этом если мы захотим использовать более сложную инкапсуляцию (GRE, MPLS), то такие коммутаторы (по крайней мере недорогие модели) вряд ли нам подойдут, поскольку их архитектура не поддерживает соответствующие протоколы, и в лучшем случае такая инкапсуляция будет происходить за счет центрального процессора малой производительности. Поэтому для решения подобных задач можно рассматривать, например, маршрутизаторы, у которых архитектура основана на высокопроизводительном центральном процессоре и в большей степени зависит от программной, нежели аппаратной реализации. В этом случае в ущерб максимальной пропускной способности мы получаем огромный набор поддерживаемых протоколов и технологий, которые не поддерживаются коммутаторами той же ценовой категории.
Общая производительность оборудования
В документации к своему оборудованию производители часто указывают два значения максимальной пропускной способности: одно выражается в пакетах в секунду, другое – в битах в секунду. Это связано с тем, что большая часть производительности сетевого оборудования расходуется, как правило, на обработку заголовков пакетов. Грубо говоря, оборудование должно принять пакет, найти для него подходящий путь коммутации, сформировать новый заголовок (если нужно) и передать дальше. Очевидно, что в этом случае играет роль не объем данных, передаваемых в единицу времени, а количество пакетов.
Если сравнить два потока, передаваемых с одинаковой скоростью, но с разным размером пакетов, то на передачу потока с меньшим размером пакетов потребуется больше производительности. Данный факт следует учитывать, если в сети предполагается использовать, например, большое количество потоков IP-телефонии – максимальная пропускная способность в битах в секунду здесь будет гораздо меньше заявленной.
Понятно, что при смешанном трафике, да еще и с учетом дополнительных сервисов (NAT, VPN), как это бывает в подавляющем большинстве случаев, очень сложно рассчитать нагрузку на ресурсы оборудования. Часто производители оборудования или их партнеры проводят нагрузочное тестирование разных моделей при разных условиях и результаты публикуют в Интернете в виде сравнительных таблиц. Ознакомление с этими результатами сильно упрощает задачу выбора подходящей модели.
Подводные камни модульного оборудования
Если выбранное сетевое оборудование является модульным, то, кроме гибкой конфигурации и масштабируемости, обещанной производителем, можно получить и множество "подводных камней".
При выборе модулей следует тщательно ознакомиться с их описанием или проконсультироваться у производителя. Недостаточно руководствоваться только типом интерфейсов и их количеством – нужно также ознакомиться и с архитектурой самого модуля. Для похожих модулей нередка ситуация, когда при передаче трафика одни способны обрабатывать пакеты автономно, а другие просто пересылают пакеты центральному процессорному модулю для дальнейшей обработки (соответственно для одинаковых внешне модулей цена на них может различаться в несколько раз). В первом случае общая производительность оборудования и, как следствие, его максимальная пропускная способность оказываются выше, чем во втором, поскольку часть своей работы центральный процессор перекладывает на процессоры модулей.
Кроме этого, модульное оборудование часто обладает блокируемой архитектурой (когда максимальная пропускная способность ниже суммарной скорости всех портов). Это связано с ограниченной пропускной способностью внутренней шины, через которую модули осуществляют обмен трафиком между собой. Например, если модульный коммутатор имеет внутреннюю шину с пропускной способностью 20 Гбит/с, то для его линейной платы с 48 портами Gigabit Ethernet при полной загрузке можно использовать только 20 портов. Подобные детали нужно также иметь в виду и при выборе оборудования внимательно читать документацию.
Общие рекомендации
При проектировании IP-сетей пропускная способность является ключевым параметром, от которого будет зависеть архитектура сети в целом. Для более точной оценки пропускной способности, можно руководствоваться следующим рекомендациям:
- Изучайте приложения, которые планируется использовать в сети, применяемые ими технологии и объемы передаваемого трафика. Пользуйтесь советами разработчиков и опытом коллег, чтобы учесть все нюансы работы этих приложений при построении сетей.
- Детально изучайте сетевые протоколы и технологии, которые используются этими приложениями.
- Внимательно читайте документацию при выборе оборудования. Чтобы иметь некоторый запас готовых решений, ознакомьтесь с продуктовыми линейками разных производителей.
В результате при правильном выборе технологий и оборудования можно быть уверенным, что сеть в полной мере удовлетворит требованиям всех приложений и, будучи достаточно гибкой и масштабируемой, прослужит долгое время.
Читайте также: