Способ высокоскоростного удаления поля данных при пакетной коммутации Российский патент 2023 года по МПК H04L47/431 

Описание патента на изобретение RU2790617C1

Изобретение относится к области построения систем мониторинга и анализа сетей передачи данных, а именно к методам высокоскоростной модификации сетевых пакетов в высоконагруженных сетях и может быть использовано в устройствах предварительной обработки данных для систем глубокого анализа сетевого трафика, в частности, в составе сетевых коммутаторов стандарта Ethernet или брокерах сетевых пакетов, поддерживающих стек протоколов TCP/IP. Заявляемый способ направлен на повышение производительности устройств предварительной обработки сетевого трафика и может быть применен в устройствах на базе ПЛИС (программируемая логическая интегральная схема) или СБИС (сверхбольшая интегральная схема).

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

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

В существующих устройствах обработки трафика на процессорах, функционирующих под управлением операционных систем, обработка пакета включает последовательность следующих операций: чтения, модификации и записи данных. Данные из сетевого интерфейса посредством драйвера сначала загружаются в системную память, которая обычно реализуется на основе DRAM (dynamic random access memory — динамическая память с произвольным доступом), где они последовательно обрабатываются центральным процессором, и, по завершению обработки, перегружаются в память сетевого интерфейса, откуда далее передаются потребителю. При этом в известных ранее устройствах обработки трафика на процессорах присутствует значительная временная задержка, связанная с ограниченной пропускной способностью системной памяти, и в результате не обеспечивается пропускная способность, достаточная для передачи требуемых объемов сетевого трафика (предельно достижимая величина пропускной способности для таких коммутаторов составляет не более
40 Гбит/с).

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

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

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

Наиболее близким аналогом к предложенному способу высокоскоростного удаления поля данных при пакетной коммутации является способ, описанный в патенте на изобретение JP4162210B2 (кл. H04L 12/66, 08.10.2008). Известный способ заключается в приеме входного потока пакетов через входной интерфейс, передачу его в блок анализа пакета, в котором выполняется анализ содержимого пакета и выделение Ethernet-заголовка, IP-заголовка, поля данных и определение их размеров, после чего размеры заголовков, поля данных и всего пакета сохраняются в буфер дескрипторов, а пакет сохраняется в пакетный буфер.

Недостатком наиболее близкого аналога является меньшая производительность (до 40 Гб/с) по сравнению с реализацией описываемого метода на ПЛИС или СБИС (до 1,5 Тб/с), реализованного на базе брокера
DS Integrity).

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

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

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

согласно предложенному изобретению

из буфера дескрипторов дескрипторы передаются в блок удаления поля данных, в котором пересчитывается размер пакета без поля данных и записывается полученное значение в буфере дескрипторов,

при чтении пакета из пакетного буфера используется информация о размере пакета из его дескриптора,

если в блоке анализа пакета определяется, что в пакете нет IP-заголовка, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным размеру Ethernet-заголовка,

если в блоке анализа пакета определяется, что в пакете есть IP-заголовок, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным сумме размеров Ethernet-заголовка и IP-заголовка,

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

если размер пакета больше или равен минимальному заданному размеру в 60 байт, то пакет сразу передаётся в блок корректировки FCS,

при этом в блоке корректировки FCS выполняется пересчет контрольной суммы, и 4 байта контрольной суммы добавляются к пакету, после чего он передаётся в выходной интерфейс.

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

фиг. 1 блок-схема высокоскоростного удаления поля данных при пакетной коммутации;

фиг. 2.1 – схема, иллюстрирующая пакет до удаления поля данных;

фиг. 2.2 – схема, иллюстрирующая пакет после удаления поля данных;

фиг. 3 – блок-схема алгоритма высокоскоростного удаления поля данных при пакетной коммутации.

фиг. 4 – схема, иллюстрирующая пример удаления поля данных:

а) для случая, если размер пакета Nfilt≥60 байт, где Nfilt – размер передаваемого пакета;

б) для случая, если размер пакета Nfilt<60 байт.

Система высокоскоростного удаления поля данных при пакетной коммутации содержит (фиг. 1) входной интерфейс (101), блок анализа пакета (102), пакетный буфер (103), буфер дескрипторов (104), блок удаления поля данных (105), блок дополнения (106), блок корректировки FCS (107), выходной интерфейс (108).

Входной интерфейс (101) выполняет прием сетевого пакета, проверку на соответствие требованием протокола Ethernet.

Блок анализа пакета (102) – блок, который выполняет выделение из сетевых заголовков принятого пакета Ethernet-заголовков и IP-заголовков, и формирование на их основе дескриптора.

Пакетный буфер (103) – блок хранения, в котором на время обработки дескриптора пакета сохраняется весь пакет.

Буфер дескрипторов (104) – временное хранилище, где хранятся дескрипторы на время ожидания обработки.

Блок удаления поля данных (105) – блок, в котором пересчитывается размер пакета без поля данных и записывается полученное значение в буфере дескрипторов (104).

Блок дополнения (106) – блок, в котором осуществляется дополнение поля данных до минимально необходимой величины, если это необходимо, что бы минимальные размер пакета после обработки соответствовал требованиям стандарта 802.3 (64 байта). Блок (106) является стандартным устройством, реализованном в сетевых коммутаторах, функционирующих в соответствии со стандартом IEEE 802.3.

Блок корректировки FCS (107) – блок дополнения контрольной последовательностью, являющийся стандартным устройством, реализованном в сетевых коммутаторах, функционирующих в соответствии со стандартом IEEE 802.3. FCS (Frame check sequence – «последовательность проверки кадра»). FCS— четырёхбайтное значение CRC (Cyclic redundancy check – «Циклический избыточный код»), используемое для выявления ошибок передачи данных. Вычисляется отправляющей стороной и помещается в поле FCS. Принимающая сторона вычисляет данное значение самостоятельно и сравнивает с полученным по алгоритму CRC-32-IEEE 802.3.

CRC – алгоритм нахождения контрольной суммы, предназначенный для проверки целостности данных. CRC является практическим приложением помехоустойчивого кодирования, основанным на определённых математических свойствах циклического кода.

Выходной интерфейс (108) – выполняет передачу сетевого пакета в сеть.

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

Минимально возможное количество байт Nmin, доставляемое получателю в составе одного пакета, определяется стандартом сетевого протокола, например, IEEE 802.3, в соответствии с которым оно может быть равно 60 байтам.

Заявленный способ высокоскоростного удаления поля данных при пакетной коммутации осуществляется следующим образом.

Входной поток пакетов (фиг. 1) принимается последовательно через входной интерфейс (101), включающий функции преобразования из электрического сигнала в набор последовательных цифровых значений и выполняющий проверку на соответствие требованием протокола Ethernet. Затем пакеты передаются в блок анализа пакета (102), в котором выполняется анализ содержимого пакета и выделение Ethernet-заголовка (203), IP-заголовка (204), поля данных (205) и определение их размеров
(фиг. 2.1). Блок анализирует пакет (определяет размер заголовка, протокол, и, в зависимости от вида протокола, определяет длину заголовка пакета). Затем происходит формирование дескриптора, включающего в себя размеры заголовков, поля данных и всего пакета, при этом дескриптор сохраняется в буфер дескрипторов (104), а пакет сохраняется в пакетный буфер (103).

Из буфера дескрипторов (104) дескрипторы передаются в блок удаления поля данных (105), в котором пересчитывается размер пакета без поля данных и записывается полученное значение в буфере дескрипторов (104). При чтении пакета из пакетного буфера используется информация о размере пакета из его дескриптора,

если в блоке анализа пакета (102) определяется, что в пакете нет IP-заголовка (фиг.3), то в блоке удаления поля данных (105) размер пакета в дескрипторе устанавливается равным размеру Ethernet-заголовка,

если в блоке анализа пакета (102) определяется, что в пакете есть IP-заголовок, то в блоке удаления поля данных (105) размер пакета в дескрипторе устанавливается равным сумме размеров Ethernet-заголовка и IP-заголовка,

если в результате удаления поля данных из передаваемого пакета размер пакета Nfilt стал меньше минимально заданного размера Nmin в 60 байт, доставляемого получателю в составе одного пакета, то в блоке дополнения (106) выполняется дополнение пакета нулевыми байтами до 60 байт и выполняется передача его в блок корректировки FCS (107).

Nfilt – размер передаваемого пакета.

Nmin – минимально возможное количество байт, доставляемое получателю в составе одного пакета, определяемое стандартом сетевого протокола IEEE 802.3.

Если размер пакета Nfilt больше или равен минимально заданного размера Nmin в 60 байт (фиг.2.2), то пакет сразу передаётся в блок корректировки FCS (107).

В блоке корректировки FCS (107) выполняется пересчет контрольной суммы, и 4 байта контрольной суммы (206) добавляются к пакету, после чего он передаётся в выходной интерфейс (108).

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

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

Пример 1. Удаление поля данных для случая, если размер пакета
Nfilt ≥ 60 байт (фиг. 4а).

Входной поток пакетов принимается последовательно через входной интерфейс (101). Затем пакеты передаются в блок анализа пакета (102), в котором выполняется анализ содержимого пакета и выделение Ethernet-заголовка, IP-заголовка, поля данных и определение их размеров. Из буфера дескрипторов (104) дескрипторы передаются в блок удаления поля данных (105), в котором пересчитывается размер пакета без поля данных и записывается полученное значение в дескриптор. При чтении пакета из пакетного буфера (103) используется информация о размере пакета из его дескриптора.

После того, как блок анализа пакета (102) определил, что в пакете есть IP-заголовок, в блоке удаления поля данных (105) размер пакета в дескрипторе устанавливается равным сумме размеров Ethernet-заголовка и IP-заголовка.

Размер пакета больше минимального заданного размера в 60 байт
(Nfilt ≥ 60 байт), поэтому пакеты из буфера дескрипторов (104) сразу передаются в блок корректировки FCS (107), в котором выполняется пересчет контрольной суммы, и 4 байта контрольной суммы (206) добавляются к пакету, после чего он передаётся в выходной интерфейс (108).

Пример 2. Удаление поля данных для случая, если размер пакета
Nfilt <60 байт (фиг. 4б).

Входной поток пакетов принимается последовательно через входной интерфейс (101), затем пакеты передаются в блок анализа пакета (102).

Из буфера дескрипторов (104) дескрипторы передаются в блок удаления поля данных (105), в котором пересчитывается размер пакета без поля данных и записывается полученное значение в дескриптор. При чтении пакета из пакетного буфера используется информация о размере пакета из его дескриптора.

После того, как в блоке анализа пакета (102) определилось, что в пакете нет IP-заголовка, то в блоке удаления поля данных (105) размер пакета в дескрипторе устанавливается равным размеру Ethernet-заголовка.

Затем в блоке удаления поля данных (105) пересчитывается размер пакета без поля данных и записывается полученное значение в дескриптор, устанавливая размер пакета равным сумме размеров Ethernet-заголовка и IP-заголовка.

В результате удаления поля данных размер пакета Nfilt стал меньше минимального размера пакета (Nmin) в 60 байт.

В блоке дополнения (106) выполняется дополнение пакета до 60 байт нулевыми байтами размером (Nmin – Nfilt). В блоке корректировки FCS (107) выполняется пересчет контрольной суммы FCS: 4 байта FCS (206) добавляются к пакету, после чего пакет передается в выходной интерфейс (108).

Заявляемый способ позволяет повысить производительность устройств предварительной обработки сетевого трафика за счет оптимизации процедуры удаления поля данных из сетевых пакетов и отсутствия операций копирования пакета при его обработке и может быть применен в устройствах на базе ПЛИС или СБИС.

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

название год авторы номер документа
Способ определения дублирующихся пакетов в потоке сетевого трафика 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2790636C1
Способ динамической фильтрации сетевых пакетов по принадлежности к сессии 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2779135C1
Способ отслеживания фрагментов пакетов в сетевом трафике 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2778462C1
Способ обеспечения идентичности балансировки для двунаправленного потока данных сетевой сессии 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2786629C1
Способ отслеживания сессий в сетевом трафике 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2786178C1
Способ фильтрации сетевого трафика на основе правил с маской при пакетной коммутации 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2795295C1
Способ фильтрации части пакетов в сетевой сессии 2022
  • Шабалов Александр Александрович
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2790635C1
Способ балансировки с сохранением целостности потоков данных 2023
  • Попенко Павел Иванович
RU2807656C1
Способ модификации данных при сетевой пакетной коммутации 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2781916C1
Способ глубокого разбора сетевых протоколов для анализа и фильтрации их содержимого 2016
  • Бажуков Георгий Вячеславович
  • Коренберг Марк Михайлович
  • Байрамлы Абдулла Гасан Оглы
RU2640295C1

Иллюстрации к изобретению RU 2 790 617 C1

Реферат патента 2023 года Способ высокоскоростного удаления поля данных при пакетной коммутации

Изобретение относится к способам высокоскоростной модификации сетевых пакетов в высоконагруженных сетях. Технический результат - повышение пропускной способности и производительности систем глубокого анализа сетевого трафика. Происходит формирование дескриптора, включающего в себя размеры заголовков, поля данных и всего пакета. Дескриптор сохраняется в буфер дескрипторов, а пакет сохраняется в пакетный буфер. Из буфера дескрипторов дескрипторы передаются в блок удаления поля данных, в котором пересчитывается размер пакета без поля данных и записывается полученное значение в буфере дескрипторов. При чтении пакета из пакетного буфера используется информация о размере пакета из его дескриптора. Если в блоке анализа пакета определяется, что в пакете нет IP-заголовка, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным размеру Ethernet-заголовка. Если в блоке анализа пакета определяется, что в пакете есть IP-заголовок, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным сумме размеров Ethernet-заголовка и IP-заголовка. Если в результате удаления поля данных из передаваемого пакета размер пакета становится меньше минимально заданного размера в 60 байт, доставляемого получателю в составе одного пакета, то в блоке дополнения выполняется дополнение пакета нулевыми байтами до 60 байт и выполняется передача его в блок корректировки FCS. Если размер пакета больше или равен минимальному заданному размеру в 60 байт, то пакет сразу передаётся в блок корректировки FCS. В блоке корректировки FCS выполняется пересчет контрольной суммы, и 4 байта контрольной суммы добавляются к пакету, после чего он передаётся в выходной интерфейс. 4 ил.

Формула изобретения RU 2 790 617 C1

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

отличающийся тем, что

из буфера дескрипторов дескрипторы передаются в блок удаления поля данных, в котором пересчитывается размер пакета без поля данных и записывается полученное значение в буфере дескрипторов,

при чтении пакета из пакетного буфера используется информация о размере пакета из его дескриптора,

если в блоке анализа пакета определяется, что в пакете нет IP-заголовка, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным размеру Ethernet-заголовка,

если в блоке анализа пакета определяется, что в пакете есть IP-заголовок, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным сумме размеров Ethernet-заголовка и IP-заголовка,

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

если размер пакета больше или равен минимальному заданному размеру в 60 байт, то пакет сразу передаётся в блок корректировки FCS,

при этом в блоке корректировки FCS выполняется пересчет контрольной суммы, и 4 байта контрольной суммы добавляются к пакету, после чего он передаётся в выходной интерфейс.

Документы, цитированные в отчете о поиске Патент 2023 года RU2790617C1

US 6816455 B2, 09.11.2004
US 7853723 B2, 14.12.2010
US 7958255 B1, 07.06.2011
US 8131880 B2, 06.03.2012
СПОСОБ И УСТРОЙСТВО ДЛЯ УМЕНЬШЕНИЯ СИСТЕМНЫХ ИЗДЕРЖЕК 2008
  • Чжэн Хайхун
  • Бориу Эдриан
  • Махешвари Шашикант
RU2504087C2

RU 2 790 617 C1

Авторы

Бадин Михаил Викторович

Михайлов Алексей Михайлович

Плотко Сергей Алексеевич

Даты

2023-02-28Публикация

2022-06-01Подача