Способ фильтрации части пакетов в сетевой сессии

Изобретение относится к области обработки сетевого трафика. Техническим результатом изобретения является обеспечение фильтрации пакетов для TCP/UDP-сессии в устройствах предварительной обработки. В способе на основе IP-адресов и TCP/UDP-портов принятого пакета рассчитывается HASH-сумма. В ячейке RAM-памяти, адрес которой равен полученной HASH-сумме, выполняется поиск информации об уже принятом пакете с такой же HASH-суммой, принадлежащего к той же сессии. По результатам сравнения счетчика принятых пакетов TCP-сессии и анализа наличия флагов SYN или FIN в TCP-заголовке, или времени, когда был принят последний пакет сессии, используемого для учета времени в UDP-сессиях, принимается решение о передаче пакета в выходной интерфейс или его удалении. 3 ил.

 

Область техники

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

Уровень техники

Известен способ динамической фильтрации пакетов с использованием отслеживания сессий патент JP 4162210 B2, H04L12/66, 24.12.2004, «Dynamic packet filter using session tracking», его недостатком является невозможность избирательной фильтрации пакетов сессии.

Техническим результатом предложенного изобретения является обеспечение передачи начальных и завершающих пакетов TCP/UDP-сессии и фильтрации остальных пакетов сессии.

Поставленный технический результат достигается тем, что предложен способ фильтрации части пакетов в сетевой сессии, заключающийся в динамической фильтрации пакетов с использованием отслеживания TCP/UDP-сессий, где пакет после приема передается в блок анализа пакета, в котором выполняется выделение из пакета IP и TCP/UDP-заголовков и формирование на их основе дескриптора, далее пакет сохраняется в пакетный буфер, а дескриптор – в буфер дескрипторов и затем передается в блок расчета HASH, в котором на основе полей заголовков пакета, включающих IP-адреса получателя и отправителя, TCP/UDP-порты получателя и отправителя, рассчитывается HASH-сумма по алгоритму счетчика с аутентификацией Галуа, в одной ячейке RAM-памяти содержатся записи с информацией о четырех сессиях для случаев, когда несколько TCP/UDP-сессий могут иметь одинаковое значение HASH-суммы, при этом указанная информация включает в себя IP-адрес получателя, IP-адрес отправителя, TCP/UDP-порт получателя, TCP/UDP-порт отправителя, время, когда был принят последний пакет сессии, счетчик количества принятых пакетов сессии, затем блок отслеживания сессий проверяет в ячейке RAM-памяти, адрес которой равен HASH-сумме, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы, об уже принятом пакете с такой же HASH-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора пакета, если информация совпадает и пакет не содержит флага SYN в TCP-заголовке, то считается, что пакет принадлежит к уже существующей сессии и выполняется инкремент (увеличение значения) счетчика количества принятых пакетов сессии и сравнение счетчика с настраиваемым значением, задающим порог, после которого пакеты сессии удаляются, если счетчик количества принятых пакетов сессии превысил порог и пакет не содержит флаг FIN в TCP-заголовке или время превысило установленное значение для UDP-сессий, то принимается решение об удалении пакета, которое передается в блок удаления пакетов, если информация совпадает, но в пакете присутствует флаг SYN в TCP-заголовке, то выполняется присвоение нового идентификатора сессии и в ячейку RAM-памяти заносится информация о текущем пакете, если информация не совпадает, то аналогичным образом проверяются остальные три записи, в случае отсутствия совпадений информации создается новая запись в ячейке RAM-памяти, после чего блок удаления пакетов при наличии решения об удалении выполняет операцию удаления пакета из пакетного буфера, в противном случае передает пакет в выходной интерфейс.

Пороговое значение количества пакетов TCP-сессии и пороговое значение времени UDP-сессии, после достижения которых пакеты сессии удаляются при соблюдении вышеуказанных условий, может записываться заранее оператором через несвязанный с сетью конфигурационный интерфейс, первоначально при настройке (инициализации) устройства и не меняются в течение всего времени его работы. Пороговое значение количества пакетов TCP-сессии находится в диапазоне от 1 до 63, пороговое значение времени UDP-сессии находится в диапазоне от 10 мс до 30 с. Пороговые значения задаются оператором в зависимости от характера сетевого трафика, организационных, эксплуатационных требований.

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

Эти и другие аспекты станут очевидными и будут объяснены со ссылками на чертеж и вариант осуществления, описанный в дальнейшем.

Изобретение поясняется следующими графическими материалами:

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

Фиг. 2 – схема, иллюстрирующая структуру дескриптора.

Фиг. 3 – схема, иллюстрирующая структуру хранения в памяти информации о сессиях.

Осуществление изобретения

Предложенный способ отслеживания сессий позволяет сохранять в памяти результат обработки пакетов и применять его для обработки последующих пакетов данной сессии. Сессия пакетов – набор пакетов, имеющих одинаковые адреса отправителя и получателя, порты отправителя и получателя и протокол (IP и TCP/UDP-заголовков). При этом формат IP-пакета более подробно описан в спецификации RFC 791 «Internet Protocol DARPA Internet Program Protocol Specification», сентябрь 1981. Протокол TCP описывается в спецификации RFC 793 «Transmission Control Protocol», сентябрь 1980, протокол UDP описан в спецификации RFC 768 «User Datagram Protocol», август 1980.

Флаг SYN обозначает начало соединения и синхронизирует порядковые номера. Первый отправленный пакет должен иметь установленным этот флаг.

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

Для достижения поставленного технического результата выполняются следующие операции:

Оператором на этапе инициализации устройства через несвязанный с сетью конфигурационный интерфейс задается пороговое значение количества пакетов TCP сессии и пороговое значение времени UDP сессии, после достижения которых пакеты сессии удаляются. Данные пороговые значения остаются неизменным до тех пор, пока не будут изменены оператором.

Прием пакета через входной интерфейс (101), после приема пакета выполняется анализ и выделение заголовков пакета. Для этого пакет передается в блок анализа пакета (102), в котором выполняется выделение из пакета IP и TCP/UDP-заголовков. Пакет сохраняется в пакетном буфере (103) до момента принятия решения о наборе действий, выполняемых над пакетом. На основе информации о пакете и его заголовков формируется дескриптор пакета, показанный на фиг.2, который сохраняется в отдельный буфер дескрипторов (104). Информация включает в себя IP-адрес получателя (201), IP-адрес отправителя (202), порт получателя (203), порт отправителя (204), время, когда был принят последний пакет сессии (205) и счетчик количества принятых пакетов сессии (206).

Дескриптор передается в блок расчета HASH (105), в котором на основе полей заголовков пакета (IP-адресов и TCP/UDP-портов получателя и отправителя) рассчитывается HASH-сумма по алгоритму счетчика с аутентификацией Галуа. Так можно выполнять побитовую логическую операцию «исключающее ИЛИ» (XOR) над соответствующими битами IP-адреса получателя (32 бит), IP-адреса отправителя (32 бит), порта получателя (16 бит), порта отправителя (16 бит) и отправлять результаты операции побитового «исключающее ИЛИ» (XOR) и генерировать HASH-сумму, имеющую Y-биты, где Y является положительным целым числом, например, для указанного примера 10 бит. В алгоритме счетчика с аутентификацией Галуа (GCM) входные блоки вектора байт нумеруются последовательно, номер блока кодируется блочным алгоритмом. Выход функции шифрования используется в операции XOR (исключающее ИЛИ) с открытым текстом для получения HASH-суммы. Схема представляет собой потоковый шифр, поэтому использование уникального вектора байт гарантирует получение уникальной HASH-суммы.

Для обработки в случае, когда несколько TCP/UDP-сессий имеют одинаковое значение HASH-суммы, в одной ячейке RAM-памяти (107) может содержатся запись с информацией о четырех сессиях. Информация включает в себя IP-адрес получателя (201), IP-адрес отправителя (202), порт получателя (203), порт отправителя (204), время, когда был принят последний пакет сессии (205), используемого для учета времени в UDP-сессиях, в случае превышения которого считается, что сессия закрыта, и счетчик количества принятых пакетов сессии (206). Установлено, что при хранении информации о четырех сессиях вероятность коллизии ничтожно мала. В одной ячейке RAM-памяти (107) содержатся записи с информацией о четырёх сессиях (HASH №1, HASH №2, HASH №3, HASH №4), где адрес ячейки равняется HASH-сумме, как показано на фиг.3. Таким образом, для разрешения коллизий, возникающих при отслеживании сессии с одинаковым значением HASH-суммы, наличие записей о четырех сессиях является необходимым и достаточным.

Блок отслеживания сессий (106) проверяет в ячейке RAM-памяти (107), адрес которой равен HASH-сумме, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы, об уже принятом пакете с такой же HASH-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора полученного пакета. Если информация совпадает и пакет не содержит флага SYN в TCP-заголовке, то считается, что пакет принадлежит к уже существующей сессии и выполняется инкремент счетчика количества принятых пакетов сессии (206) и сравнение счетчика с задаваемым оператором настраиваемым значением, задающим порог, после которого пакеты сессии удаляются. Если счетчик количества принятых пакетов сессии превысил порог и пакет не содержит флага FIN в TCP-заголовке или время превысило установленное значение для UDP-сессий, то принимается решение об удалении пакета, которое передается в блок удаления пакетов (108). Если информация совпадает, но в пакете присутствует флаг SYN в TCP-заголовке, то выполняется присвоение нового идентификатора сессии и в ячейку RAM-памяти (107) заносится информация о текущем пакете. Если информация не совпадает, то аналогичным образом проверяются остальные три записи. В случае отсутствия совпадений информации создается новая запись в ячейке RAM-памяти (107).

Блок удаления пакетов (108) при наличии решения об удалении выполняет операцию удаления пакета из пакетного буфера (103), если решение об удалении пакета не принято, то пакет передается в выходной интерфейс (109).

В предпочтительном варианте осуществления изобретения вышеуказанные логические блоки: блок анализа пакета (102), блок расчета HASH (105), блок отслеживания сессий (106), блок удаления пакетов (108), могут быть реализованы или выполнены на базе перепрограммируемой логической интегральной схемы (ПЛИС) или сверхбольшой интегральной схемы (СБИС). Блоки могут быть реализованы конечным автоматом и несколькими регистрами с соответствующей внутренней логикой и реализуется автоматически, например, из представленного XML-описания сетевого протокола, они управляются микрокодом, хранящимся в встроенной памяти. Специалисту очевидно, что вышеуказанные логические блоки, схемы обработки могут быть выполнены с помощью элемента памяти, который записывает обрабатываемые данные и процессора обработки, в качестве которых могут применяться процессор общего назначения, машиночитаемый носитель, конечный автомат или другое аппаратно-программируемое логическое устройство, дискретный логический элемент или транзисторная логика или любого их сочетания, чтобы выполнять описанные выше функции.

В качестве конфигурационного интерфейса для настройки, в зависимости от элементной базы, может быть использован стандартный цифровой интерфейс, например, PCIe, PCI, SPI и т.д.

Предложенный способ отслеживания сессий в сетевом трафике ориентирован на применение в устройствах на базе ПЛИС или СБИС, например, в брокерах сетевых пакетов (NPB), которые работают на уровне пакетов, где правила распределения и агрегации трафика в брокерах сетевых пакетов полностью определяются настройками. В NPB нет стандартов построения таблиц пересылки (MAC-таблиц) и протоколов обмена с другими коммутаторами (типа STP), а поэтому диапазон возможных пользовательских настроек и интерпретируемых полей в них гораздо шире. Брокер может равномерно распределить трафик из одного или нескольких входных портов на заданный диапазон выходных портов с функцией равномерной нагрузки по выходу. Также можно задать правила на копирование, фильтрацию, классификацию, дедупликацию и модификацию трафика к разным группам входных портов NPB, а также применять последовательно друг за другом в самом устройстве. ПЛИС или СБИС может быть запрограммирована для выполнения предложенного способа и размещена в любом месте компьютерной сети центра обработки данных или NPB.

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

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

Способ фильтрации части пакетов в сетевой сессии, заключающийся в динамической фильтрации пакетов с использованием отслеживания сессий, отличающийся тем, что принятый пакет передается в блок анализа пакета, в котором выполняется выделение из пакета IP и TCP/UDP-заголовков и формирование на их основе дескриптора, далее пакет сохраняется в пакетный буфер, а дескриптор в буфер дескрипторов, и затем передается в блок расчета HASH, в котором на основе полей заголовков пакета, включающих IP-адреса получателя и отправителя, TCP/UDP-порты получателя и отправителя, рассчитывается HASH-сумма по алгоритму счетчика с аутентификацией Галуа, при этом в одной ячейке RAM-памяти содержатся записи с информацией о четырех сессиях для случаев, когда несколько сессий могут иметь одинаковое значение HASH-суммы, при этом информация включает в себя IP-адрес получателя, IP-адрес отправителя, TCP/UDP-порты получателя и отправителя, время, когда был принят последний пакет сессии, счетчик количества принятых пакетов сессии, затем блок отслеживания сессий проверяет в ячейке RAM-памяти, адрес которой равен HASH-сумме, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы, об уже принятом пакете с такой же HASH-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора пакета, если информация совпадает и пакет не содержит флага SYN в TCP-заголовке, то считается, что пакет принадлежит к уже существующей сессии и выполняется увеличение значения счетчика количества принятых пакетов сессии и сравнение значения счетчика с настраиваемым значением, задающим порог, после которого пакеты сессии удаляются, если счетчик количества принятых пакетов сессии превысил порог и пакет не содержит флага FIN в TCP-заголовке или время превысило установленное значение для UDP-заголовков, то принимается решение об удалении пакета, которое передается в блок удаления пакетов, если информация совпадает, но в пакете присутствует флаг SYN в TCP-заголовке, то выполняется присвоение нового идентификатора сессии и в ячейку RAM-памяти заносится информация о текущем пакете, если информация не совпадает, то аналогичным образом проверяются остальные три записи, в случае отсутствия совпадений информации создается новая запись в ячейке RAM-памяти, после чего блок удаления пакетов при наличии решения об удалении выполняет операцию удаления пакета из пакетного буфера, в противном случае передает пакет в выходной интерфейс.



 

Похожие патенты:

Изобретение относится к способам высокоскоростной модификации сетевых пакетов в высоконагруженных сетях. Технический результат - повышение пропускной способности и производительности систем глубокого анализа сетевого трафика.

Изобретение относится к области управления потоком или управления перегрузкой каналов связи для трафика в реальном времени. Техническим результатом является обеспечение гарантированного обслуживания пульсирующего фрактального потока реального времени путем полного исключения отказов в обслуживании из-за занятости устройств обработки.

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

Изобретение относится к области сетевых информационных технологий. Технический результат заключается в повышении скорости передачи данных и помехоустойчивости радиосети группы робототехнических средств (РТС) в условиях воздействия дестабилизирующих факторов.

Изобретение относится к высвобождению N2 соединения, ассоциированного с устройством пользователя, UE. Технический результат – улучшение управления сеансом сети связи.

Изобретение относится к области связи. Технический результат заключается в улучшении управления сеансом сети связи.

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

Изобретение относится к вычислительной технике. Технический результат заключается в повышении результативности защиты вычислительных сетей.

Изобретение относится к способу определения состояний сетей цифровой радиосвязи. Техническим результатом изобретения является - оптимизация работы сетей и выявление деструктивных воздействий.

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

Изобретение относится к области сетей передачи данных. Техническим результатом является повышение производительности систем глубокого анализа сетевого трафика за счет снижения нагрузки путем исключения дублирующихся пакетов. Задаётся максимальное значение времени, в течение которого пакеты с одинаковым значением дескрипторов считаются дубликатами (LIMIT_T). Если в блоке поиска дубликатов определяется, что параметры анализируемого пакета из дескриптора не совпадают с параметрами из RAM-памяти, то происходит перезапись информации о пакете в RAM-память, и пакет передается в выходной интерфейс. Если в блоке поиска дубликатов определяется, что параметры анализируемого пакета из дескриптора совпадают с параметрами пакета из RAM-памяти, и разность времени ΔТ больше или равна заданному времени LIMIT_T, то происходит перезапись параметров пакета в RAM-памяти, и пакет передается в выходной интерфейс. Если в блоке поиска дубликатов определяется, что параметры анализируемого пакета из дескриптора совпадают с параметрами пакета из RAM-памяти, и разность времени ΔТ меньше заданного времени LIMIT_T, то пакет удаляется из пакетного буфера. 3 ил., 3 пр.
Наверх