Классификация трафика
Классификация трафика — это автоматизированный процесс, который сортирует трафик компьютерных сетей по различным параметрам (например, по номеру порта или протоколу) в отдельные классы трафика[1]. Каждый получившийся класс трафика может обрабатываться по-разному для предоставления различного качества обслуживания отправителю или получателю данных.
Типовые применения
Пакеты классифицируются для последующей разной обработки сетевым планировщиком. После идентификации потока трафика с помощью определённого протокола к нему и другим потокам может применяться заранее заданная политика — например, для гарантии определённого качества (как в случае VoIP или потоковых мультимедийных сервисов[2]) либо с целью организации доставки по принципу «лучшее усилие». Это может осуществляться на точке входа в сеть (обычно это пограничное устройство) с такой детализацией, которая позволяет механизмам управления трафиком разделять потоки и по-разному их ставить в очередь, полицейлить и формировать[3].
Методы классификации
Классификация достигается различными способами.
- Быстрая
- Требует мало ресурсов
- Поддерживается многими сетевыми устройствами
- Не анализирует данные на уровне приложений, не затрагивает приватность пользователей
- Применима только к приложениям и сервисам, использующим фиксированные номера портов
- Легко обмануть, изменив порт в системе
- Анализирует содержимое пакета
- Позволяет выявлять приложения и сервисы независимо от используемого порта
- Медленный
- Требует больших вычислительных ресурсов
- Сигнатуры должны регулярно обновляться, так как приложения быстро меняются
- Использование шифрования часто делает этот способ невозможным
Сопоставление битовых шаблонов данных со структурой известных протоколов является простым и широко применяемым приёмом. Например, для определения фазы рукопожатия (handshake) протокола BitTorrent анализируется, начинается ли пакет с символа 19, за которым следует 19-байтовая строка «BitTorrent protocol»[4].
Сравнение различных классификаторов сетевого трафика, основанных на глубоком анализе пакетов (PACE, OpenDPI, четыре различных конфигурации L7-filter, NDPI, Libprotoident, Cisco NBAR), представлено в независимом исследовании DPI-инструментов[5].
- Основывается на статистическом анализе характеристик, таких как частоты байтов, размеры пакетов и интервалы между ними[6]
- Часто применяется машинное обучение: K-средних, наивный байесовский классификатор, C4.5, C5.0, J48, случайный лес
- Быстрее (в сравнении с классификацией на основе глубокого анализа пакетов)
- Может выявлять классы ранее неизвестных приложений
Классификация зашифрованного трафика
Сегодняшний трафик становится более сложным и защищённым, поэтому необходимы методы классификации зашифрованного трафика, отличающиеся от классических подходов (основанных на анализе IP-трафика с помощью проб в ядре сети). Один из способов — использование дескрипторов трафика, полученных из следов соединений на радиоинтерфейсе[7].
Такая проблема наблюдается и при классификации мультимедийного трафика. Доказано, что методы, основанные на нейронных сетях, опорных векторах, статистике, методе ближайших соседей, хорошо подходят для этих целей; однако в конкретных случаях одни методы эффективнее других. Например, нейронные сети лучше работают, если анализируется весь набор наблюдений[8].
Реализация
Планировщик сети Linux и Netfilter содержат логику для идентификации, маркировки и классификации сетевых пакетов.
Типичные классы трафика
Операторы часто выделяют две основные категории сетевого трафика: чувствительный ко времени и по принципу «лучшее усилие»[9].
Это трафик, для которого оператор сети ожидает своевременной доставки. К нему относятся VoIP, онлайн-игры, видеоконференция, а также веб-сёрфинг. Для подобных применений механизмы управления трафиком гарантируют или, как минимум, приоритезируют качество обслуживания, по сравнению с другими категориями трафика. Это достигается либо отсутствием шэйпинга для данного класса, либо приоритетом чувствительного трафика над прочим.
В эту категорию попадают остальные типы трафика, которые, по мнению интернет-провайдера, не чувствительны к параметрам качества обслуживания (джиттер, потери пакетов, задержки). Обычно сюда относят P2P-приложения и электронную почту. Управление трафиком обычно организовано так, что трафик «лучшее усилие» получает пропускную способность, оставшуюся после обслуживания чувствительного трафика.
Файлообмен
Приложения однорангового обмена файлами нередко используют всю доступную полосу пропускания, что влияет на приложения, чувствительные к QoS (например, онлайн-игры), использующие сравнительно узкий канал. P2P-программы также могут страдать от неэффективных стратегий скачивания — например, загрузки файлов от любых доступных пиров, независимо от стоимости канала. Такие приложения используют ICMP и обычный HTTP для обнаружения серверов и загрузки каталогов файлов.
В 2002 году компания Sandvine определила по результатам анализа, что на P2P-трафик приходится до 60 % трафика в большинстве сетей[10]. Это доказывает, что P2P стал мейнстримом, в отличие от прежних прогнозов и исследований.
P2P-протоколы часто проектируются так, чтобы пакеты было сложнее идентифицировать (во избежание обнаружения классификаторами трафика), и достаточно устойчивыми, чтобы не зависеть от определённых QoS-параметров в сети (доставка в порядке, джиттер и пр. обычно компенсируются увеличением буферизации, отчего пользователь просто дольше ждёт скачивания). Например, зашифрованный BitTorrent полагается на обфускацию и рандомизацию размеров пакетов для обхода идентификации[11]. Файлообменный трафик обычно классифицируется как трафик по принципу «лучшее усилие». В периоды пиковых нагрузок скорость загрузки может снижаться; однако скачивание файлов P2P часто осуществляется в фоновом режиме, поэтому это мало влияет на пользовательский опыт — при условии, что в нерабочие часы скорость повышается до максимально возможной. Исключение составляют P2P-сервисы VoIP и потокового видео с высокими требованиями к QoS, которые используют значительный оверхед и трафик избыточности для обеспечения качества.
Некоторые P2P-приложения[12] можно настроить как самоограничивающиеся источники трафика, то есть в выступающие в роли трафик-шейпера по правилам, заданным пользователем.
Некоторые производители устройств отстаивают подход управления клиентами, а не протоколами, особенно для интернет-провайдеров. В этом случае, если конкретный клиент решает использовать выделенную ему долю для P2P-приложений, он может это делать, но в случае злоупотреблений ограничивается только его собственная полоса, не влияя на других пользователей.