Расширенная история одной стажировки
Вот уже несколько лет как Qrator Labs работает с различными университетами с целью найти студентов, заинтересованных во вполне определенных задачах, над которыми мы работаем. Студентам это помогает получить новый опыт или обозначить будущую карьерную тропу в области сетевой и, в общем, компьютерной инженерии. А Qrator Labs — найти потенциальных сотрудников.
На данный момент в составе Qrator Labs работают несколько сотрудников, пришедших со стажировки, в свою очередь начавшейся с участия в небольших проектах, курируемых разработчиками Qrator Labs в рамках университетского “инновационного практикума”. Конечно, далеко не все в итоге выбирают компьютерную инженерию в качестве области специализации: из 23 студентов, прошедших практику под нашим кураторством в 2019 и 2020 годах, лишь 9 были приглашены на стажировку. И только четверо из них стали нашими коллегами, что делает каждую такую историю особенной.
В этот раз мы бы хотели подробнее рассказать об одном из наших коллег — Дмитрии Камальдинове, который все еще находится на пути к обретению степени магистра. Однако бакалаврская степень была присвоена Дмитрию после успешной защиты диплома, над которым он работал, будучи интерном в Qrator Labs.
По признанию Димы, первоначально поставленная задача не была связана напрямую ни с деятельностью компании как таковой, ни с тем, чем сейчас Дмитрий занимается в Qrator Labs. Задача заключалась в предоставлении доступа к опенсорсной C++ библиотеке из Python. Звучит как хорошее задание для студента? Вы можете сами ознакомиться с имеющимся результатом: https://github.com/QratorLabs/pysdsl.
Спустя некоторое время после этого погружения в стажерскую практику Дмитрию необходимо было подобрать тему бакалаврской диссертации. Факультет Дмитрия позволял ему выбирать любого научного руководителя, которого он хотел, не ограничиваясь только профессорами университета. После ответов на пару вопросов другой наш коллега-математик, Артем Шворин, связался с Дмитрием и предположил, что задача доработки и специализации известного алгоритма Space Saving может быть хорошей темой для диплома и подходящей для решения задач, над которыми в то время работала команда Qrator Core. Другая задача заключалась в доработке идеи алгоритма выделения тяжелых потоков с помощью дерева принятия решений.
Наконец, оценив обе идеи, Дмитрий выбрал вторую. Далее мы кратко опишем суть алгоритма, и каких результатов удалось достичь.
Задача выделения тяжелых потоков (heavy hitters) уже интересна сама по себе: постоянно публикуются новые статьи, где предлагаются новые алгоритмы и различные оптимизации существующих. Эта область знаний оказывается особенно полезной в задачах анализа трафика, в первую очередь из-за растущего распространения IPv6. Напомним, что в IPv6 количество уникальных адресов равно 2^128, что исключает любые тривиальные подходы, такие как отдельная обработка каждого адреса.
Sketch-based алгоритмы — группа алгоритмов, которые уменьшают размер исходного пространства ключей, разделяя его на подмножества, причем с важной особенностью — разбиение может осуществляться динамически. Хотя в большинстве подобных алгоритмов используется фиксированное разбиение, идея, предложенная Артемом Швориным заключалась в том, чтобы сделать его динамическим, то есть изменяющимся во время работы алгоритма. Структура данных, которая управляет этим процессом, представляет собой дерево решений, двоичное дерево с предикатами, где используется префиксная маска в качестве предиката, в его узлах, в соответствии с которым принимается решение о спуске ключа либо в левое, либо в правое поддерево.
Основными моментами разработки алгоритма, о которых Дмитрий рассказал в своей работе, были эффективное обновление структуры при получении нового ключа, поддержание устойчивости дерева на стационарных потоках, эффективный поиск новой префиксной маски при необходимости. И, наконец, стратегия применения алгоритма при фильтрации трафика. В окончательной версии используются хорошо известные идеи (например, повороты, широко используемые для балансировки двоичных деревьев), а также некоторые новые преобразования и алгоритмы, которые привели к хорошей асимптотике обновления. Было также показано, что алгоритм хорошо работает на некоторых нетривиальных паттернах трафика.
Нам в Qrator Labs нравится заниматься и наукой, и искать ее практическое применение для создания высококачественного и востребованного продукта.
Следите за историями от новичков Qrator Labs из академической среды, их ещё будет.
Если вы заинтересованы в работе в Qrator Labs или хотите попросить нас о стажировке — пишите на hr@qrator.net.
Ознакомьтесь со всеми функциями
в 7-дневной пробной версии
Наши специалисты готовы оказать вам поддержку
Подпишитесь на ежемесячный обзор самых популярных новостей Интернета от CURATOR!
Будьте в курсе наших новостей и продуктов!
Подпишитесь на ежемесячный обзор самых популярных идей Интернета от CURATOR!
Отправляя свой адрес электронной почты, вы соглашаетесь с политикой конфиденциальности
Отправляя свои данные, вы соглашаетесь с политикой конфиденциальности
Если документ не загружается, нажмите кнопку «Загрузить». Помогите нам лучше понять рынок и подготовить лучшую аналитику, пройдите опрос.
Поделитесь своим опытом и ожиданиями в отношении защиты от DDoS-атак. Ваши ответы помогут нам предложить решения, соответствующие вашим потребностям в области кибербезопасности
Расскажите нам о инфраструктуре вашей компании и критически важных системах. Это поможет нам понять масштаб необходимой защиты
Помогите нам понять, как в вашей компании принимаются решения. Эта информация позволит предложить наиболее актуальные решения
Расскажите, что влияет на ваш выбор в вопросах защиты от DDoS-атак. Ваше мнение поможет нам сосредоточиться на самом важном для вас
Ваше участие поможет нам улучшить аналитику рынка.