- •5. Сетевые службы и межсетевое взаимодействие
- •5.1. Задачи сетевого протокола
- •5.2. Задача маршрутизации
- •5.2.1. Таблицы маршрутизации
- •5.2.2. Классификация методов маршрутизации
- •5.3. Алгоритмы нахождения кратчайшего пути
- •5.3.1. Алгоритм Беллмана-Форда
- •5.3.2. Использование алгоритма Белмана-Форда в протоколах маршрутизации
- •5.3.3. Алгоритм Дейкстры
- •5.3.4. Применение алгоритма Дейкстры в протоколах маршрутизации
5. Сетевые службы и межсетевое взаимодействие
5.1. Задачи сетевого протокола
Глобальные, территориальные, корпоративные сети создаются для передачи данных между конечными станциями, входящими в состав разных локальных сетей. Здесь и далее в этом разделе термин «локальная сеть» будет использоваться для обозначения совокупности узлов, обмен данными между которыми может быть обеспечен протоколами и устройствами физического и канального уровней (т.е. совокупность узлов, для которых широковещательный трафик канального уровня является общим). Локальные сети, даже коммутируемые, плохо масштабируются, поскольку при увеличении числа станций уровень широковещательного трафика в них и MAC-таблицы коммутаторов становятся слишком большими. Поэтому, взаимодействие хостов, принадлежащих разным локальным сетям, требует устройств межсетевой связи (шлюзы, маршрутизаторы), ограничивающих распространение широковещательного трафика границами локальных сетей. В свою очередь, сохранение на приемлемом уровне трудоемкости поиска конкретного узла в объединенной сети требует системы их адресации не на основе физических адресов, а на основе неких логических сущностей, представляющих определенную совокупность физических устройств. Механизмы, обеспечивающие передачу трафика между узлами такой объединенной сети, реализуются протоколами межсетевой связи (сетевого уровня стека).
В соответствии с моделью взаимодействия открытых систем (рис. 5.1), сетевой уровень обеспечивает сервис передачи данных в среде, являющейся совокупностью взаимосвязанных локальных сетей. Механизмы реализации этого сервиса должны быть прозрачными для транспортных протоколов и, одновременно, они не должны зависеть от технологий канального уровня, которые могут быть различны в разных локальных сетях.
Различия в задачах приложений обусловливают разные требования к сервису межсетевого взаимодействия. Нетрудно привести примеры приложений, которые могут требовать:
передачу блоков данных с качеством «по возможности наилучшим», т.е. с ненормированной задержкой и без гарантий упорядоченности отдельных его частей (например, короткие транзакции в клиент-серверных приложениях, когда каждое сообщение "упаковывается" в один протокольный блок);
доставку данных с минимальной и постоянной задержкой (приложения передачи аудио- и видеоинформации в реальном времени);
доставку данных с высокой надежностью (передача файлов, транзакции в банковских системах), иногда с дополнительными требованиями к задержке и скорости передачи.
Конечно, перечисленные требования приложений удовлетворяются протоколами не только уровня межсетевой связи. Более того, существуют достаточно весомые аргументы в пользу ограничения возможностей сетевых протоколов. Прежде всего, это масштабируемость сети; действительно, отсутствие излишне сложных функций, реализуемых при межсетевом обмене, облегчает построение на одном и том же наборе процедур объединенных сетей самого разного масштаба. Но существует совокупность задач, которые обязательно должны решать протоколы этого уровня. В их числе:
логическая адресация хостов и их совокупностей,
определение маршрута передачи пакета в объединенной сети,
продвижение пакета по выбранному маршруту с заданным качеством доставки,
управление интенсивностью межсетевых потоков с целью предотвращения перегрузок.
Решение большей части этих задач имеет определенную специфику, связанную с технологией создания логических каналов связи между конечными узлами в распределенной сети – с предварительным установлением соединения или без него. Сеть без предварительного установления соединения решает задачи маршрутизации и продвижения в отношении каждого пакета индивидуально на каждом узле маршрутизации. Сеть, в которой предусмотрен этап предварительного установления соединения, в ходе его реализации решает и задачу определения и фиксации маршрута между конечными узлами, что обеспечивает постоянство пути всех пакетов потока, для которого соединение устанавливалось.
При продвижении пакетов сетевые протоколы могут либо контролировать их целостность и упорядоченность следования, либо не заниматься этим, обеспечивая передачу «как получится».
Технология создания логического канала между конечными узлами (с предварительным соединением или без) и уровень надежности передачи (гарантированная и "как получится") являются двумя независимыми измерениями (характеристиками) межсетевого взаимодействия. Наличие по каждому из измерений двух состояний дает возможность определения четырех вариантов сетевого сервиса, однако он, в большинстве случаев, реализуется только в двух формах:
передача пакетов без предварительного установления соединения с надежностью «как получится» (дейтаграммный сервис, best efforts service) и
передача с предварительным установлением соединения и с гарантированной надежностью доставки (сервис виртуального канала).
Дейтаграммный сервис проще в реализации и более устойчив к изменениям топологии сети. В силу простоты, такая служба может быть использована приложением в любой необходимый момент, поскольку не нуждается в предварительном информировании сетевого уровня о намерении передавать данные. Дейтаграммный сервис предъявляет минимальные требования и к сервису канального уровня; в такой сети надежность передачи данных между конечными системами обеспечивают процедуры транспортного или прикладного уровня.
Сервис виртуального канала предполагает получение сетевым протоколом предварительного запроса на передачу данных и, возможно, требований к качеству их доставки. Вычислив маршрут доставки, сетевой протокол закрепляет его за определенным потоком (устанавливает соединение), что гарантирует верный порядок доставки пакетов и способствует стабилизации их задержки в сети. На этапе установления соединения сетевой протокол может производить согласование параметров источника данных и требуемых параметров качества доставки его пакетов с возможностями сети. На этом этапе все коммутационные устройства, принимающие участие в формировании маршрута между конечными станциями, производят резервирование своих ресурсов (буферная память, процессорное время, пропускная способность интерфейсов и т.д.) для данного соединения. Для учета задействованных ресурсов и контроля открытых соединений сетевой протокол на каждом узле ведет таблицу соединений. Такой протокол также должен иметь процедуру ликвидации соединения, которая освободит зарезервированные ресурсы. Даже из этого краткого рассмотрения хорошо видно, что реализация сервиса виртуального канала требует от сетевых узлов заметно большего интеллекта, чем это необходимо для поддержания дейтаграммного сервиса.
Сетевой уровень должен также выполнять свою часть работы по предупреждению перегрузок сети. Для этого в него включаются механизмы мониторинга потоков и управления их интенсивностью. Эти механизмы будут более сложными в протоколах сети, которая должна не только передавать блоки данных, но и гарантировать определенный уровень качества их доставки (надежность, скорость передачи, задержку доставки).
