Активные и пассивные измерения в сети

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

Активные измерения основаны на генерации в узле-источнике специальных «измерительных » пакетов. Эти пакеты должны пройти через сеть тот же путь, что и пакеты, характеристики которых мы собираемся оценивать. Измерения в узле назначения проводятся на последовательности «измерительных» пакетов.

Рисунок 1 иллюстрирует идею активных измерений. Пусть мы хотим измерить задержки пакетов некоторого приложения А, которые передаются от компьютера-клиента приложения А компьютеру-серверу приложения А через сеть. Вместо того чтобы пытаться измерить задержки пакетов, генерируемых клиентским компьютером, мы устанавливаем в сети два дополнительных компьютера: сервер-генератор и сервер-измеритель. Сервергенератор генерирует измерительные пакеты (показанные на рисунке серым цветом), а сервер-измеритель измеряет задержки этих пакетов. Для того чтобы измеряемые значения были близки к значениям задержки пакетов приложения А, нужно, чтобы измерительные пакеты проходили через сеть по тому же пути, что и пакеты приложения А, то есть нужно постараться подключить сервер-генератор и сервер-измеритель по возможности ближе к оригинальным узлам. В нашем примере такое приближение достигнуто за счет подключения дополнительных узлов к портам тех же коммутаторов 51 и 52, к которым подключены оригинальные узлы. Кроме того, нужно, чтобы измерительные пакеты как можно больше «походили» на оригинальные пакеты — размерами, признаками, помещенными в заголовки пакетов. Это требуется для того, чтобы сеть обслуживала их так же, как оригинальные пакеты.

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

Возникает естественный вопрос: зачем нужно решать столько проблем: размещать дополнительное оборудование, создавать условия для измерительных пакетов, близкие к условиям обработки оригинальных пакетов, и в то же время стараться не изменить нагрузку сети? Не проще ли измерять параметры реальных пакетов? Ответ заключается в том, что активная схема упрощает процесс проведения измерений и позволяет добиться их высокой точности. Так как сервер-генератор создает измерительные пакеты, то он легко может ис пользовать специальный формат пакетов для того, чтобы поместить в них необходимую для измерения информацию, например временную отметку (time-stamp) отправки пакет Затем сервер-измеритель использует эту временную отметку для вычисления времен задержки. Очевидно, что для того чтобы измерения задержки были точными, нужна хоро шая синхронизация сервера-генератора и сервера-измерителя. Так как в схеме активны измерений они представляют собой выделенные узлы, такой синхронизации добитьс проще, чем в случае синхронизации клиента и сервера приложения А, которые чаще всег представляют собой обычные компьютеры. Кроме того, иногда у инженеров, проводящи измерения, просто нет доступа к компьютерам, на которых работают приложения, чтоб установить там программное обеспечение для требуемых измерений поступающих паке тов. А если такой доступ и существует, то операционные системы клиента и сервера и аппаратная платформа, скорее всего, не оптимизированы для точных измерений временны интервалов, а значит, вносят большие искажения в результаты (например, за счет задерже программы измерений в очереди к центральному процессору).

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

Пассивные измерения основаны на измерениях характеристик реального трафика. Эту схему иллюстрирует рис. 2.

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

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

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

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