Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
seti_otvety_full.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1 Мб
Скачать
☆

36. Сетевой уровень. Управляющие алгоритмы маршрутизации. Выбор кратчайшего пути. Маршрутизация с учётом состояния линий.

Маршрутизация с учетом состояния линий

Маршрутизация на основе векторов расстояний использовалась в сети ARPANET вплоть до 1979 года, когда ее сменил алгоритм маршрутизации с учетом состояния линий. Отказаться от прежнего алгоритма пришлось по двум причинам. Во-первых, старый алгоритм при выборе пути не учитывал пропускную способность линий. Пока все линии имели пропускную способность 56 Кбит/с, в учете пропускной способности не было необходимости. Однако стали появляться линии со скоростью 230 Кбит/с, а затем и 1,544 Мбит/с, и не принимать во внимание пропускную способность стало невозможно. Конечно, можно было ввести пропускную способность в качестве множителя для единицы измерения, но имелась еще и другая проблема, заключавшаяся в том, что алгоритм слишком долго приходил к устойчивому состоянию (проблема счета до бесконечности). Поэтому он был заменен полностью новым алгоритмом, который сейчас называется маршрутизацией с учетом состояния линий. Варианты этого алгоритма широко применяются в наши дни.

В основе алгоритма лежит простая идея, ее можно изложить в пяти требованиях к маршрутизатору. Каждый маршрутизатор должен:

1. Обнаруживать своих соседей и узнавать их сетевые адреса.

2. Измерять задержку или стоимость связи с каждым из своих соседей.

3. Создавать пакет, содержащий всю собранную информацию.

4. Посылать этот пакет всем маршрутизаторам.

5. Вычислять кратчайший путь ко всем маршрутизаторам.

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

37. Службы и протоколы.

Службы и протоколы являются различными понятиями, хотя часто эти понятия смешиваются.

Служба (или сервис) — это набор примитивов (операций), которые более низкий уровень предоставляет более высокому. Служба определяет, какие именно операции уровень будет выполнять от лица своих пользователей, но никак не оговаривает, как должны реализовываться эти операции. Служба описывает интерфейс между двумя уровнями, в котором нижний уровень является поставщиком сервиса, а верхний — его потребителем.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]