Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети ЭВМ.doc
Скачиваний:
23
Добавлен:
22.11.2019
Размер:
621.57 Кб
Скачать

Функции протокола udp.

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

Ф ормат UDP дейтаграммы имеет следующий вид:

Межсетевой заголовок IP-пакета имеет длину 32 бита. Максимальная длина UDP дейтаграммы совпадает с максимальной длиной IP-пакета.

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

Применение протокола UDP по сравнению с TCP целесообразно в двух случаях:

  1. когда прикладной процесс сам обеспечивает контроль целостности переданных данных;

  2. когда накладные расходы на установление соединения по TCP выше расходов на повторную передачу данных по протоколу UDP.

Маршрутизация.

В архитектуре TCP/IP сети соединяются друг с другом коммутаторами IP-пакетов, которые называются шлюхами или маршрутизаторами. Основная задача маршрутизатора заключается в определении по специальному алгоритму адреса следующего маршрута. Для решения этой задачи каждый маршрутизатор должен располагать специальной таблицей маршрутов, то есть базой данных, содержащей информацию о маршрутах, которую необходимо периодически обновлять. Это связано с тем, что в Интернете используется дейтаграммный режим коммутации покетов, и поэтому пакеты, относящиеся к одному и тому же сообщению, могут доставляться различными маршрутизаторами, причем для каждого пакета должен быть выбран маршрут, оптимальный для текущего состояния сети. Можно сказать, что сети с архитектурой TCP/IP строятся на основе алгоритмов маршрутизации. Для практически каждой топологии сети обеспечение требует определенной динамики в маршрутизации.

Неожиданное изменение в связанности сети должно рассматриваться как штатная ситуация и обрабатываться соответствующим образом. То же самое относится к перегрузкам определенных направлений и отдельных линий связи, соединяющих сети.

Для алгоритма маршрутизации необходимыми считаются следующие свойства:

  1. Алгоритм маршрутизации должен распознавать отказ и восстановление каналов связи и других маршрутизаторов, и в случае возникновения отказа переключаться на другие подходящие маршруты, причем время переключения маршрутов должно быть меньше таймаута типичного пользователя протокола TCP (как правило, одна минута).

  2. Алгоритм маршрутизации должен исключить образование циклов и петель в назначаемых маршрутах как между соседними маршрутизаторами, там и для удаленных маршрутизаторов. При этом, в случае возникновения подобных эффектов, время их существования не должно превышать таймаут.

  3. Создаваемая управляющими сообщениями нагрузка не должна ощутимо сказываться на нормальной работе сети. Изменение состояния сети, которое может сказаться на нормальной работе в некоторой области сети, не должно оказывать воздействия на другие участки.

  4. Алгоритм маршрутизации должен обеспечивать эффективное использование сетевых ресурсов, например, при увеличении размеров сети изменение таблиц маршрутов производится по частям, то есть по сети передаются только дополнения и изменения к базе данных маршрутизации.

  5. Размер базы данных маршрутизации не должен превышать некоторое постоянное значение, не зависящее от топологии сети, умноженное на количество узлов и на среднюю связанность. Хороший алгоритм маршрутизации не должен требовать хранения полной базы данных по маршрутизации в каждом маршрутизаторе.

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

  7. Использование маршрутов по умолчанию, применяемых обычно для сокращения размеров таблиц маршрутизации, должно использоваться с осторожностью, так как оно может вызвать ряд проблем, связанных с возможностью появления циклов, петель и других нежелательных эффектов.

Помимо обладания перечисленными свойствами, алгоритм маршрутизации и маршрутизатор должны обеспечивать эффективное распределение собственных ресурсов по пропускной способности каналов и по объему буферных запоминающих устройств, использующихся для хранения ожидающих передачу пакетов. Например, недопустимо, чтобы высокоскоростной канал занял весь объем буферных запоминающих устройств, не оставив места для низкоскоростных каналов. В хороших алгоритмах маршрутизации необходим также учет поля типа услуг в заголовке IP-пакета. Маршрутизатор может назначить, таким образом, больший приоритет тем IP-пакетам, в которых передается служебная или управляющая информация. Алгоритм маршрутизации должен также обеспечить надежное определение состояния каналов связи в базовой сети, и , при необходимости, хостов. Пути передачи сообщений о таких событиях, как отказ или восстановление канала связи не должны требовать корректной работы алгоритма маршрутизации.

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

Внутренним протоколом маршрутизации называется конкретный вариант протокола маршрутизации, действующий внутри одной автономной системы (IGP – Interior Getaway Protocol). Для достижения адресата IP-пакеты могут проходить через маршрутизаторы нескольких автономных систем, поэтому автономные системы должны иметь возможность обмениваться информацией о своем состоянии друг с другом. Протокол для обмена служебной информацией между автономными системами называется внутренним протоколом маршрутизации (EGP).

Процедура выбора пути заложена в протоколе IP, причем на уровне IP весь путь неизвестен, а имеется лишь информация о том, к какому конкретному маршрутизатору требуется передать IP-пакет с известным адресом изначально. Просмотр маршрутных таблиц производится в три этапа:

  1. Ищется соответствие адреса, содержащегося в заголовке IP-пакета, адресу места назначения. В случае нахождения соответствия, пакет отправляется соответствующему маршрутизатору или непосредственно хосту.

  2. Ищется соответствие адреса, записанного в заголовке IP-пакета, адресу некоторой региональной сети места назначения. В этом случае одной записи в таблице маршрутов соответствуют все хосты, входящие в эту региональную сеть. В случае нахождения соответствия, пакет отправляется дальше по соответствующему пути.

  3. Если предусмотрен маршрут по умолчанию, то производится отправка по этому маршруту.

Существуют статический и динамический алгоритмы обновления маршрутных таблиц.

Статический алгоритм – способ маршрутизации, не изменяющийся при изменении топологии и состояния сети. Типичными алгоритмами такой простой маршрутизации являются алгоритмы случайной и лавинной маршрутизации. Случайная маршрутизация – передача данных в любом, случайным образом выбранном, направлении, за исключением направления, по которому прибыли данные. Лавинная маршрутизация – передача данных во всех направлениях, за исключением того, по которому они пришли. Лавинная маршрутизация гарантирует малое время доставки.

Маршрутизаторы, входящие в состав одной автономной системы, могут использовать алгоритмы динамической маршрутизации (алгоритмы Беллмана-Форда и Дейкстры). При работе этих алгоритмов каждой дуге графа ставится в соответствие некоторое число, называемое длиной дуги. Длина пути определяется суммой длин составляющих его дуг. Чаще всего в качестве метрик используется число переприемов или средняя задержка пакетов. Возможно так же использование пропускных способностей каналов связи, их надежности и других характеристик.

Маршрутизаторы, работающие по алгоритму Беллмана-Форда, хранят векторы длин кратчайших маршрутов для всех подсетей, входящих в состав объединенной сети. Периодически каждый маршрутизатор передает свой вектор соседним маршрутизаторам автономной системы. Элементы вектора, принятого от соседнего маршрутизатора, складываются с длинами исходящих линий связи. На основе этой информации строится новый вектор длин кратчайших маршрутов. Протоколы, работающие на основе этого алгоритма, довольно просты в реализации и требуют небольшого количества памяти и мощности процессора. Однако, при увеличении количества сетей, входящих в автономную систему, резко возрастает количество передаваемой по сети служебной информации. Алгоритм Беллмана-Форда часто обозначается как DV-алгоритм (Distance Vector).

Маршрутизаторы, работающие на основе алгоритма Дейкстры, сначала определяют кратчайшие маршруты по всем сетям автономной системы (SPF – алгоритм Shortest Path First). Для этого в каждом шлюзе строится полное дерево кратчайших путей с корнем в этом маршрутизаторе. При построении дерева первой включается дуга с наименьшей длиной. После того, как в маршрутизаторе построено дерево кратчайших путей, любые изменения характеристик линий связи или топологии сети приводят только к небольшим дополнительным вычислениям для корректировки дерева кратчайших путей. Шлюзы обмениваются только информацией о длинах используемых линий связи, поэтому объем передаваемых данных, необходимых для корректировки имеющейся информации, довольно мал и не зависит от числа сетей в автономной системе. Любой маршрутизатор отправляет такие служебные пакеты при помощи лавинной маршрутизации. При появлении в сети нового маршрутизатора или включения новой линии связи, изменение в топологи сети в течение некоторого времени не учитывается при маршрутизации. Это необходимо для того, чтобы информация о произвольных изменениях успела достигнуть всех маршрутизаторов автономной системы. Алгоритм Дейкстры по сравнению с алгоритмом Форда обеспечивает более точную оценку ситуации в сети, более оперативную реакцию на существенные изменения в сети и уменьшает зацикливание пакетов. Но вместе с тем сложнее в реализации и требует в несколько раз больше памяти.