УДК 004.382.2 DOI 10.23683/2311-3103-2019-2-48-56
А.С. Котляров, И.И. Левин
ОБРАБОТКА СЕТЕВЫХ ПОТОКОВ ДАННЫХ В РЕКОНФИГУРИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
Рассматривается возможность применения метода конвейер в конвейере для решения задач обработки данных сетевого потока в темпе поступления. Данный метод позволяет минимизировать аппаратные затраты, если используются рекурсивные алгоритмы, например для задач шифрования или компрессии сетевого трафика. В этом случае новые данные нельзя подавать в обработку, пока не получен результат обработки предыдущих данных. Классическое решение предполагает параллельное использование нескольких устройств, каждое из которых будет независимо обрабатывать свой поток данных. Метод конвейер в конвейере, позволяет использовать одно устройство для обработки, в которое подается множество независимых данных из параллельных потоков, однако такое решение будет эффективно только для сетевых пакетов одного размера. Была предложена модификация данного метода, позволяющая обрабатывать пакеты данных разного размера в темпе их поступления. Сетевые протоколы передачи данных требуют сохранения порядка следования пакетов, типовое решение предполагает использование диспетчера для оптимизации заполнения памяти буферов входных данных и дополнительных буферов после устройства обработки, синхронизирующих порядок пакетов. Для уменьшения расхода оборудования было представлено альтернативное решение, предполагающее использование одной памяти для хранения исходных и обработанных данных. Сетевые пакеты направляются в специальные блоки соединённые последовательно, состоящие из двухпортовой памяти и модуля управления потоками данных и состоянием памяти. Для исключения ситуации переполнения памяти, предложено задействовать резервные блоки. Была приведена оценка минимальных аппаратных затрат ПЛИС для решения задач обработки сетевых пакетов рекурсивными алгоритмами на скорости 10 Гбит/с. Анализ результатов доказал эффективность предложенного метода, по сравнению с существующими решениями, позволяя на заданном объёме оборудования увеличить максимальную скорость обработки данных более чем в 2,5 раза. Рекомендуется использовать предложенную модификацию метода конвейер в конвейере для решения задач шифрования и компрессии данных в высокоскоростных компьютерных сетях.
Высокоскоростная обработка сетевых пакетов; реконфигурируемые вычислительные системы; ПЛИС; метод конвейер в конвейере.
A.S. Kotlyarov, I.I. Levin
PROCESSING OF DATA NETWORK STREAMS IN RECONFIGURABLE
COMPUTING SYSTEMS
In the paper the author considers applicability of a "pipeline -in-pipeline " method for the tasks of network data flow real-time processing. Owing to the method, it is possible to minimize hardware costs, if recursive algorithms are used: for example, for tasks of encryption or redu c-tion of network traffic. In this case, new data cannot be processed, until the result of previous data processing is received. The classical solution implies concurrent use of several dev ices, each of which processes its own dataflow independently. The "pipeline-in-pipeline" method allows using a single device for processing, which receives independent data from concurrent flows. However, such solution is efficient only for network packets of the same size. We have suggested a modification of the method, which can provide real-time processing of different size data packets. Network data transfer protocols require keeping of packets sequence order. A standard solution implies use of a dispatcher, which optimizes filling of input data buffers and additional buffers after the processing device, synchronizing the packets. For reduction of hardware costs, we have suggested an alternative solution, which implies use of the same memory for initial and processed data. Network packets are sent to special blocks, which are
connected sequentially and which consist of dual-port memory and a unit of data flows and memory state control. We also suggest using of reserve units to exclude the situation of memory overflow. We have estimated the minimum hardware costs of FPGA for the tasks of network packets processing with the help of recursive algorithms at the rate of 10 Gb/sec. Analysis of results has proved efficiency of the suggested method in comparison with existing solutions. So, it is possible to increase the maximum data processing rate in more than 2.5 times for the specified hardware recourse. We recommend to use the suggested modification of the "pipeline -inpipeline " method for tasks of data encryp tion and reduction in high-speed computer networks.
High-speed processing of network packets; reconfigurable computing systems; FPGA; pipeline method in the pipeline.
Введение. Научно-технический прогресс требует повышения скорости передачи пакетов данных в компьютерных сетях. Каждый пакет данных при отправке или приёме проходит несколько стадий обработки: идентификация пакета, классификация, применение правила для дальнейшей обработки. В зависимости от задач сетевого устройства, обработка будет включать: маршрутизацию пакета, фрагментацию/дефрагментацию, управление качеством обслуживания, кодирование/декодирование, компрессию/декомпрессию. Максимально доступная скорость на канале связи достигается, когда обработка пакетов выполняется в темпе их поступления. При скорости передачи данных в локальной сети около 40 Гбит/с и размере пакета равном 1 Кбайт, сетевое устройство должно обрабатывать около 80 млн. пакетов в секунду. Выполнение всех стадий обработки пакета за время порядка 10-10 с, в дополнение к необходимости копирования пакетов, просто невозможно реализовать программно, используя универсальные процессоры [1-7].
В настоящее время ведущие производители сетевого оборудования предлагают множество аппаратных решений, которые, как правило, строятся на базе заказных кристаллов и позволяют эффективно решать задачи высокоскоростной обработки сетевого трафика [8]. Однако, если требуется внести изменения в алгоритм обработки или исправить ошибки существующего решения, необходимо разрабатывать и изготавливать новый кристалл [9]. Данного ограничения лишены реконфигурированные вычислительные системы (РВС) на базе программируемых логических интегральных схем (ПЛИС) [10-13]. Благодаря адаптации архитектуры под структуру решаемой задачи, и возможности реализации сложных параллельных алгоритмов, можно производить обработку сетевого трафика с максимальной эффективностью и оперативно вносить изменения в схему обработки данных. В настоящее время требуется создание новых методов и средств обработки сетевых пакетов на РВС, т.к существующие решения плохо оптимизированы [14].
Среди задач обработки сетевого траффика существуют процедуры, которые трудно поддаются распараллеливанию. К таким задачам относятся сжатие трафика и шифрование данных [15-18]. Алгоритмы обработки данных в таких задачах реализуются рекурсивно, новые данные нельзя подавать в обработку, пока не получен результат обработки предыдущего данного. Для обеспечения плотного потока данных, необходимо параллельно использовать несколько устройств, каждое из которых будет независимо обрабатывать свой поток данных. При этом нужно организовать буферизацию пакетов на входе и выходе. Максимальная скорость обработки достигается, когда количество таких устройств не меньше числа тактов, требующихся для обработки одного данного, что приводит к большому расходу оборудования, для минимизации аппаратных затрат можно использовать метод конвейер в конвейере [19]. Суть метода заключается в том, что вместо множества независимых устройств обработки, используется одно, в которое последовательно подаётся множество независимых данных из параллельных потоков. Пакеты данных нужно буферизировать по-отдельности и каждый такт подавать данное из разных буферов в обработку. Классический метод обеспечит максимальную ско-
рость обработки, только при одинаковом размере пакетов данных, поэтому требуется оптимизация данного метода т.к. размер пакетов в компьютерных сетях может варьироваться в большом диапазоне.
Обработка сетевых пакетов методом конвейер в конвейере. Типовая схема обработки данных сетевого потока представлена на рис. 1, где G - функциональное устройство обработки данных, К - коммутатор, L - обратная связь для данных, В1,2..д буферы для входящих пакетов.
G
O
Рис. 1. Организация вложенного конвейера для пакетной обработки данных
сетевого потока
Данные каждого пакета накапливаются в отдельном буфере В^ Коммутатор К циклически переключает выходы буферов для подачи одного данного из пакета во вложенный конвейер, состоящий из преобразователя G и обратной связи L. В первый момент времени подается первое данное первого пакета, во второй момент, первое данное второго пакета и т.д. Количество поданных данных должно быть равно глубине обратной связи, в результате обеспечивается обработка плотного потока данных. На рис. 2 приведена временная диаграмма обработки 3-х сетевых пакетов одинаковой длинны, где: В^ - пакеты с данными, 1.1, 1,2, ... , 3.4 - номер данного соответствующего пакета, G - данные в обработчике, L - данные в обратной связи.
Рис. 2. Временная диаграмма обработки данных трех пакетов методом конвейер
в конвейере
Диаграмма показывает, что с момента прихода данного 1.1 в обратную связь L, данные вложенного конвейера идут плотным потоком. Однако, если размер пакетов будет разным, неизбежно возникнет ситуация, когда к моменту прихода оче-
I
L
K
редного пакета освободится произвольный буфер, номер которого не будет соответствовать последовательному порядку записи, или к приходу очередного пакета все буферы будет заняты.
Для исключения подобных ситуаций необходимо создать диспетчер, который в момент прихода нового пакета будет вычислять, какой буфер свободен либо освободится раньше остальных, путем определения наименьшего количества оставшихся в буфере данных z:
z = min1<j<L Ui , (1)
где ui - текущее количество данных пакета в i-ом буфере, i = 1,2,..,L. На основе вычисленного значения z определяется номер буфера N для записи нового пакета.
Однако при такой организации подачи данных, порядок входящих и выходящих пакетов будет нарушаться. Этого следует избегать, т.к. алгоритмы сетевых протоколов TCP/IP снижают скорость отправки данных, при несовпадении порядковых номеров пакетов у получателя [7]. Для сохранения порядка следования пакетов необходимо накапливать их в выходных буферах, для синхронизации. Результаты исследования работы схемы показали, что для предотвращения ситуации переполнения буферов, их размер должен быть минимум в 2,5 раза больше. В результате всех дополнений схема обработки данных принимает вид, представленный на рис. 3.
о
Рис. 3. Структурная схема пакетной обработки данных сетевого потока с использованием диспетчера
Определим аппаратный ресурс предложенной схемы управления (без учета устройства обработки) данными на ПЛИС. Пусть A это требуемое количество конкретного аппаратного ресурса ПЛИС, где A может быть: Al - количество таблиц преобразования LUT (Look-Up Table), Am - число блоков памяти емкостью 36 Кбит. Расчет требуемого аппаратного ресурса Al и Am будет производиться по следующей формуле (2):
A = Yli=1AB+AK, (2)
где, AB - аппаратные затраты на буферизацию одного пакета, AK - аппаратные затраты на коммутацию всей схемы, N - общее количество буферов.
При обработке пакетов данных со скоростью 10 Гбит/с на частоте 312,5 МГц., и глубине обратной связи устройства обработки данных L = 33, буферизация одного пакета потребует: LUT=80, BRAM=2,5. Каждый коммутатор потребует LUT=320. Тогда на реализацию данной схемы управления данными потребуется: Al = 3280, Am = 82,5.
В качестве примера оценим затраты аппаратного ресурса на реализацию данной схемы на ПЛИС Virtex®-7 XC7VH290T. Данная ПЛИС содержит: LUT= 177500 и BRAM=470 [20]. Используя предложенную схему управления данными, мы сможем параллельно обрабатывать 5 потоков данных, обеспечивая об-
щую пропускную способность канала 50 Гбит/с. Для дальнейшего масштабирования решения не хватает памяти, поэтому необходимо искать способы уменьшения памяти, являющейся критическим ресурсом.
Оптимизация схемы обработки данных сетевого потока методом конвейер в конвейере. Для уменьшения расхода оборудования предлагается использовать одну и ту же память для хранения исходных и обработанных данных. Исходя из этой идеи была предложена оптимизированная схема обработки данных сетевого потока, представленная на рис. 4.
%
в, «-
Ж
В;
т
I
1—1— I—► Б; -► С --
Рис. 4. Оптимизированная структурная схема пакетной обработки данных
сетевого потока
Сетевые пакеты направляются в специальные блоки Вь ..., В1. Блоки соединены последовательно (в цепочку) и состоят из двухпортовой памяти и модуля управления состоянием памяти. В каждый момент времени каждый блок принимает и передаёт входные данные, обработанные данные, данные, предназначенные для обработчика G, и данные, предназначенные для вывода. Состояние каждого блока определяет режим его работы: запись входных данных, запись обработанных данных, чтение данных для обработки и чтение данных для вывода. Каждое из перечисленных состояний имеет два режима работы: "активный" и "пассивный". Состояния записи входных и обработанных данных в активном режиме сохраняют данные в двухпортовую память. В случае пассивного режима записи данные транзитом направляются следующему блоку в цепочке. При активных режимах чтения следующему блоку в цепочке передаются данные, прочитанные из двухпортовой памяти. Транзитом передаются данные в случае неактивного режима чтения. При такой организации вычислений исключены простои в работе конвейера, и порядок следования пакетов будет сохранен.
Каждый блок, содержит устройство управления потоком данных, двухпортовую память и устройство управления памятью. На рис 5. представлена организация потоков данных внутри каждого блока в цепочке.
в обработчик № обработчика На нь.ход
Рис. 5. Схема потоков данных внутри буфера
Алгоритм управления данными внутри блоков строится по следующим правилам.
1. Запись входящего потока.
1.1. Если блок находится в «активном» режиме работы и есть сигнал empty (память пуста), то запись данных из входящего потока разрешена.
1.2. Если приходит маркер end (последнее данное) - запись потока прекращается, блок переходит в «пассивный» режим, запись входящего потока направляется в следующий блок, выставляется сигнал full (память полная).
2. Чтение данных в обработчик.
2.1. Если приходит маркер end - блок памяти выключается из цепочки, следующий блок памяти включается на его место в цепочке.
2.2. Если есть сигнал empty (память пустая), то в обработчик идёт значение
«ноль».
3. Запись данных из обработчика:
3.1. Если приходит маркер end - генерируется сигнал outl (память готова выгружать данные на выход схемы).
4. Чтение результата на выход.
4.1. Если есть сигналы: full, outl, и out0 (предыдущая память закончила вычитывать данные), то производится вычитка данных из памяти на выход схемы.
4.2. Если приходит сигнал end, то генерируется сигнал out0 для следующе-
го блока в цепочке, и сигнал empty, для текущей памяти. Подобная схема подачи данных позволяет обрабатывать плотный поток сетевых пакетов в темпе их поступления с сохранением порядка их следования. Однако может возникнуть ситуация, когда к моменту прихода нового пакета, ни в одном из блоков цепочки не будет свободной памяти. Такая ситуация возникает, если время обработки данных в блоке B1 меньше, чем в блоке В1-ь В этом случае блок B1 вынужден ждать, пока выгрузка данных из предыдущего блока в цепочке закончится. Предлагается задействовать дополнительные, резервные блоки, кото-
рые будут использоваться в случае возникновения ситуации, когда пришел новый пакет, а свободных блоков для записи нет. Результаты моделирования показали, что при числе дополнительных блоков равное или больше трех, будет обеспечиваться обработка пакетов плотным потоком. Предложенная схема оптимизации позволяет минимизировать аппаратные затраты в части памяти, по сравнению с первоначальным способом организации вычислений.
Была проведена оценка сокращения аппаратных затрат при реализации предложенного решения на ПЛИС. Аппаратная реализация обработки пакетов предполагает использование единого блока двухпортовой памяти. Помимо этого, для каждого блока обработки потребуется четыре 9-разрядных счётчика адреса, два 9-разрядных мультиплексора, два 32-разрядных мультиплексора и четыре 32-разрядных регистра. Расчет аппаратного ресурса ПЛИС для реализации предложенной схемы обработки данных производится по формуле (3):
А = If=i (Ав + Ак), (3)
где Ав - аппаратные затраты на буферизацию одного пакета, Ак - аппаратные затраты на коммутацию схемы, N - общее количество блоков.
При обработке пакетов данных со скоростью 10 Гбит/с на частоте 312,5 МГц и глубине обратной связи устройства обработки данных L= 33, буферизация одного пакета: LUT = 118, BRAM= 1. Тогда для построения предложенной схемы управления данными потребуется: А; = 3894, Ат = 36.
В результате, используя ПЛИС Virtex®-7 XC7VH290T можно организовать параллельную обработку 13 потоков данных. Скорость общего потока данных при этом составит 130 Гбит/с. что в 2,8 раза больше по сравнению с изначальным решением.
Заключение. Таким образом, предложена модификация метода конвейер в конвейере для задач пакетной обработки данных на реконфигурируемых вычислительных системах, не требующая синхронизации входящих и выходящих данных. Предложенная схема позволяет обрабатывать в темпе поступления сетевые пакеты разного размера с сохранением порядка их следования. Использование одной памяти для хранения входящих и обработанных данных сокращает аппаратные затраты на организацию вычислительной структуры, что позволяет, на заданном объёме оборудования, решать задачи сжатия и шифрования сетевых данных с большей скоростью.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Таненбаум Э., Бос Х. Современные операционные системы. - 4-е изд. - СПб.: Питер, 2015. - 1120 с.
2. Таненбаум Э., Остин Т. Архитектура компьютера. - 6-е изд. - СПб.: Питер, 2013. - 816 с.
3. Таненбаум Э., Уэзеролл Д. Компьютерные сети. - 5-е изд. - СПб.: Питер, 2012. - 960 с.
4. Разработка и исследование метода повышения скорости передачи данных в мультисер-висных сетях на основе стека протоколов TCP/IP. - Режим доступа: https://www.dissercat.com/content/razrabotka-i-issledovanie-metoda-povysheniya-skorosti-peredachi-dannykh-v-multiservisnykh-se (дата обращения: 09.03.2018).
5. Некоторые аспекты высокоскоростной обработки трафика. - Режим доступа: http://lib.tssonline.ru/articles2/fix-op/nekotorye-aspekty-vysokoskorostnoy-obrabotki-trafika (дата обращения: 03.02.2018).
6. Взгляд в недра пакетов. https://www.osp.ru/lan/2012/09/13017526/ (дата обращения: 09.03.2018).
7. Руслан Смелянский (ЦПИКС) о будущем компьютерных сетей. - Режим доступа: https://sk.ru/news/b/press/archive/2012/11/07/ruslan-smelyanskiy-_2800_cpi-ks_2900_-o-buduschem-kompyuternyh-setey.aspx (дата обращения: 11.03.2018).
8. ASIC, как много в этом звуке. - Режим доступа: https://nag.ru/articles/reviews/15583/asic-kak-mnogo-v-etom-zvuke.html (дата обращения: 11.02.2018).
9. ASIC basics tutorial. - Режим доступа: http://www.radio-electronics.com/info/data/semicond/ asic/asic.php (дата обращения: 03.02.2018).
10. Гузик В.Ф., Каляев И.А., Левин И.И. Реконфигурируемые вычислительные системы: учеб. пособие / под общ. ред. И.А. Каляева. - Ростов-на-Дону: Изд-во ЮФУ, 2016. - 472 с.
11. Каляев И.А., Левин И.И., Семерников Е.А., Шмойлов В.И. Реконфигурируемые мульти-конвейерные вычислительные структуры. - 2-е изд., перераб. и доп. / под общ. ред. И.А. Каляева. - Ростов-на-Дону: Изд-во ЮНЦ РАН, 2009. - 344 с.
12. Дордопуло А.И. Каляев И.А., Левин И.И., Семерников Е.А. Семейство многопроцессорных вычислительных систем с динамически перестраиваемой архитектурой // Матер. научно-технической конференции «Многопроцессорные вычислительные и управляющие системы». - Таганрог, 2007. - С. 11-17.
13. Каляев И.А., Левин И.И., Семерников Е.А., Дордопуло А.И. Реконфигурируемые вычислительные системы на основе ПЛИС семейства VERTEX-6 // Тр. международной научной конференции «Параллельные вычислительные технологии (ПАВТ'2011)». - 2011. - С. 203-211.
14. Обзор задач и методов их решения в области классификации сетевого траффика. - Режим доступа: https://cyberleninka.ru/article/v/obzor-zadach-i-metodov-ih-reshemya-v-oblasti-klassifikatsii-setevogo-trafika (дата обращения: 10.02.2018).
15. ВиртН. Алгоритмы и структуры данных. - М.: Мир, 1989. - 360 с.
16. Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. - М.: ДИАЛОГ-МИФИ, 2002. - 384 с.
17. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. - М.: Триумф, 2002. - 816 с.
18. Гаммирование с обратной связью. - Режим доступа: https://studfiles.net/preview/306576/ page:6/ (дата обращения: 23.04.2018).
19. Метод операционно-графового описания одновременных вычислений для многопроцессорных систем // Матер. Международной научно-технической конференции «Многопроцессорные вычислительные и управляющие системы - 2007». - Таганрог: Изд во ТТИ ЮФУ, 2007. - Т. 1. - С. 278-284.
20. Kintex-7 FPGA Product Table. - Режим доступа: https://www.xilinx.com/support/ documen-tation/selection-guides/7-series-product-selection-guide (дата обращения: 14.11.2018).
REFERENCES
1. Tanenbaum E., Bos Kh. Sovremennye operatsionnye sistemy [Computer architecture]. 4th ed. Saint Petersburg: Piter, 2015, 1120 p.
2. Tanenbaum E., Ostin T. Arkhitektura komp'yutera [The architecture of the computer]. 6th ed. Saint Petersburg: Piter, 2013, 816 p.
3. Tanenbaum E., Uezeroll D. Komp'yuternye seti [Computer networks]. 5th ed. Saint Petersburg: Piter, 2012, 960 p.
4. Razrabotka i issledovanie metoda povysheniya skorosti peredachi dannykh v mul'tiservisnykh setyakh na osnove steka protokolov TCP/IP [Development and a research of a method of fall forward of data transmission in multiservice networks on the basis of a stack of protocols of TCP/IP]. Available at: https://www.dissercat.com/content/razrabotka-i-issledovanie-metoda-povysheniya-skorosti-peredachi-dannykh-v-multiservisnykh-se (accessed 09 March 2018).
5. Nekotorye aspekty vysokoskorostnoy obrabotki trafika [Some aspects of high-speed traffic handling]. Available at: http://lib.tssonline.ru/articles2/fix-op/nekotorye-aspekty-vysokoskorostnoy-obrabotki-trafika (accessed 03 February 2018).
6. Vzglyad v nedra paketov [A look in a subsoil of packets]. Available at: https://www.osp.ru/lan/2012/09/13017526/ (accessed 09 March 2018).
7. Ruslan Smelyanskiy (TSPIKS) o budushchem komp'yuternykh setey [Ruslan Smelyansky (ARCCN) About the future of computer]. Available at: https://sk.ru/news/b/press/ ar-chive/2012/11/07/ruslan-smelyanskiy-_2800_cpi-ks_2900_-o-buduschem-kompyuternyh-setey.aspx (accessed: 11 March 2018).
8. ASIC, kak mnogo v etom zvuke [ASIC as there is a lot of in this sound]. Available at: https://nag.ru/articles/reviews/15583/asic-kak-mnogo-v-etom-zvuke.html (accessed 11 February 2018).
9. ASIC basics tutorial. Available at: http://www.radio-electronics.com/info/data/semicond/ asic/asic.php (accessed 03 February 2018).
10. Guzik V.F., Kalyaev I.A., Levin I.I. Rekonfiguriruemye vychislitel'nye sistemy: ucheb. posobie [Reconfigurable computing systems: textbook], ed. by I.A. Kalyaeva. Rostov-on-Don: Izd-vo YuFU, 2016, 472 p.
11. Kalyaev I.A., Levin I.I., Semernikov E.A., Shmoylov V.I. Rekonfiguriruemye mul'tikonveyernye vychislitel'nye struktury [Reconfigurable multi-pipeline computing structures]. 2nd ed. pod under total ed. I.A. Kalyaev. Rostov-on-Don: Izd-vo YuNTS RAN, 2009, 344 p.
12. Dordopulo A.I. Kalyaev I.A., Levin I.I., Semernikov E.A. Semeystvo mnogoprotsessornykh vychislitel'nykh sistem s dinamicheski perestraivaemoy arkhitekturoy [Family of multiprocessor computing systems with dynamically tunable architecture], Mater. nauchno-tekhnicheskoy konferentsii «Mnogoprotsessornye vychislitel'nye i upravlyayushchie sistemy» [Materials of scientific and technical conference «Multiprocessor computing and control systems»]. Taganrog, 2007, pp. 11-17.
13. Kalyaev I.A., Levin I.I., Semernikov E.A., Dordopulo A.I. Rekonfiguriruemye vychislitel'nye sistemy na osnove PLIS semeystva VERTEX-6 [Reconfigurable computer systems based on the FPGA of the VIRTEX-6 family], Tr. mezhdunarodnoy nauchnoy konferentsii «Parallel'nye vychislitel'nye tekhnologii (PAVT'2011)» [Parallel computing technologies (PAVT'2011). Proceedings of the international scientific conference], 2011, pp. 203-211.
14. Obzor zadach i metodov ikh resheniya v oblasti klassifikatsii setevogo traffika [The review of tasks and methods of their solution in the field of classification of network traffic]. Available at: https://cyberleninka.ru/article/v/obzor-zadach-i-metodov-ih-resheniya-v-oblasti-klassifikatsii-setevogo-trafika (accessed 10 February 2018).
15. VirtN. Algoritmy i struktury dannykh [Algorithms and data structures]. Moscow: Mir, 1989, 360 p.
16. Vatolin D., Ratushnyak A., Smirnov M., Yukin V. Metody szhatiya dannykh. Ustroystvo arkhivatorov, szhatie izobrazheniy i video [Methods of data compression. The devicearchivers, compression of images and video]. Moscow: DIALOG-MIFI, 2002, 384 p.
17. Shnayer B. Prikladnaya kriptografiya. Protokoly, algoritmy, iskhodnye teksty na yazyke Si [Applied Cryptography. Protocols, algorithms and source code in C]. Moscow: Triumf, 2002, 816 p.
18. Gammirovanie s obratnoy svyaz'yu [Block cipher mode of operation]. Available at: https://studfiles.net/preview/306576/ page:6/ (accessed 23 April 2018).
19. Metod operatsionno-grafovogo opisaniya odnovremennykh vychisleniy dlya mnogoprotsessornykh sistem [A method of the operational and graph description of simultaneous calculations for multiprocessor systems], Mater. Mezhdunarodnoy nauchno-tekhnicheskoy konferentsii «Mnogoprotsessornye vychislitel'nye i upravlyayushchie sistemy - 2007» [Materials of the International scientific and technical conference "Multiprocessor Computing and Managing Systems - 2007"]. Taganrog: Izd vo TTI YuFU, 2007, Vol. 1, pp. 278-284.
20. Kintex-7 FPGA Product Table [Kintex-7 FPGA Product Table]. Available at: https://www.xilinx.com/support/documentation/selection-guides/7-series-product-selection-guide (accessed 14 November 2018).
Статью рекомендовал к опубликованию д.т.н. Э.В. Мельник.
Левин Илья Израилевич - Южный федеральный университет; e-mail: iilevin@sfedu.ru; 347928, г. Таганрог, ул. Петровская, д. 15, кв. 143; тел.: 88634612111; и.о. зав. кафедрой интеллектуальных и многопроцессорных систем; д.т.н.; профессор.
Котляров Александр Сергеевич - e-mail: a-svetoch@ya.ru; 347935, г. Таганрог, 3-й переулок, 11; тел.: 88634641916; аспирант.
Levin Ilya Izrailevich - Southern Federal University; e-mail: iilevin@sfedu.ru; 15, Petrovskaya str., ap. 143, Taganrog, 347928, Russia; phone: +78634612111; head of the department of intellectual and Multiprocessor Systems; dr. of eng. sc.; professor.
Kotlyarov Alexander Sergeyevich - e-mail: a-svetoch@ya.ru; 3rd Lane 11, Taganrog, 347935, Russia; phone: +78634641916; graduate student.