Смекни!
smekni.com

Разработка системы маршрутизации в глобальных сетях(протокол RIP для IP) (стр. 20 из 26)


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.