RU2790617C1 - Способ высокоскоростного удаления поля данных при пакетной коммутации - Google Patents

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

Info

Publication number
RU2790617C1
RU2790617C1 RU2022114835A RU2022114835A RU2790617C1 RU 2790617 C1 RU2790617 C1 RU 2790617C1 RU 2022114835 A RU2022114835 A RU 2022114835A RU 2022114835 A RU2022114835 A RU 2022114835A RU 2790617 C1 RU2790617 C1 RU 2790617C1
Authority
RU
Russia
Prior art keywords
packet
descriptor
data field
size
block
Prior art date
Application number
RU2022114835A
Other languages
English (en)
Inventor
Михаил Викторович Бадин
Алексей Михайлович Михайлов
Сергей Алексеевич Плотко
Original Assignee
Акционерное общество "Научно-производственное предприятие "Цифровые решения"
Filing date
Publication date
Application filed by Акционерное общество "Научно-производственное предприятие "Цифровые решения" filed Critical Акционерное общество "Научно-производственное предприятие "Цифровые решения"
Application granted granted Critical
Publication of RU2790617C1 publication Critical patent/RU2790617C1/ru

Links

Images

Abstract

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

Description

Изобретение относится к области построения систем мониторинга и анализа сетей передачи данных, а именно к методам высокоскоростной модификации сетевых пакетов в высоконагруженных сетях и может быть использовано в устройствах предварительной обработки данных для систем глубокого анализа сетевого трафика, в частности, в составе сетевых коммутаторов стандарта 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. Удаление поля данных для случая, если размер пакета
N filt ≥ 60 байт (фиг. 4а).
Входной поток пакетов принимается последовательно через входной интерфейс (101). Затем пакеты передаются в блок анализа пакета (102), в котором выполняется анализ содержимого пакета и выделение Ethernet-заголовка, IP-заголовка, поля данных и определение их размеров. Из буфера дескрипторов (104) дескрипторы передаются в блок удаления поля данных (105), в котором пересчитывается размер пакета без поля данных и записывается полученное значение в дескриптор. При чтении пакета из пакетного буфера (103) используется информация о размере пакета из его дескриптора.
После того, как блок анализа пакета (102) определил, что в пакете есть IP-заголовок, в блоке удаления поля данных (105) размер пакета в дескрипторе устанавливается равным сумме размеров Ethernet-заголовка и IP-заголовка.
Размер пакета больше минимального заданного размера в 60 байт
(Nfilt ≥ 60 байт), поэтому пакеты из буфера дескрипторов (104) сразу передаются в блок корректировки FCS (107), в котором выполняется пересчет контрольной суммы, и 4 байта контрольной суммы (206) добавляются к пакету, после чего он передаётся в выходной интерфейс (108).
Пример 2. Удаление поля данных для случая, если размер пакета
N filt <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).
Заявляемый способ позволяет повысить производительность устройств предварительной обработки сетевого трафика за счет оптимизации процедуры удаления поля данных из сетевых пакетов и отсутствия операций копирования пакета при его обработке и может быть применен в устройствах на базе ПЛИС или СБИС.

Claims (9)

  1. Способ высокоскоростного удаления поля данных при пакетной коммутации, заключающийся в приеме входного потока пакетов через входной интерфейс, передачу его в блок анализа пакета, в котором выполняется анализ содержимого пакета и выделение Ethernet-заголовка, IP-заголовка, поля данных и определение их размеров, после чего происходит формирование дескриптора, включающего в себя размеры заголовков, поля данных и всего пакета, при этом дескриптор сохраняется в буфер дескрипторов, а пакет сохраняется в пакетный буфер,
  2. отличающийся тем, что
  3. из буфера дескрипторов дескрипторы передаются в блок удаления поля данных, в котором пересчитывается размер пакета без поля данных и записывается полученное значение в буфере дескрипторов,
  4. при чтении пакета из пакетного буфера используется информация о размере пакета из его дескриптора,
  5. если в блоке анализа пакета определяется, что в пакете нет IP-заголовка, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным размеру Ethernet-заголовка,
  6. если в блоке анализа пакета определяется, что в пакете есть IP-заголовок, то в блоке удаления поля данных размер пакета в дескрипторе устанавливается равным сумме размеров Ethernet-заголовка и IP-заголовка,
  7. если в результате удаления поля данных из передаваемого пакета размер пакета становится меньше минимально заданного размера в 60 байт, доставляемого получателю в составе одного пакета, то в блоке дополнения выполняют дополнение пакета нулевыми байтами до 60 байт и выполняется передача его в блок корректировки FCS,
  8. если размер пакета больше или равен минимальному заданному размеру в 60 байт, то пакет сразу передаётся в блок корректировки FCS,
  9. при этом в блоке корректировки FCS выполняется пересчет контрольной суммы, и 4 байта контрольной суммы добавляются к пакету, после чего он передаётся в выходной интерфейс.
RU2022114835A 2022-06-01 Способ высокоскоростного удаления поля данных при пакетной коммутации RU2790617C1 (ru)

Publications (1)

Publication Number Publication Date
RU2790617C1 true RU2790617C1 (ru) 2023-02-28

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
US7853723B2 (en) * 1997-10-14 2010-12-14 Alacritech, Inc. TCP/IP offload network interface device
US7958255B1 (en) * 2003-11-04 2011-06-07 Advanced Micro Devices, Inc. Partial coalescing of transmit buffers
US8131880B2 (en) * 1997-10-14 2012-03-06 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
RU2504087C2 (ru) * 2007-10-04 2014-01-10 Нокиа Сименс Нетворкс Ой Способ и устройство для уменьшения системных издержек

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853723B2 (en) * 1997-10-14 2010-12-14 Alacritech, Inc. TCP/IP offload network interface device
US8131880B2 (en) * 1997-10-14 2012-03-06 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
US7958255B1 (en) * 2003-11-04 2011-06-07 Advanced Micro Devices, Inc. Partial coalescing of transmit buffers
RU2504087C2 (ru) * 2007-10-04 2014-01-10 Нокиа Сименс Нетворкс Ой Способ и устройство для уменьшения системных издержек

Similar Documents

Publication Publication Date Title
JP4942375B2 (ja) ネットワーク処理装置
US8149705B2 (en) Packet communications unit
US8681819B2 (en) Programmable multifield parser packet
US11172055B2 (en) Network recorders with entropy and value based packet truncation
US10122636B2 (en) Processing data units
CN110753095B (zh) 一种网卡的数据处理方法、设备以及存储介质
US11271856B2 (en) Concept for segmenting an application buffer into data packets
US20180248910A1 (en) Anti-Attack Data Transmission Method and Device
RU2790617C1 (ru) Способ высокоскоростного удаления поля данных при пакетной коммутации
WO2023155815A1 (zh) 一种报文处理方法、装置、终端设备及存储介质
CN108282454B (zh) 用于使用内联模式匹配加速安全检查的装置、系统和方法
CN113992410B (zh) 一种私有加密数据识别方法及系统
CN116016687A (zh) 一种基于dpdk的报文分流方法及系统
CN115622944A (zh) 基于多并行度下数据流的tcp拼包方法和系统
WO2017045486A1 (zh) 用于传输无线数据的方法、装置和系统
CN110868388B (zh) 用于操作联网设备的系统和方法
RU2779135C1 (ru) Способ динамической фильтрации сетевых пакетов по принадлежности к сессии
RU2790635C1 (ru) Способ фильтрации части пакетов в сетевой сессии
RU2790636C1 (ru) Способ определения дублирующихся пакетов в потоке сетевого трафика
CN113935430B (zh) 一种多样化识别私有加密数据的方法及系统
RU2786178C1 (ru) Способ отслеживания сессий в сетевом трафике
US8682996B2 (en) Apparatus for handling message reception
US11936726B2 (en) Methods and systems for implementing traffic mirroring for network telemetry
RU2784018C1 (ru) Способ фильтрации данных пакетов в сетевых пакетных коммутаторах
RU2781916C1 (ru) Способ модификации данных при сетевой пакетной коммутации