Реализуйте эмулятор работы протокола RIP в виде консольного приложения.
Ваша автономная сеть (АС) из маршрутизаторов может быть сконфигурирована на основе файла
(например, .json
) либо генерироваться случайным образом каждый раз при запуске.
Каждый маршрутизатор должен иметь свой уникальный IP адрес. Это приложение не предполагает передачу данных по сети, поэтому IP адреса, как и связи между маршрутизаторами, могут быть произвольными.
Программа должна корректно работать с произвольной АС.
В конце работы программы для каждого маршрутизатора должна быть выведена таблица маршрутизации. Пример таблицы:
Final state of router 198.71.243.61 table:
[Source IP] [Destination IP] [Next Hop] [Metric]
198.71.243.61 122.136.243.149 42.162.54.248 4
198.71.243.61 157.105.66.180 42.162.54.248 2
198.71.243.61 229.28.61.15 42.162.54.248 3
198.71.243.61 42.162.54.248 42.162.54.248 1
Приведите скрин или лог работы программы.
todo
Выведите на консоль промежуточные этапы работы протокола: по каждому маршрутизатору должна быть выведена его текущая таблица маршрутизации.
Simulation step 3 of router 42.162.54.248
[Source IP] [Destination IP] [Next Hop] [Metric]
42.162.54.248 122.136.243.149 157.105.66.180 3
42.162.54.248 157.105.66.180 157.105.66.180 1
42.162.54.248 229.28.61.15 157.105.66.180 2
42.162.54.248 198.71.243.61 198.71.243.61 1
todo
Реализуйте имитацию работы маршрутизаторов в виде отдельных потоков на примере приложения, рассмотренного на занятии.
Бонус: Не используйте общую память, а вместо этого реализуйте общение потоков через сокеты (+3 балла).
Реализуйте программу, которая измеряет скорость передачи информации по протоколам TCP и UDP, а также выводит количество потерянных пакетов.
Программа состоит из двух частей: клиента и сервера. Клиент создает трафик случайным образом (т.е. генерируется случайная последовательность данных) и отправляет их на сервер. Сервер подсчитывает количество полученных данных и выводит результат. Время отправки указывается клиентом вместе с данными.
Ваше приложение должно иметь GUI.
Пример интерфейса:
todo
Пример интерфейса:
todo
Разработать приложение – транслятор портов. Трансляция осуществляется в соответствии с набором правил трансляции, заданных в конфигурационном файле. Каждое правило должно указывать, с какого порта на какие IP адрес и порт транслировать. При изменении конфигурационного файла новые правила должны вступать в действие, но установленные соединения не должны разрываться. В программе должен быть реализован GUI.
Пример GUI:
todo