Вряд ли можно представить мир современных сетевых технологий без DPI (deep packet inspection – глубокий анализ пакетов). На нём держатся системы обнаружения сетевых атак, львиная доля политик безопасности корпоративных сетей, шейпинг и блокировка пользовательского трафика оператором связи – да-да, чтобы выполнять требования Роскомнадзора, средства DPI обязан иметь каждый провайдер.
И всё-таки, при всей своей востребованности, DPI – затратный зверь. На магистральных линиях связи стоимость аппаратного решения (о софте тут речь идти не может) исчисляется миллионами зелёных американских человечков. А программные решения вроде OpenDPI подходят только для небольших корпоративных и кампусных сетей. Дело всё в том, что быстро определить протокол прикладного уровня по шаблону, коих могут быть тысячи — задача очень ресурсоёмкая.
В данной статье я хочу предложить способ эффективного решения одной из главных задач DPI – определения протокола прикладного уровня – при этом не сверяясь со списком широко известных портов (well-known ports) и не глядя в полезную нагрузку пакетов. Вообще.
Читать полностью »