Giter VIP home page Giter VIP logo

traf_exercise's Introduction

Задание traf_exercise

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

Данные

Информация находятся в файле traf.txt. Каждая строка содержит одну запись о сессии передачи данных между двумя узлами наблюдаемого сегмента сети. Поля в строке отделены символом ';'.

Поля данных (по порядку в строке, слева-направо)

  • IP:Port узла с которого отправлены данные
  • MAC хоста с которого отправлены данные
  • IP:Port узла на который отправлены данные
  • MAC хоста на который отправлены данные
  • Признак UDP: 'true' - UDP, 'false' - TCP
  • Размер переданных данных, байт (целое)
  • Время передачи, секунд (с плавающей точкой, разделитель десятичных - .)

Пример записи (одна строка): 94.239.149.85:46889;eF:Eb:4e:8:A3:08;161.223.117.183:7306;Ce:62:c5:00:BE:cd;false;10707;0.0941

Задание

Разработайте ПО котрое проанализирует информацию в файле и ответит на следующие вопросы, в отношении наблюдаемого сегмента сети:

  • Q1. Сколько уникальных узлов в наблюдаемой сети (штук)?
  • Q2. Какова средняя скорость передачи данных всей наблюдаемой сети (байт/сек)?
  • Q3. Основываясь на данных о трафике, верно-ли утверждение "UDP используется для передачи данных с максимальной пиковой скоростью"?
  • Q4. Укажите 10 узлов сети с самой высокой средней скоростью передачи данных (байт/сек).
  • Q5. Укажите 10 самых активных подсетей /24 (A.B.C.xxx) по критерию количества сессий передачи данных (штук).
  • Q6. Есть-ли в сети узлы, которые могут являться посредниками (т.н. PROXY) между другими узлами? Укажите их, если они есть. Узел может считаться PROXY если он принимал и передавал данные как минимум двум другим узлам по одному и тому-же протоколу, каждому, т.е., например узлу 1 передавал и принимал по TCP, а узлу 2 по UDP. Прием по одному протоколу, а отправка по другому, одному и тому-же узлу, не допускается в работе PROXY. Пример: узел А и передавал и принимал данные от узла В по одному и тому-же протоколу (UDP или TCP). Также узал А и передавал и принимал данные от узла С по одному и тому-же протоколу (UDP или TCP), но протоколы коммуникации А<->В и A<->C могли и не совпадать. Т.о. можно сказать что узел A, возможно, был посредником (PROXY) в передаче данных между узлами В и С.

Записи с некорректными данными нужно не учитывать в расчетах.

Результат выполнения задания

Результат должен содержать следующие артефакты:

  • Исходный код, который был создан для выполнения задания и дающий ответ на вопросы задания, путем вывода на экран
  • Инструкция по запуску исходного кода + перечень необходимых программных компонент для его запуска
  • В случае использования платформы с компилируемым языком высокого уровня (С/C++/C#/golang/Java и т.п.) требуется приложить скопмилированный исполняемый файл или файл промежуточного представления (Java class/jar и т.п.)

Ограничения к выполнению задания

  • Нельзя использовать готовое ПО для анализа данных, СУБД и т.п., т.е. все расчеты должны быть выполнены самописным кодом, который явно показывает алгоритмы и структуры данных котоыре использовались

Общие положения

  • Можно использовать любые программные инструменты разработки (языки, библиотеки, IDE и т.п.), разрабатывать на любой платформе
  • Ориентировочное предполагаемое время на выполнение задания - 40-60 минут. Пожалуйста обратите внимание на слово "ориентировочное". Обычно это не должно занимать дольше, но ограничений - нет
  • Данное задание не является обязательным к прохождению, однако позволяет более точно определить квалификацию специалиста, что положительно влияет на оценку профессиональных навыков
  • Не располагайте результат Вашей работы на публично-доступных сервисах (например не fork-айте на GitHub)

traf_exercise's People

Contributors

cyboman32 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.