Проект при разработке был развёрнут внутри docker контейнера в среде Linux
Задание: Должна реализовать функционал классификации сетевых пакетов, для этого она должна проделать следующие действия:
- С помощью библиотеки libpcap (либо другой на выбор разработчика) прочитать пакеты из pcap файла. Возможность захвата пакетов с сетевого интерфейса будет дополнительным преимуществом при оценивании.
- Выделить из них заголовки IP пакетов и заголовки TCP|UDP.
- Из выделенных заголовков прочитать IP адреса и порты.
- Каждый пакет классифицировать к потоку (совокупности пакетов от IP адреса №1 до IP адреса №2 с уникальной комбинацией портов).
- В каждом потоке посчитать количество пакетов и количество переданных байт.
- После завершения чтения всех пакетов информацию о всех выделенных потоках необходимо записать в CSV файл.
Примечание №1 по Программе №1: Необходимо классифицировать только IPv4 пакеты. Примечание №2 по Программе №1: Формат CSV файла: <IP адрес источника>,<IP адрес получателя>,<порт источника>,<порт получателя>,<кол-во пакетов>, >,<кол-во байт>.
Использование: <исполняемый файл> <режим> <интерфейс или файл>
Режимы:
1 - режим захвата пакетов с сетевого интерфейса
2 - режим чтение пакетов из pcap файла
Задание: Запускается после завершения работы первой программы комплекса и должна выполнить постобработку полученных статистических сведений, для этого необходимо выполнять следующие действия:
- Прочитать CSV файл, сгенерированный Программой №1.
- Для каждого, представленного в файле, IP адреса подсчитать кол-во принятых и переданных байт и пакетов.
- Полученные данные записать в CSV файл.
Примечание №1 по Программе №2: Формат CSV файла: <IP адрес>,<кол-во принятых пакетов>,<кол-во принятых байт>,<кол-во переданных пакетов >,<кол-в переданных байт>.
Использование: python <исполняемый файл> <исходный CSV файл>