LINUX.ORG.RU
ФорумJob

Демон под Linux для замера пропускной способности канала TCP (проект, удалённо)

 


1

1

Добрый день!

Задача: написать программу, которая представляет собой службу Linux (DAEMON) и предназначена для замера пропускной способности канала по TCP.

Замер пропускной способности производится за счёт генерации трафика с заданными параметрами (длительность, объём, формат) в прямом направлении, обратном направлении и одновременно в обоих направлениях. На одном конце канала находится зонд (COM-компонент Windows). На другом конце канала работает ответчик. В зависимости от платформы это может быть Windows-служба или Linux-демон. Зонд управляет всем процессом и производит замеры.

Windows-служба уже есть, нужно написать демон для Linux.

ТРЕБОВАНИЯ К ОТВЕТЧИКУ НА LINUX

Программа должна работать на максимально возможном числе операционных систем семейства Linux и, по крайней мере, на наиболее популярных.

Ответчик должен стартовать автоматически при загрузке системы. Должна быть предусмотрена возможность останова и старта в ручном режиме. При старте программа считывает из файла конфигурации (текстовый файл на диске) номера портов UDP и TCP, по которым демон будет взаимодействовать с зондом. Программа открывает UDP- и TCP-сокеты и устанавливают их в listen режим, слушающий по заданным номерам портов. Выполняемые программой действия, а также возникающие при работе ошибки записываются в log-файл.

UDP-сокет принимает запросы от зонда и возвращает текущее состояние ответчика (неизвестное состояние, TCP-сокет ожидает соединения, сеанс активен и др.).

TCP-сокет ожидает соединения. При открытии сеанса с зондом, программа закрывает сокет, предотвращая возможность открытия ещё одного TCP-соединения, и начинает принимать TCP-пакеты прикладного уровня (все форматы UDP- и TCP-пакетов документированы в h-файле). При получении недокументированного пакета соединение должно быть закрыто, а в log-файл произведена запись об этом событии (защита от соединения с неизвестным источником).

Ответчик может получать от зонда три типа пакетов, которые он опознает по структуре данных: 1. Пакет прямого трафика. Это пакет, который зонд посылает ответчику, загружая канал в прямом направлении. Ответчик должен только считать пакет из сокета. Никаких других действий не требуется. 2. Пакет с требованием начать генерацию обратного трафика (от ответчика к зонду). Получив пакет, ответчик запускает процесс (или поток) генерации трафика с заданными в пакете параметрами. 3. Пакет с требованием экстренного завершения генерации обратного трафика. В этом случае программа должна прекратить генерацию обратного трафика, если она ещё производится. При нормальном или аварийном закрытии TCP-сеанса программа записывает информацию об этом в log-файл и вновь открывает TCP сокет, переводит его в состояние Listen и готовит демон к открытию нового соединения.

Программа должна обеспечить максимальную производительность приёма и передачи пакетов трафика, используя параллельную архитектуру кода (потоки или процессы), синхронизирующиеся между собой и с событиями сокета при помощи объектов типа Critical Section, Event, Mutext и т.п., и не использовать искусственные задержки типа Sleep.

Имеется проект Microsoft Studio с исходными кодами Windows-службы – ответчика на платформе Windows. Создаваемый демон Linux должен являться полным функциональным аналогом. Создаваемый продукт должен быть протестирован разработчиком с использованием предоставляемого зонда.

----------------

КОНТАКТЫ:

Компания ProLAN http://prolan.ru

Москва, ул. Профсоюзная, 65.

Тел.: 8 (495) 933-12-89

Email: smm@prolan.ru, Александр

---------------

Срок исполнения: две недели. Для профессионала задача несложная. Оплата по договорённости. Работа удалённая, но если это возможно, желательно предварительно встретиться.

Ответ на: комментарий от catap

Ну, открыть-то всё, что угодно можно.. а ты их нагрузи, причем реалистично и так, чтобы замерам поверили :)

Keefay_lo ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.