Измерение пропускной способности сети
Измерение пропускной способности сети — это процесс определения максимального объёма данных, который может быть передан по каналу связи или сетевому соединению за определённый промежуток времени. Для этой задачи существуют различные программные и аппаратные средства, доступные на разных платформах. Статья рассматривает теоретические основы используемых инструментов и проблемы, связанные с практическими измерениями пропускной способности сети.
Люди часто проявляют интерес к измерению максимальной пропускной способности (пропускной способности данных) в битах в секунду для оцениваемого канала связи или сетевого доступа. Типичный способ проведения измерения — перенос «большого» файла с одной системы на другую с последующим измерением времени, затраченного на передачу или копирование файла. Пропускная способность рассчитывается как отношение размера файла ко времени передачи, получая результат в мегабитах, килобитах или битах в секунду.
Однако так измеряется, как правило, не теоретически максимальная пропускная способность, а goodput — реальная скорость передачи пользовательских данных, которая оказывается ниже максимальной, что может вызвать ошибочное мнение о недостаточной работе соединения. Это объясняется разными накладными расходами: кроме затрат на передачу, учитываются такие параметры, как задержка, размер окна приёма TCP и ограничения самой системы, из-за чего измеряемая goodput не отражает максимальную пропускную способность канала[1].
Краткая теория
Максимальная пропускная способность оценивается по следующей формуле:
где RWIN — размер окна приёма TCP, а RTT — время кругового обхода по маршруту.
Максимальный размер TCP-окна без использования опции масштабирования окна TCP составляет 65 535 байт (64 Кбайт). Пример: максимальная пропускная способность = 65 535 байт / 0,220 с = 297 886,36 Б/с × 8 = 2,383 Мбит/с. При одиночном TCP-соединении между двумя точками реальная измеренная пропускная способность будет ограничена значением около 2,376 Мбит/с даже при более высоких тарифных скоростях.
Программное обеспечение для тестирования пропускной способности
Специализированные программы предназначены для определения предельной пропускной способности сети или интернет-соединения. Обычно процесс состоит в попытке загрузить наибольший объём данных за установленное время либо передать заданное количество данных с минимальными задержками. Такие тесты могут создавать значимую нагрузку на канал и временно замедлять интернет-соединение, а иногда — увеличивать стоимость передачи данных.
Номенклатура
Пропускную способность каналов связи выражают в битах в секунду (бит/с), килобитах в секунду (кбит/с), мегабитах в секунду (Мбит/с) и гигабитах в секунду (Гбит/с). В этих терминах приставки кило, мега и гига — стандартные СИ-приставки, обозначающие умножение на 1 000 (кило), 1 000 000 (мега) и 1 000 000 000 (гига).
Размеры файлов обычно измеряют в байтах, килобайтах, мегабайтах и гигабайтах, где 1 байт равен восьми битам. В современной литературе один килобайт принято считать равным 1 000 байт, мегабайт — 1 000 000 байт и т. д., согласно стандарту МЭК 1998 года. Вместе с тем в операционных системах семейства Windows используется определение: 1 килобайт = 1024 байта (210), что соответствует 1 кибибайту, а 1 мегабайт — 1 048 576 байт (1024 × 1024), что равно 1 мебибайту. Аналогично, 1 гигабайт = 1024 × 1024 × 1024 байта = 1 гибибайт.
Путаница и непоследовательность в использовании сокращений
В повседневной речи зачастую используют устоявшиеся сокращения: например, под «64 к» обычно понимается файл объёмом 64 килобайта, а под «100 мег» — файл на 100 мегабайт. Что касается скоростей каналов, то термины пропускная способность, ширина полосы пропускания и «скорость» часто употребляются как синонимы, а каналы называют, например, «64 к» (имеется в виду 64 кбит/с) или «2 мег» (2 Мбит/с). Но у человека без соответствующего опыта может возникнуть неправильное понимание: «канал 64 к» вовсе не означает, что файл объёмом 64 к за 1 секунду будет полностью передан. Реально 64-килобайтный файл содержит 64 × 1024 × 8 бит, а канал 64 к работает на скорости 64 × 1 000 бит/с. Минимальное время передачи составит (64 × 1024 × 8) / (64 × 1 000) = 8,192 секунды.
Сжатие данных
Часть оборудования и программных средств способна увеличить фактическую скорость передачи благодаря сжатию передаваемых данных. Так реализовано во многих аналоговых модемах и ряде популярных операционных систем. Если удаётся существенно уменьшить объём файла благодаря сжатию, время передачи сокращается. Поскольку такое «прозрачное» сжатие обычно невозможно отключить, для измерения пропускной способности советуют использовать несжимаемые файлы — обычно это наборы данных со случайным содержанием.
Если данные нельзя сжать, то указанное выше время 8,192 секунды передачи 64-килобайтного файла по 64-килобитному каналу — теоретический минимум, недостижимый на практике из-за действующих накладных расходов (служебная информация для согласования формата передачи).
Существуют также менее очевидные моменты при передаче сжатых данных:
- Сжатие файлов не улучшает пропускную способность сети как таковой; однако с точки зрения «конец-конец» (сервер-клиент) оно увеличивает объём полезной информации, передаваемый за единицу времени.
- Сжатие требует вычислительных ресурсов обеих сторон (сервер должен сжать файл, клиент — распаковать). Это дополнительные затраты ресурсов, компенсируемые ростом фактической скорости передачи между двумя точками[1].
Накладные расходы и форматы данных
Типовой канал связи — асинхронный последовательный канал («асинхронный» — по протоколу start-stop). В домашнем или офисном компьютере при использовании внешнего модема подключение, скорее всего, осуществляется по асинхронному последовательному интерфейсу. Его достоинство — простота (нужны лишь три провода: передача, приём и общий). В интерфейсе RS-232 неактивная линия поддерживается при отрицательном напряжении, а «ноль» представляется положительным напряжением, «единица» — отрицательным (как и неактивная линия). Для различения бита «единица» и неактивного состояния стороны заранее договариваются о скорости передачи и используют стартовый бит («ноль») для обозначения начала байта. Стоповый бит («единица») обозначает завершение передачи байта[1].
Заранее также договариваются о других параметрах передачи: скорости, количестве битов в символе, чётности и числе стоповых битов. Например, запись «9600-8-E-2» означает скорость 9600 бит/с, 8 бит в символе, чётная контрольная сумма, 2 стоповых бита.
Большинство подключений имеет конфигурацию «9600-8-N-1» (9600 бит/с, 8 бит в символе, без контроля чётности, 1 стоповый бит). Это значит: для передачи одного 8-битового байта требуется 10 бит (стартовый + 8 информационных + стоповый), то есть накладные расходы составляют 20 %. Соответственно, фактическая скорость передачи — не 9600/8 = 1200 байт/с, а 9600/10 = 960 байт/с.
В более сложных конфигурациях с контролем чётности и двумя стоповыми битами (всего 12 бит на символ) накладные расходы возрастают до 50 %: 9600/12 = 800 байт/с. Современные асинхронные интерфейсы поддерживают скорости до 230,4 кбит/с. При настройке без контроля чётности и одного стопового бита максимальная скорость передачи составляет 23,04 кбайт/с.
Главное достоинство асинхронных каналов — простота, главный недостаток — сравнительно невысокая эффективность. Для повышения эффективности применяются синхронные интерфейсы, в которых выделяется отдельная линия тактирования и передача осуществляется по синхросигналу. В этом случае необходимость передачи стартовых и стоповых битов отпадает, но данные разделяются на кадры (фреймы) фиксированной длины с определёнными разделителями. Наиболее распространённые фреймовые протоколы — HDLC, PPP, Ethernet.
HDLC
При использовании HDLC байты данных объединяются в кадры. Начало и конец кадра обозначается специальной меткой («флаг»), а контроль ошибок осуществляется с помощью контрольной последовательности. В случае максимального размера адреса (32 бита), управляющей части (16 бит) и контрольной последовательности (16 бит) накладные расходы на кадр составят до 64 бит. Если кадр несёт только один байт данных, эффективность будет крайне низкой, но при передаче типичных кадров больших размеров (более 24 байт) общая эффективность HDLC превышает асинхронную передачу. Размер каждого кадра может быть разным, а значит, и накладные расходы HDLC непостоянны[2].
PPP
PPP (протокол «точка-точка») регламентируется документами RFC 1570, RFC 1661 и RFC 1662. По методике оформления пакетов (фреймирования) PPP схож с HDLC и поддерживает как битовую, так и символьную («октетную») передачу с сохранением прозрачности данных[3].
Ethernet
Ethernet — технология локальных сетей (LAN), вступающая в конкуренцию с протоколами канального уровня. Фреймы Ethernet имеют иную физическую организацию передачи, нежели HDLC или PPP, однако с точки зрения расчёта пропускной способности эти детали несущественны. Ethernet — разделяемая среда, из-за чего при одновременной передаче данных несколькими устройствами индивидуальная пропускная способность между каждой парой может существенно уменьшаться относительно номинальной[4].
Другие протоколы канального уровня
Для организации связи между системами используют не только выделенные (point-to-point) соединения, но и такие технологии, как Frame Relay, ATM, MPLS. Для корректного учёта реальной пропускной способности необходимо понимать устройство кадров/ячеек/пакетов и детали реализации данных технологий[3].
Frame Relay
Frame Relay использует модифицированный формат HDLC для определения структуры кадра[1].
Асинхронный режим передачи (ATM)
Асинхронный режим передачи (англ. asynchronous transfer mode, ATM) принципиально отличается способом передачи данных: он делит поток информации на фиксированные ячейки длиной 53 байта (5 байт — заголовок, 48 байт — полезные данные). Обычно сетевые пакеты бывают больше 48 байт, так что определён специальный механизм адаптации для нарезки и упаковки крупных пакетов в стандартные ячейки; алгоритмы этого механизма («ATM adaptation layer») зависят от характера перевозимых данных. Наиболее распространён вариант AAL5, применяемый для передачи «обычных» сетевых данных. Для корректного расчёта пропускной способности ATM-линии важно знать, какая адаптационная подсистема была применена[1].
MPLS
Технология MPLS добавляет к каждому передаваемому пакету специальную «метку» (MPLS label). В некоторых случаях такие «метки» могут накладываться «стеком», то есть один и тот же пакет получает несколько последовательных ярлыков. MPLS может функционировать как на «чистых» каналах передачи, так и быть инкапсулирован в методы Frame Relay или HDLC. Для точного расчёта накладных расходов и пропускной способности необходимо учитывать все уровни вложения: например, пакет с двумя ярлыками MPLS, инкапсулированный в HDLC-кадр, даст бо́льшие расходы, чем одноуровневый MPLS без подложенного протокола[5].
Протоколы более высокого уровня
Передача файлов и данных редко осуществляется простым помещением содержимого в поле «данные» HDLC- или PPP-кадра. Обычно для структурирования содержимого пользуются дополнительным протоколом, чаще всего — IP (определяется RFC 791), который также накладывает свои расходы.
Далее для управления связью между двумя системами обычно применяют TCP (определяется RFC 1812), который вносит свои накладные расходы.
Наконец, фактический обмен файлами происходит с помощью протоколов передачи данных высшего уровня, например, протокола передачи файлов[3].
Примечания
- ↑ 1 2 3 4 5 Comer, D. E. (2008). Computer Networks and Internets 5th Edition
- ↑ Cisco System, Inc. (2001—2006). Cisco IOS IP Configuration Guide
- ↑ 1 2 3 Lydia Parziale, D. T. (2006). TCP/IP TUTORIAL AND TECHNICAL OVERVIEW
- ↑ Lammle, T. (2002). Cisco Certified Network Associate. London
- ↑ Smith, S. (2003). Introductions To MPLS. CISCO
Литература
- Comer, D. E. Computer Networks and Internets. 5th Edition. 2008.
- Cisco System, Inc. Cisco IOS IP Configuration Guide. 2001—2006.
- Lydia Parziale, D. T. TCP/IP TUTORIAL AND TECHNICAL OVERVIEW. 2006.
- Lammle, T. Cisco Certified Network Associate. London, 2002.
- Smith, S. Introductions To MPLS. CISCO, 2003.