Множество провайдеров услуг Интернет и другие поставщики сетевых сервисов
ищут точные и эффективные пути снятия информации об использовании предоставляемых сервисов
абонентами для того, что бы иметь возможность предоставлять детализированные счета. Предоставление
детализированных счетов является важнейшим дополнительным сервисом, который обеспечивает два
главных преимущества:
- Пользователь получает документальное подтверждение того, что счет в точности соответствует
употребленным услугам, а также снабжает пользователя информацией, позволяющей ему
контролировать свои траты.
- Сервис провайдер имеет возможность взимать плату с пользователя за сервисы различного типа,
при этом создавая новые ценные возможности.
Статистические данные об использовании услуг пользователями ("Первичные данные" в терминах
АСР LANBilling, Прим. переводчика) для генерации подробных счетов должны предоставлять точную
информацию о потоке данных. Способы снятия первичных данных должны быть недорогими и не должны
влиять на производительность сети. Эта статья описывает то, каким образом технология на базе SFlow,
разработанная InMon Corp. может достигнуть целей, описанных выше, концентрируясь главным образом
на точности статистических данных.
2. Обзор SFlow
SFlow был специально разработан для продолжительного, охватывающего всю сеть, мониторинга
коммутируемых потоков уровней со 2-го по 7-й ЭМВОС (Эталонной Модели Взаимодействия Отрытых Систем)
высокой степени интенсивности. sFlow функционирует, отслеживая состояние точных интерфейсных счетчиков
и статистические выборки решений о пересылке пакетов, производимых коммутатором. Оба типа информации
немедленно пересылается на центральный коллектор-сборщих первичных данных (таких, как InMon Traffic
Server или сетевой агент LANBilling SFlow) который производит их анализ, результатом которого является
детализированная информация о потоках данных уровня приложений. Именно данные агента (коллектора)
используются для генерации группированных на множестве уровней отчетов: по VLAN, приоритету, типу
сервиса, категории трафика и пр.
3. Теория выборок
Статистические выборки протокола SFlow - пакетно-ориентированный метод отбора экземпляров.
В среднем, один пакет из N отбирается из потока и пересылается для последующего анализа. Элемент
хаотичности введен в процесс отбора, чтобы предотвратить синхронизацию с любой периодической
составляющей трафика. Метод отбора образцов (sampling) не обеспечивает стопроцентной точности
результата, но он обеспечивает результат, в котором ошибка может быть точно охарактеризована.
Пример, приведенный ниже, иллюстрирует описанную теорию, на базе которой основан метод.
3.1 Пример пакетной выборки
Предполагая, что поток данных содержит 1 000 000 пакетов. Осуществляется отбор 0.25% пакетов
потока (это 2 500 шт). Если 1 000 пакетов в выборке представляют определенный класс трафика
(скажем голосовой трафик VoIP), то сколько пакетов в потоке были в действительности пакетами
голосового трафика? Как минимум, 1 000 пакетов должны были быть голосовыми, потому что именно
столько было отобрано из потока. Как максимум, 998 500 голосовых пакетов могло быть передано,
потому что 1 500 пакетов из выборки не были голосовыми. Но вероятнее всего часть голосовых пакетов
потока находится в такой же пропорции, в которой находятся голосовые пакеты в статистической выборке,
т.е. 40% (1000 разделенных на 2500). Сказанное означает, что наилучшим приближением для количества
голосовых пакетов потока является значение в 400 000.
Вероятность того, что в потоке было в точности 400 000 голосовых пакетов мала. Можно определить,
математически, небольшой интервал значений, в который с вероятностью, скажем, 95% попадет
результирующее значение. Другими словами можно рассчитать математически диапазон или доверительный
интервал, дающий 95%-ую уверенность в том, что количество голосовых пакетов в потоке попадает в него.
В нашем случае 95% доверительный интервал представляет собой значения между 381 000 и 419 000.
При этом интервал наиболее вероятных значений также может быть представлен в процентном выражении,
т.е. 400 000 ± 4.8% были голосовыми пакетами и максимально возможная ошибка приближения равна 4.8%.
Отчет, опубликованный лабораторией HP, находящийся по ссылке
http://www.hpl.hp.com/techreports/92/HPL-92-35.html
описывает то, как вычислить доверительный интервал по отобранным значениям (по выборке).
Процент ошибок первого приближения является функцией единственного параметра - количества отобранных
пакетов для измерения:
%Ошибки < 196 SQRT (1 / c), где c - это количество пакетов, принадлежащих определенному классу.
Расчет ошибки для нашего примера дает приблизительное значение ошибки в 6%.
3.2 Статистические выборки и измерение ошибки
Статистическая выборка может дать результат, который значительно отличается от действительного
значению в том случае, когда интервал измерений (частота отбора образцов) очень длинный, или когда
интенсивность трафика низка. Этот эффект наилучшим образом иллюстрируется примером.
Предположим, что поток содержит голосовой трафик, передающийся со скоростью один пакет в
секунду, выборка из которого ведется в течение часа. В течение часа пройдет 3600 пакетов. В том случае
если мы зададимся 0.25% скоростью отбора образцов (процент отбираемых пакетов из потока). То приблизительно
9 экземпляров голосовых пакетов будет присутствовать в выборке. Ошибка в таком случае будет равна 65%.
Это означает, что часовые приближения количества пакетов в потоке находятся в интервале от 1 200 до 6 000 пакетов.
Существует два пути улучшить точность приближений:
- Увеличить частоту отбора (sampling rate): предположив, что частота отбора увеличится до 1%,
приблизительно 36 экземпляров голосовых пакетов будет получено за час и процент ошибки будет
сокращен до 33%. Часовые приближения будут находиться в более узком интервале между 2400 и 4800 пакетами.
- Отслеживать статистику более долгий период времени: Если анализ ведется в течение месяца,
с частотой выборки 0.25% тогда в выборку попадет 6 700 экземпляров голосовых пакетов.
Такой мониторинг дает процент ошибки всего 2.4% при этом месячные приближения находятся
в интервале от 2 610 000 до 2 740 000 пакетов. Наблюдение похожих интервалов длительностью в
неделю или месяц наиболее подходящий выбор для задач тарификации, которые требуют наиболее
точных данных.
4. Настройка точности протокола SFlow для нужд биллинга
Точность результатов, которые показывает протокол SFlow, может быть настроена для получения
требуемого уровня точности в соответствии с требованиями, предъявляемыми к биллингу. Точность
контролируется изменением скорости отбора (sampling rate). Например: типичная стратегия провайдера
Интернет заключается в том, что определенная величина месячного трафика тарифицируется по фиксированной
стоимости, а дальнейшее потребление услуги тарифицируется дискретно за каждый дополнительный квант
информации. Высокая точность требуется для расчета стоимости информации, потребленной абонентом сверх
заданного лимита. Используя зависимости, описанные выше, вычислим процент ошибок при наблюдении 5 Гб
трафика в месяц со скоростью отбора 1 пакет из 1000, предполагая, что средняя длина пакета равна 150
байтам. Процент ошибки будет равен 1.07%. График на рисунке №1 может быть полезен для определения
количества экземпляров в выборке, которые должны быть отобраны для получения требуемого процента ошибки.
Соответственно график может быть использован для определения скорости отбора (частоты дискретизации).

Рис. 1
Зависимость процента ошибки от частоты дискретизации
В дополнение доверительные интервалы для приближений могут быть использованы для того, что бы исключить
статистические ошибки при тарификации, честным для потребителя способом. Проведение тарификации по
нижней границе доверительного интервала исключает вероятность того, что пользователь заплатит за
трафик, которого в действительности не было.
Ввиду того, что точность измерений в SFlow зависит только о количества экземпляров в
выборке, в том случае если образцы пакетов теряются между SFlow агентом устройства и коллектором
(сетевым агентом LANBilling), увеличение процента ошибки в результате незначительно и легко
вычисляется.
5. Другие методы мониторинга данных для целей биллинга
Существуют еще два широко используемых метода для сбора первичных данных для биллинга:
опрос счетчиков и анализ каждого пакета в потоке.
5.1 Опрос счетчиков
Обычные счетчики, учитывающие байты или дэйтаграммы, поддерживаются каждым сетевым
устройством. Это дает возможность получить точные агрегированные данные по количеству байт или фрэймов,
прошедших через интерфейс. Если единственный узел или устройство подключено к коммутируемому порту,
то общий объем данных этого устройства будет измерено. Если несколько сервисов обслуживаются этим
устройством (например, несколько www сайтов, хостинг которых обеспечивает устройство), то в таком
случае, у оператора нет возможности разделить общий объем на порции, которые были адресованы различным
пользователям (каждый порт должен представлять одного пользователя). Таким же образом у оператора не
будет возможности классифицировать трафик, скажем, на, локальный и не локальный, и, соответственно
оператор не сможет тарифицировать дифференцированно эти две услуги (локальный трафик и трафик Интернет).
На практике ошибки при использовании данной методики могут возникать при переполнении
счетчиков или при рестарте линейных карт коммутаторов. Ввиду того, что такие ситуации
непредсказуемы, то нет возможности предсказать или характеризовать подобные ошибки.
SFlow так же использует точные пакетные счетчики, пересылая их значения вместе с экземплярами
выборки, в центральный сборщик первичных данных. Однако благодаря тому, что агент SFlow реализован
непосредственно в коммутаторе, существует возможность отследить переполнение и рестарт счетчиков,
исключив тем самым ошибки из результата.
5.2 Анализ каждого пакета в потоке
Каждый пакет, проходящий через устройство, может быть проанализирован. На основе этого
анализа может быть получена точная информация о потоке. NetFlow использует именно этот прием.
Этот метод требователен к производительности процессора и памяти устройства, осуществляющего
коммутацию или маршрутизацию, что может повлиять на способность выполнять устройством свои
прямые функции. Если коммутатор работает в условиях нехватки оперативной памяти или обрабатывает
большой объем данных одновременно с мониторингом всех пакетов потока, то точность измерений пострадает.
Потери возникающие при таких ситуациях невозможно охарактеризовать количественно, и поэтому окончательная
точность измерений не может быть определена однозначно.
6. Выводы
Метод статистических выборок, базирующийся на отборе пакетов потока, является недорогой
технологией, которая легко справляется с высокоскоростными коммутируемыми сетями. Внедрение решений
на базе SFLow обладает следующими ключевыми преимуществами:
- Детальная характеристика потоков данных поддерживающая пунктуальные счета с группировкой
на многих уровнях: VLAN, протоколы, тип сервиса, адреса источников и приемников и т.д.
- Легко вычисляемые границы ошибок и возможность настройки для получения требуемого уровня точности
- Устойчивость к потерям данных, содержащих результаты отбора (sampling results)
- Практическое отсутствие влияния на общую производительность сети, а также устройств обеспечивающих
как тарификацию, так и поставку первичных данных для нее.
(с) Сетевые решения, 2004-2005