Классификация трафика

Pause

Классифика́ция тра́фика — отнесение потоков данных в компьютерной сети к заранее заданным классам: приложениям, сервисам или видам нагрузки[1]. Оператору связи она позволяет управлять качеством обслуживания и шейпингом, службе безопасности — замечать нежелательные обмены и следы вредоносной активности, а инженеру — планировать ёмкость каналов по фактическому составу нагрузки[2].

За два десятилетия методы сменили три поколения: от сопоставления номеров портов к поиску сигнатур в содержимом пакетов, затем к статистическим и поведенческим признакам[3][4]. Развитие шифрования сделало содержимое пакетов недоступным для разбора, поэтому центральное место заняли методы машинного обучения, работающие по внешним свойствам потоков[5][6].

Классификаторы встраиваются во многие сетевые устройства: домашний маршрутизатор отличает телефонную нагрузку от загрузки обновлений, корпоративный шлюз ведёт учёт по приложениям, магистральное оборудование распределяет полосу между классами[2]. Задача стала одной из базовых в сетевой инженерии наряду с коммутацией и маршрутизацией[1].

Общие сведения
Что важно знать
Классификация трафика
Область использования компьютерные сети, машинное обучение
Ключевые слова машинное обучение, глубокая инспекция пакетов, качество обслуживания, классификация потоков
Базовые понятия сетевой трафик, качество обслуживания, глубокая инспекция пакетов, наивный байесовский классификатор

Понятие и задачи

Сетевой пакет сам по себе малоинформативен: чтобы понять, каким приложением он порождён, рассматривают поток — последовательность пакетов с общими адресами, портами и направлением[1]. Классификация присваивает каждому потоку или соединению метку класса: «веб», «телефония», «потоковое видео», «файловый обмен». Классов может быть несколько десятков, а границы между ними задаёт та задача, которая стоит перед оператором[2].

Управленческая задача — дифференциация обслуживания: телефонному трафику обеспечивают малую задержку, фоновой загрузке отводят остаточную полосу[7]. Защитная задача — обнаружение скрытых каналов и вредоносных программ по рисунку их обменов[8]. Коммерческая задача — тарификация и справедливое распределение полосы между абонентами[2].

Жизненный цикл пакета в управляемой сети выглядит так: классификатор определяет класс, маркировщик ставит метку в заголовок, очереди на выходных интерфейсах обслуживают классы по правилам оператора[7]. Ошибка классификации на первом шаге расходится на всю цепочку: пакет попадёт не в свою очередь и получит чужие гарантии, поэтому к первому решению требования выше, чем к остальным[7].

Классифицируют на трёх уровнях агрегации: отдельный пакет, поток и пользователь. Пакетная оценка нужна устройствам на пути данных, где решение принимается до пересылки; потоковая даёт лучший баланс точности и стоимости; пользовательская суммирует обмены абонента и служит основой тарификации[2]. Выбранная единица определяет и то, какие признаки вообще доступны классификатору: для пакета — заголовки и первые байты, для потока — вся статистика сеанса, для пользователя — поведение на всём периоде наблюдения[1].

Различают анализ в реальном времени и последующий разбор. На магистральных каналах решение должно приниматься за микросекунды, поэтому там применяют лёгкие методы с небольшим числом признаков; при постобработке допустимы тяжёлые модели и полный набор метрик потока[1]. От выбранного уровня зависит и точка размещения классификатора: на абонентском шлюзе виден весь трафик одного пользователя, на магистрали — агрегированный трафик множества абонентов, где метаданные (например, адреса) могут сохраняться[2].

Признаки классификации

Первая группа признаков живёт в заголовках: адреса и порты сторон, номера и флаги протоколов, размер окна, время жизни пакета[1]. Эти сведения обычно доступны и требуют минимальных вычислительных затрат, поэтому их применяют первыми; ограничение — предсказуемость: приложения могут указывать в заголовках значения, не соответствующие их реальному назначению, а доступность зависит от уровня инкапсуляции[3].

Вторая группа — содержимое пакета: строки протокола, порядок полей, длина полезной нагрузки. Признаки самые точные, но требуют полного доступа к данным и перестают существовать при шифровании[2].

Третья группа — статистика потока: средние и крайние размеры пакетов, интервалы, доли направлений, длительность сеанса. Четвёртая — поведение узла и связь потоков между собой[4]. Эти две группы сохраняются при шифровании, и на них строятся современные классификаторы[8]. На практике признаки комбинируют: как правило, более сложные методы требуют больших вычислительных затрат и могут повышать точность при определённых условиях, и задача инженера — найти достаточный минимум[1].

undefined

История

В 1990-е годы задача казалась простой: приложения регистрировали порты в реестре IANA, и номер порта использовали как признак предполагаемого сервиса[9]. Развитие одноранговых сетей в начале 2000-х нарушило это соответствие: обмен файлами уходил на случайные порты, а новые сервисы прятались за номером 80, чтобы пройти через любой межсетевой экран[3].

Ответом стали сигнатурные методы: в 2004 году группа Сена показала, что одноранговые протоколы узнаются по характерным строкам в начале сеанса, и предложила автоматический поиск таких признаков[3]. В 2005 году фронт работ сдвинулся дальше: метод ACAS строил сигнатуры по обучающим выборкам без ручного труда, а система BLINC впервые опиралась на поведение узлов, а не на содержимое пакетов[10][4].

В 2005 году Мур и Зуев исследовали наивную байесовскую классификацию трафика. Использовались 248 признаков потока и десять категорий; после усовершенствований базового метода точность классификации потоков на исследованных данных превысила 95 %[11]. Через год кластерные методы показали, что похожие потоки группируются и без размеченных примеров[12]. Обзор 2008 года свёл разрозненные работы в единую методологию машинного обучения для сетей[1].

Развитию статистических методов помогли открытые наборы данных: группа Мура опубликовала наборы размеченных признаков потоков в формате Weka, пригодные для обучения и сравнения классификаторов[13]. Записи снабжали исследователей материалом, пока не устарело поведение приложений, а вопрос обновления выборок остаётся частью каждой новой работы[1].

В 2010-е годы массовое шифрование обесценило сигнатуры, и исследования сместились к признакам, сохраняющимся в шифрованных потоках: размерам, таймингам, рисунку соединений[5]. Работы второй половины десятилетия показали, что и вредоносный трафик в защищённых каналах отделяется машинным обучением по таким признакам[8].

Общая закономерность этой истории: каждое поколение методов было ответом на новое поколение приложений. Одноранговые сети сломали портовую классификацию, мессенджеры со случайной схемой обмена обесценили сигнатуры, массовое шифрование закрыло анализ содержимого[5]. Каждый сдвиг расширял предмет: от распознавания протокола к пониманию назначения трафика[1].

Классификация по портам

Ранний подход опирался на реестр назначений: приёмник знает, что веб отвечает на порт 80, почта — на порт 25, и относит соединение к сервису по номеру[9]. Метод почти не требует вычислений, одинаково работает на любом оборудовании и до сих пор служит первым фильтром в коммерческих устройствах[2].

Реестр назначений при этом продолжает пополняться и остаётся нормативным справочником: новые протоколы по-прежнему регистрируют порты, а служебные сервисы — почта, доменные запросы, время — стабильно живут на зарезервированных номерах[9]. Поэтому современные классификаторы начинают с проверки порта и подключают более дорогие методы только к нераспознанным потокам[2].

К началу 2000-х соответствие портов сервисам разрушилось. Одноранговые приложения стали выбирать порты случайно, веб-приложения переехали на порт 80, а частные сервисы — на «легальные» номера[3]. Измерения середины 2000-х показали, что по портам корректно определяется меньшинство трафика, поэтому метод сохранился лишь как вспомогательный признак в сочетании с другими[2].

Настройка портовой классификации сводится к спискам правил: диапазон портов соответствует классу, и правила проверяются по таблицам, что обычно обеспечивает высокую скорость обработки, хотя аппаратная реализация за постоянное время не гарантирована для всех устройств[9]. Этим объясняется живучесть подхода: он не нагружает процессор и предсказуем в работе, а его ошибки известны заранее — неверное имя сервиса вместо отсутствия решения[2].

undefined

Глубокая инспекция пакетов

Второе поколение методов смотрит внутрь пакета: глубокая инспекция пакетов сопоставляет полезную нагрузку с сигнатурами — характерными строками протокола[3]. Так различают обмен файлами, мессенджеры и потоковое видео даже при нестандартных портах. Сигнатуры строят вручную по спецификациям протоколов или автоматически, сравнивая множество известных обменов[10].

Размещают инспекцию по-разному: на границе оператора — для управления всей нагрузкой абонентов, на границе предприятия — для контроля корпоративных каналов, внутри облака — для защиты сервисов[2]. Чем выше скорость канала, тем дороже полный просмотр, поэтому на магистралях инспекцию применяют выборочно — к первым пакетам сеанса, где обычно хватает служебных сообщений для определения протокола[3].

Для протоколов с вариативным синтаксисом сигнатуры записывают регулярными выражениями, а их проверка ложится на процессор, поэтому производительность становится главным ограничением метода на магистральных скоростях[2]. Шифрование ограничивает поиск сигнатур в защищённой полезной нагрузке. При этом доступные метаданные и незашифрованные части обмена могут использоваться для распознавания протоколов; такой анализ поддерживает, например, nDPI.[14]

Первые шифрованные протоколы приходилось распознавать косвенно. Телефония Skype перемешивала пакеты случайной схемой, и группа Бонфильо показала, что такой трафик надёжнее узнаётся по таймингам и размерам, чем по содержимому[15]. Этот результат стал наглядным переходом от сигнатур к статистике.

Сигнатурный разбор чувствителен к версиям протоколов: обновление приложения меняет строки приветствия, и база сигнатур требует сопровождения вместе с каждым релизом[10]. Автоматические методы построения сигнатур сократили эту работу, сравнивая множество сеансов одного приложения и выискивая устойчивые фрагменты[10].

undefined

Статистические методы

Третье поколение рассматривает поток как объект с измеримыми свойствами: длительностью, размерами пакетов, интервалами между ними, соотношением направлений[1]. Один из обобщённых признаков — энтропия распределения размеров пакетов:

где — доля пакетов -го размера в потоке; разные типы трафика могут давать различные значения энтропии, что используется как один из признаков для различения классов, хотя надёжность зависит от конкретных условий и настроек приложений[1].

По набору признаков поток относят к классу обученным решающим правилом. Мур и Зуев исследовали наивный байесовский классификатор и влияние отбора признаков и оценки их распределений на точность распознавания категорий трафика.[11] Кластерные методы группируют похожие потоки без заранее размеченных примеров и находят в трафике неизвестные группы приложений, которые затем подписывает эксперт[12]. Комбинированные схемы объединяют оба пути: часть классов узнаётся по правилам, остальные отдаются статистике[2].

Обучение требует примеров, а примеры стареют: приложения меняют поведение, и модель приходится переобучать[1]. Обзор Нгуена и Армитажа систематизировал этот цикл — сбор образцов, отбор признаков, обучение, проверку и обновление — и стал стандартной отправной точкой исследований[1]. Практические проверки алгоритмов классификации в реальном времени показывают, что точность сильно зависит от настройки параметров моделей: правильно настроенные ансамблевые методы дают заметный прирост качества[16].

Различают обучение с учителем и без него. В первом случае нужна разметка: эталонные записи трафика с известными приложениями, которую готовят вручную или получают на тестовых стендах[11]. Во втором система сама находит группы похожих потоков, а человек подписывает уже готовые кластеры[12]. Практичные схемы сочетают оба пути и дообучают модель по мере появления нераспознанных потоков[2]. Промежуточное место занимает полуобучение: модель работает с немногими размеченными и множеством неразмеченных потоков, экономя дорогую ручную разметку[17]. Сравнение подходов на записях университетской сети показало, что машинное обучение устойчивее сигнатур к изменениям поведения приложений[18].

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

Набор признаков подбирают под шифрованную среду: заметную долю сигнатуры дают метаданные установления соединений — размеры и порядок первых сообщений, наборы расширений, длины полей, — которые приложение меняет редко[8]. Остальные признаки берут из временного рисунка сеанса: интервалы и чередование направлений сохраняют отпечаток приложения даже без доступа к содержимому[15].

undefined

Поведенческие методы

Поведенческий подход смотрит не на отдельный поток, а на общение узла с сетью: сколько связей он открывает, на каких уровнях действует, как чередует роли клиента и сервера[4]. Система BLINC по таким портретам различала обмен файлами, игры и телефонию без доступа к содержимому пакетов[4].

Портрет узла складывается из простых наблюдений: с какими портами он работает, выступает ли чаще клиентом или сервером, сколько и на какие адреса открывает соединений, какие размеры пакетов чередует[4]. Серверы и клиенты одного приложения выглядят по-разному, поэтому BLINC оценивала поведение на нескольких уровнях одновременно — от отдельных пакетов до социальных связей узла[4].

Метод устойчив к шифрованию и портовой случайности, поскольку не заглядывает внутрь пакетов[2]. Его слабые стороны — потребность в наблюдении за узлом в течение достаточного времени и трудность разделять приложения с похожим поведением[2].

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

undefined

Применение

В управлении сетью классификация — первый шаг любой дифференциации: маркировка классов, очереди и приоритеты строятся по её результатам[7]. Операторы ограничивают скорость для объёмных классов и удерживают задержку для интерактивных, а администраторы предприятий учитывают состав нагрузки при планировании ёмкости[19].

В защите информации классификатор подсказывает, где искать угрозу. Вредоносные обмены выдают себя рисунком соединений даже внутри шифрованных каналов, и такие признаки вошли в промышленные средства анализа трафика[8]. Контекстные признаки — сведения о том, с кем и как узел общался прежде, — позволяют распознавать вредоносные потоки и без разметки каждого отдельного сеанса[20]. Классификация также питает системы обнаружения вторжений данными о том, какие приложения вообще присутствуют в сети[2].

В корпоративных сетях классификация служит и инвентаризации: администратор узнаёт, какие приложения реально работают в организации, включая несанкционированные сервисы, обходящие официальные каналы[2]. В облаках та же задача встаёт между арендаторами — классификаторы помогают разделить чужие потоки и подтвердить, что каждая служба получает согласованную долю полосы[7].

Ограничения и проблемы

Главный вызов — шифрование трафика. В QUIC защищены полезная нагрузка и отдельные поля заголовка, что ограничивает набор доступных пассивному наблюдателю признаков.[21] Классификаторы отвечают переходом на признаки, не затронутые шифрованием: размеры, тайминги, рисунок установления соединений[8].

Вторая проблема — состязательность. Авторы приложений сознательно маскируют трафик под разрешённые классы, точность моделей падает быстрее, чем их успевают переобучать, и между методами защиты и методами обхода разворачивается устойчивая гонка[5].

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

Отдельная трудность — воспроизводимость исследований. Модели, обученные на трафике десятилетней давности, показывают высокую точность только на тех же записях, а перенос на свежую сеть снижает результат заметно[5]. Сравнения осложняются и дисбалансом классов: несколько популярных приложений дают основную массу потоков, и редкий класс легко «потерять» в общей точности[1].

Третья проблема — приватность. Глубокая инспекция и детальные профили поведения узлов дают оператору избыточные сведения об абонентах, поэтому применение методов регулируется законами о связи и правилами сетевого нейтралитета, которые в ряде юрисдикций ограничивают выборочное замедление или блокировку отдельных классов трафика[5].

Классы используются и в коммерческих механизмах: тарифные планы с разной скоростью для разных сервисов, фильтры родительского контроля, корпоративные запреты на отдельные типы нагрузки[2]. Исследовательские центры применяют классификацию для изучения состава интернет-нагрузки и её эволюции[19].

Состав нагрузки меняется быстро, и долгосрочные измерения дают материал для планирования: доли потокового видео, телефонии и файлового обмена в разные годы различаются в разы, и оператор строит развитие сети на этих оценках[19]. Без классификации учёт остаётся безликим счётчиком байтов, который не отвечает на вопрос, что именно переносила сеть[2].

Инструменты и стандарты

Учёт потоков стандартизован протоколами NetFlow и IPFIX: устройства экспортируют записи о потоках с признаками, пригодными для классификации[22]. Такие записи служат и входом статистических моделей, и материалом для последующего анализа[1].

Исследовательская платформа TIE объединила несколько механизмов классификации в одном конвейере и позволила сравнивать их на одном потоке данных[23]. Для исследователей важна и обратная сторона открытости: инструменты и наборы данных в открытом доступе дают возможность повторить эксперимент и проверить заявленную точность[19].

Открытая библиотека nDPI реализует сигнатурный и статистический разбор сотен протоколов и применяется в шлюзах и средствах мониторинга[14]. Анализатор Wireshark определяет приложения при ручном разборе файлов захвата и служит эталоном при разметке обучающих выборок[24].

Архитектура дифференцированного обслуживания связывает результаты классификации с политиками очередей: метка DSCP используется для выбора поведения пересылки в домене DiffServ; на границах доменов она может изменяться в соответствии с политиками и соглашениями.[7] Реестр портов при этом остаётся общим справочником начального уровня для любого классификатора[9].

Транспорт QUIC описан в RFC 9000[25]. Защита пакетов и отдельных полей заголовка определена в RFC 9001: скрываются номер пакета и часть битов первого байта, но не весь заголовок. Пакеты Initial не защищены секретным ключом[21].

Связь с другими понятиями

От простой фильтрации пакетов классификация отличается назначением: фильтр решает, пропускать ли пакет, классификатор отвечает на вопрос, что это за поток, а решение принимает следующая по ходу система — межсетевой экран, планировщик или система учёта[7]. От маршрутизации её отличает предмет: маршрутизация выбирает путь для пакета, классификация — метку для потока, и обе процедуры часто соседствуют в одном устройстве[2].

Ближе всего понятие к статистической классификации в машинном обучении: сетевая задача — частный случай общей, отличающийся признаками и жёсткими ограничениями по времени[1]. Не путать классификацию трафика с анализом трафика в разведывательном смысле: тот отвечает на вопрос, кто с кем и когда общается, а не какие приложения порождают потоки[4].

С ограничением скорости и шейпингом классификацию связывает порядок действий: сначала поток узнаётся, затем к нему применяется политика, и без первого шага вторая остаётся слепой регуляцией байтов[7].

Примечания

  1. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nguyen T. T., Armitage G. A survey of techniques for internet traffic classification using machine learning // IEEE Communications Surveys & Tutorials. — 2008. — Т. 10, № 4. — С. 56—76. — doi:10.1109/SURV.2008.080406.
  2. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Callado A., Kamienski C., Szabo G. и др. A survey on internet traffic identification // IEEE Communications Surveys & Tutorials. — 2009. — Т. 11, № 3. — С. 37—52. — doi:10.1109/SURV.2009.090304.
  3. ↑ 1 2 3 4 5 6 7 Sen S., Spatscheck O., Wang D. Accurate, scalable in-network identification of p2p traffic using application signatures // Proceedings of the 13th international conference on World Wide Web. — 2004. — С. 512—521. — doi:10.1145/988672.988742.
  4. ↑ 1 2 3 4 5 6 7 8 Karagiannis T., Papagiannaki K., Faloutsos M. BLINC: multilevel traffic classification in the dark // Proceedings of the 2005 conference on Applications, technologies, architectures, and protocols for computer communications. — 2005. — С. 229—240. — doi:10.1145/1080091.1080119.
  5. ↑ 1 2 3 4 5 6 Dainotti A., Pescape A., Claffy K. C. Issues and future directions in traffic classification // IEEE Network. — 2012. — Т. 26, № 1. — С. 35—40. — doi:10.1109/MNET.2012.6135854.
  6. ↑ Гетьман А. И., Иконникова М. К. Обзор методов классификации сетевого трафика с использованием машинного обучения // Труды ИСП РАН. — 2020. — Т. 32, № 6. — С. 137—154. — doi:10.15514/ISPRAS-2020-32(6)-11.
  7. ↑ 1 2 3 4 5 6 7 8 RFC 2475: An Architecture for Differentiated Services (англ.). RFC Editor. IETF (1998).
  8. ↑ 1 2 3 4 5 6 Anderson B., McGrew D. Machine learning for encrypted malware traffic classification // Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. — 2017. — С. 1723—1732. — doi:10.1145/3097983.3098163.
  9. ↑ 1 2 3 4 5 Service Name and Transport Protocol Port Number Registry (англ.). IANA. IANA (2026).
  10. ↑ 1 2 3 4 Haffner P., Sen S., Spatscheck O., Wang D. ACAS: automated construction of application signatures // Proceedings of the 2005 ACM SIGCOMM workshop on Mining network data. — 2005. — С. 197. — doi:10.1145/1080173.1080183.
  11. ↑ 1 2 3 4 Moore A. W., Zuev D. Internet traffic classification using bayesian analysis techniques // Proceedings of the 2005 ACM SIGMETRICS international conference on Measurement and modeling of computer systems. — 2005. — С. 50—60. — doi:10.1145/1064212.1064220.
  12. ↑ 1 2 3 Erman J., Arlitt M., Mahanti A. Traffic classification using clustering algorithms // Proceedings of the 2006 SIGCOMM workshop on Mining network data. — 2006. — С. 281—286. — doi:10.1145/1162678.1162679.
  13. ↑ Internet Traffic Classification Using Bayesian Analysis Techniques: Data (англ.). University of Cambridge. Дата обращения: 2 октября 2026.
  14. ↑ 1 2 nDPI — Deep Packet Inspection (DPI) Toolkit (англ.). ntop. ntop (2026).
  15. ↑ 1 2 Bonfiglio D., Mellia M., Meo M., Rossi D., Tofanelli D. Revealing Skype traffic: when randomness plays with you // Proceedings of the 2007 conference on Applications, technologies, architectures, and protocols for computer communications. — 2007. — С. 37—48. — doi:10.1145/1282380.1282386.
  16. ↑ Краснова И. А. Анализ влияния параметров алгоритмов Machine Learning на результаты классификации трафика в режиме реального времени // T-Comm. — 2021. — Т. 15, № 9.
  17. ↑ Erman J., Mahanti A., Arlitt M., Cohen I., Williamson C. Offline/realtime traffic classification using semi-supervised learning // Performance Evaluation. — 2007. — Т. 64. — С. 1194—1213. — doi:10.1016/j.peva.2007.06.014.
  18. ↑ Erman J., Mahanti A., Arlitt M. Internet traffic identification using machine learning // IEEE Globecom 2006. — 2006. — С. 1—6. — doi:10.1109/glocom.2006.443.
  19. ↑ 1 2 3 4 CAIDA — Center for Applied Internet Data Analysis (англ.). CAIDA. UC San Diego (2026).
  20. ↑ Anderson B., McGrew D. Identifying encrypted malware traffic with contextual flow data // Proceedings of the 2016 ACM Workshop on Artificial Intelligence and Security. — 2016. — С. 35—46. — doi:10.1145/2996758.2996768.
  21. ↑ 1 2 RFC 9001: Using TLS to Secure QUIC (англ.). Дата обращения: 2 октября 2026.
  22. ↑ RFC 7011: Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information (англ.). RFC Editor. IETF (2013).
  23. ↑ De Donato G., Botta A., Pescape A., Ventre G. Traffic identification engine: an open platform for traffic classification (англ.) // IEEE Network. — 2014. — Vol. 28, no. 2. — P. 56—64. — doi:10.1109/MNET.2014.6786614.
  24. ↑ Wireshark — Network Protocol Analyzer (англ.). Wireshark. Wireshark Foundation (2026).
  25. ↑ RFC 9000: QUIC — A UDP-Based Multiplexed and Secure Transport (англ.). RFC Editor. IETF (2021).

Литература

Дополнительно по теме

Pause