6 Реализация маршрутизатора на основе протокола RIP.
В качестве програмной среды для реализации был выбран C++ Builder 5.0 (Windows 95/98/2000/NT/XP/Millenium и выше). Язык С++ позволяет эффективно работать с различными типами данных, что необходимо для формирования RIP пакетов на байтовом и битовых уровнях. Использование в среде компонент Delphi и работы с Ansi строками сильно облегчает реализацию интерфейса пользователя (окна программы формируются визуально в специальном редакторе) и работы в сети (за счёт компоненты NMUDP).
Разрабатываемое приложение предназначено для работы подсетях глобальной сети Интернет и представляет собой программное обеспечение маршрутизатора.
6.1 Описание алшоритма работы сервиса RIP
Маршрутизатор RIP может находится в двух режимах:
1) пасивный режим;
2) активный режим.
Пассивный RIP-узел (по сути являющийся маршрутизатором) не отправляет сам объявления RIP, а только лишь обрабатывает полученные объявления RIP. Обработанные объявления RIP используются для построения таблицы маршрутизации для узла. На пассивных RIP-узлах не обязательно задавать основной шлюз.
В активном режиме RIP – маршрутизатор переодично обменивается маршрутной информацией с соседними маршрутизаторами.
Обмен сообщениями между маршрутизаторами происходит по порту 520.Программа находится в состоянии прослушивания всех сообщений по порту 520.
Опишем алгоритм работы RIP – маршрутизатора:
Для каждой записи в таблице маршрутов существует время жизни, контролируемое таймером. Если для любой конкретной сети, внесенной в таблицу маршрутов, в течение 180 с не получен вектор расстояний, подтверждающий или устанавливающий новое расстояние до данной сети, то сеть будет отмечена как недостижимая (расстояние равно бесконечности). Через определенное время модуль RIP
производит "сборку мусора" - удаляет из таблицы маршрутов все сети,расстояние до которых бесконечно.
При получении сообщения типа "ответ" для каждого содержащегося в нем элемента вектора расстояний модуль RIP выполняет следующие действия:
1) проверяет корректность адреса сети и маски, указанных в сообщении;
2) проверяет, не превышает ли метрика (расстояние до сети) бесконечности;
4) некорректный элемент игнорируется;
5) если метрика меньше бесконечности, она увеличивается на 1;
6) производится поиск сети, указанной в рассматриваемом элементе вектора расстояний, в таблице маршрутов;
7) если запись о такой сети в таблице маршрутов отсутствует и метрика в полученном элементе вектора меньше бесконечности, сеть вносится в таблицу маршрутов с указанной метрикой; в поле "Следующий маршрутизатор" заносится адрес маршрутизатора, приславшего сообщение; запускается таймер для этой записи в таблице;
8) если искомая запись присутствует в таблице с метрикой больше, чем объявленная в полученном векторе, в таблицу вносятся новые метрика и, соответственно, адрес следующего маршрутизатора; таймер для этой записи перезапускается;
9) если искомая запись присутствует в таблице и отправителем полученного вектора был маршрутизатор, указанный в поле "Следующий маршрутизатор" этой записи, то таймер для этой записи перезапускается; более того, если при этом метрика в таблице отличается от метрики в полученном векторе расстояний, в таблицу вносится значение метрики из полученного вектора;
10) во всех прочих случаях рассматриваемый элемент вектора расстояний игнорируется.
Сообщения типа "ответ" рассылаются модулем RIP каждые 30 с по широковещательному или мультикастинговому (только RIP-2) адресу; рассылка "ответа" может происходить также вне графика, если маршрутная таблица была изменена (triggered response). Стандарт требует, чтобы triggered response рассылался не немедленно после изменения таблицы маршрутов, а через случайный интервал длительностью от 1 до 5 с. Эта мера позволяет несколько снизить нагрузку на сеть.
Ниже представлен алгоритм работы сервиса RIP в блоксхемах:
6.2 Руководство системного администратора.
7 Технико – экономическое обоснованин.
7.1. Характеристика программного продукта
Разрабатываемая в дипломном проекте программа предназначена для маршрутизаторов. Основываясь на общепризнаном и одним из самых распространенных протоколов динамической маршрутизации RIP для IP, программа позволяет проводить объединение сетей. Объединенная сеть с маршрутизацией по протоколу RIP для IP использует протокол RIP для IP для динамического обмена информацией о маршрутизации между маршрутизаторами. Если при развертывании среды с протоколом RIP для IP были выполнены все необходимые для этого шаги, то по мере добавления и удаления сетей в объединенной сети для них будут автоматически добавляться и удаляться соответствующие маршруты. Необходимо обеспечить правильную настройку каждого маршрутизатора, чтобы все RIP-маршрутизаторы объединенной сети могли принимать и отправлять объявления RIP.
Альтернативой данной программе являются утилиты WinNT . По степени новизны решаемая задача относится к группе B (разработка проекта с использованием типовых проектных решений при условии их изменения, разработка проектов, имеющих аналогичные решения).
В разработке применен язык программирования сверхвысокого уровня С++ под Windows.
Необходимые для разработки программного продукта средства вычислительной техники: персональная ЭВМ на базе процессора Pentium с тактовой частотой 200 Мгц, 32 Мб оперативной памяти, HDD 3 Гб.
Для работы программы необходимо:
Операционные системы совместимые с Windows 95,NT. Работа программы не имеет смысла без наличия TCP/IP сети. Программа позволяет установить маршрутизатор как на Windows NT серверах так и на рабочих станциях..
Минимальные системные ресурсы требуемые для запуска Windows 95,98,NT это процессов i386, 4(16) Мб оперативной памяти. Для совместимых систем эти показатели могут быть другими.
Область применения разрабатываемого программного продукта: Несколько объединенных локальных сетей с одним или более выходами в глобальную сеть сеть с выделенными серверами и множеством сетевых устройств.
Предполагаемые пользователи системы: системный администратор.
7.2. Определение затрат труда на разработку программного продукта
Рассчитаем общую трудоемкость работ.
Используем систему коэффициентов для отдельных этапов разработки.
7.2.1. Определение условного количества операторов программы, трудоемкости
Т = То + Ти + Та + Тп + Тотл + Тд, (7.1)
где:
Т - общие затраты труда
То - затраты труда на описание задачи
Ти – затраты на исследование предметной области
Та – затраты на разработку блок-схем
Тп – затраты на программирование
Тотл – затраты на отладку
Тд – затраты на подготовку документации
Все составляющие определяем через условное число операторов - Q:
Q = q * c * ( 1 + p ) (7.2)
где q = 100 - число операторов,
Коэффициент сложности задачи c характеризует относительную сложность программы по отношению к так называемой типовой задаче, реализующей стандартные методы решения, сложность которой принята равной единице (величина с лежит в пределах от 1,25 до 2). Для программного продукта, включающего в себя алгоритмы учета, поиска сложность задачи возьмем 1,6.
c = 1,6 - коэффициент сложности программы,
Коэффициент коррекции программы p – увеличение объема работ за счет внесения изменений в алгоритм или программу по результатам уточнения постановок. В данном случае заказчик, хорошо представлял себе, что он хочет получить, это не требовало многочисленных доработок. С учетом этого возьмем коэффициент равный 0.1.
p = 0,1 - коэффициент коррекции программы в ходе разработки.
В результате получим условное число операторов.
Q = q×c×(1 + p) = 100×1,35×(1+ 0,05) = 176
Также используем следующие коэффициенты:
Коэффициент увеличения затрат труда в зависимости от сложности задачи принимается от 1,2 до 1,5, вследствие недостаточного описания решения задачи примем B = 1,3.
Коэффициент квалификации разработчика k определяется в зависимости от стажа работы и составляет: для работающих до двух лет - 0,8; от двух до трех лет - 1,0; от трех до пяти лет - 1,1 - 1,2; от пяти до семи - 1,3 - 1,4; свыше семи лет - 1,5 - 1,6. Разработчик, которому было поручено это задание, имел опыт работы по специальности 2 года, поэтому примем k = 1,0.