UDP Broadcast Announce.
Каждый экземпляр программы с периодичностью 1 раз в 5 секунд рассылает UDP broadcast сообщение со следующей информацией:
- MAC ADDRESS, (6 bytes BE)
- Hostname string length, (1 byte)
- Hostname, (UTF-8 string)
- UNIX Timestamp,
Каждый экземпляр ведет актуальный список имеющихся в сети экземпляров других экземпляров, включая себя. И обновляет его каждые 5 секунд. Список сортируется по MAC address. Ведется счетчик пропущенных announce-packet от каждого хоста в списке, если количество пропущенных пакетов достигает 5, экземпляр ударяется из списка. На одном хосте может быть запущен только 1 экземпляр. При проектировании разнести по разным потокам серверную часть, клиентскую часть, вывод. Вывод можно оставить консольный.
Сделанную лабу оттестировать, и залить в репозиторий в свою папку в подпапку Lab1.
Реализовать распределённое вычисление числа п. Нужно на базе стека TCP/IP имитировать виртуальную token ring-сеть.
-
Инициализация (удобно с помощью UDP broadcast), генерация токена.
-
Каждый узел вычисляет 20 цифр в числе п. Нужно передать всё число п, вычисленное раньше, и прибавить свои 20 знаков.
-
Передача данных по TCP-протоколу, нужно установить TCP-соединение со следующим в кольце узлом, которому передаётся токен, и передать ему всю информацию. Возможная проблема: узел, которому принадлежит токен, может упасть.
-
Нужно реализовать регенерацию токена без передачи данных в broadcast'е на случай, когда узел умирает. Broadcast можно использовать только для конфигурации.
Задание делается в группах до семи человек, совместимость нужна внутри группы.