Средства взаимодействия компьютеров в сети организованы в виде многоуровневой
структуры - стека протоколов. В однородной сети все компьютеры используют один и
тот же стек. В контексте межсетевого взаимодействия понятие "сеть"
можно определить как совокупность компьютеров, общающихся друг с другом с
помощью единого стека протоколов. Проблема возникает тогда, когда требуется
организовать взаимодействие компьютеров, принадлежащих разным сетям (в указанном
выше смысле), то есть организовать взаимодействие компьютеров, на которых
установлены разные стеки коммуникационных протоколов.
Задачи устранения неоднородности имеют некоторую специфику в зависимости от
того, к какому уровню модели OSI (информация о модели OSI приведена в
приложении) они относятся, и даже имеют разные названия. Задача объединения
транспортных подсистем, отвечающих только за передачу сообщений, обычно
называется internetworking.
Несколько другая проблема, называемая interoperability, возникает при
объединении сетей, использующих разные протоколы более высоких уровней. Как
сделать, например, возможным для клиентов сети Novell NetWare доступ к файловому
сервису Windows NT или работу с сервисом telnet ОС Unix?
Очевидно, что подобные проблемы весьма характерны для корпоративных сетей,
где в разных подразделениях часто работают разные сетевые операционные системы.
Проблема межсетевого взаимодействия может иметь разные внешние проявления, но
суть ее одна - несовпадение используемых коммуникационных протоколов. (Подробнее
о стеках коммуникационных протоколов читайте в приложении.) Например, эта
проблема возникает в сети, в которой используется только одна сетевая ОС, но в
которой транспортная подсистема неоднородна из-за того, что сеть включает в себя
фрагменты Ethernet, объединенные кольцом FDDI. Здесь в качестве
взаимодействующих сетей выступают группы компьютеров, использующие различные
протоколы канального и физического уровня, например, сеть Ethernet, сеть FDDI.
Равным образом проблема межсетевого взаимодействия может возникнуть в
однородной сети Ethernet, в которой установлено несколько сетевых ОС. В этом
случае, все компьютеры и все приложения используют для транспортировки сообщений
один и тот же набор протоколов, но взаимодействие клиентских и серверных частей
сетевых сервисов осуществляется по разным протоколам. Здесь компьютеры могут
быть отнесены к разным сетям, если у них различаются протоколы верхних уровней,
например, сеть Windows NT, сеть NetWare. Конечно, эти сети могут спокойно
сосуществовать, не мешая друг другу и мирно пользуясь общим транспортом. Однако,
если потребуется обеспечить доступ к данным файл-сервера NetWare для клиентов
Windows NT, администратор сети столкнется в необходимостью согласования сетевых
сервисов.
Существует три основных подхода к согласованию разных стеков протоколов:
- трансляция;
- мультиплексирование;
- инкапсуляция.
Трансляция обеспечивает согласование двух протоколов путем
преобразования (трансля- ции) сообщений, поступающих от одной сети, в формат
другой сети. Транслирующий элемент в качестве которого могут выступать,
например, программный или аппаратный шлюз, мост, коммутатор или маршрутизатор,
размещается между взаимодействующими сетями и служит посредником в их
"диалоге" (рисунок 1.1).
В зависимости от типа транслируемых протоколов процедура трансляции может
иметь разную степень сложности. Так, преобразование протокола Ethernet в
протокол Token Ring сводится к нескольким несложным действиям, главным образом
благодаря тому, что в обоих протоколах используется единая адресация узлов. А
вот трансляция протоколов сетевого уровня IP и IPX представляет собой гораздо
более сложный, интеллектуальный процесс, включающий не только преобразование
форматов сообщений, но и отображение адресов сетей и узлов, различным образом
трактуемых в этих протоколах.
Рис. 1.1. Пример трансляции протоколов
Следует отметить, что сложность трансляции зависит не от того, насколько
высокому уровню соответствуют транслируемые протоколы, а от того, насколько
сильно они различаются. Так, например, весьма сложной представляется трансляция
протоколов канального уровня ATM-Ethernet, именно поэтому для их согласования
используется не трансляция, а другие подходы.
К частному случаю трансляции протоколов может быть отнесен широко применяемый
подход с использованием общего протокола сетевого уровня (IP или IPX). Заголовок
сетевого уровня несет информацию, которая, дополняя информацию заголовка
канального уровня, позволяет выполнять преобразование протоколов канального
уровня. Процедура трансляции в данном случае выполняется маршрутизаторами,
причем помимо информации, содержащейся в заголовках транслируемых кадров, то
есть в заголовках канального уровня, дополнительно используется информация более
высокого уровня, извлекаемая из заголовков сетевого уровня.
Трансляцию протоколов могут выполнять различные устройства - мосты,
коммутаторы, маршрутизаторы, программные и аппаратные шлюзы. Часто транслятор
протоколов называют шлюзом в широком смысле, независимо от того, какие протоколы
он транслирует. В этом случае подчеркивается тот факт, что трансляция
осуществляется выделенным устройством, соединяющим две разнородные сети.
Другим подходом к согласованию коммуникационных протоколов является
технология мультиплексирования. Этот подход состоит в установке нескольких
дополнительных стеков протоколов на одной из конечных машин, участвующих во
взаимодействии (рисунок 1.2). Компьютер с несколькими стеками протоколов
использует для взаимодействия с другим компьютером тот стек, который понимает
этот компьютер.
Для того, чтобы запрос от прикладного процесса был правильно обработан и
направлен через соответствующий стек, необходимо наличие специального
программного элемента - мультиплексора протоколов. Мультиплексор должен
уметь определять, к какой сети направляется запрос клиента.
При использовании технологии мультиплексирования структура коммуникационных
средств операционной системы может быть и более сложной: мультиплексирование
осуществляется не на уровне стеков, а на уровне отдельных протоколов. В общем
случае на каждом уровне может быть установлено несколько протоколов, и для
каждого уровня может существовать собственный мультиплексор, выполняющий
коммутацию между протоколами соседних уровней. Например, рабочая станция может
получить доступ к сетям с протоколами NetBIOS, IP, IPX через один сетевой
адаптер. Аналогично сервер, поддерживающий прикладные протоколы NCP, SMB и NFS
может без проблем выполнять запросы рабочих станций сетей NetWare, Windows NT и
Sun одновременно.
Рис. 1.2. Мультиплексирование протоколов
Использование техники трансляции связано со следующими достоинствами:
- Не требуется устанавливать дополнительное программное обеспечение на рабочих
станциях.
- Сохраняется привычная среда пользователей и приложений, транслятор полностью
прозрачен для них.
- Все проблемы межсетевого взаимодействия локализованы, следовательно
упрощается администрирование, поиск неисправностей, обеспечение безопасности.
Недостатки согласования протоколов путем трансляции состоят в том, что:
- Транслятор замедляет работу из-за относительно больших временных затрат на
сложную процедуру трансляции, а также из-за ожидания запросов в очередях к
единственному элементу, через который проходит весь межсетевой трафик.
- Централизация обслуживания запросов к "чужой" сети снижает
надежность. Однако можно предусмотреть резервирование - использовать несколько
трансляторов.
- При увеличении числа пользователей и интенсивности обращений к ресурсам
другой сети резко снижается производительность - плохая масштабируемость.
Достоинства мультиплексирования по сравнению с трансляцией протоколов
заключаются в следующем:
- Запросы выполняются быстрее, за счет отсутствия очередей к единственному
межсетевому устройству и использования более простой, чем трансляция, процедуры
переключения на нужный протокол.
- Более надежный способ - при отказе стека на одном из компьютеров доступ к
ресурсам другой сети возможен посредством протоколов, установленных на других
компьютерах.
Недостатки данного подхода:
- Сложнее осуществляется администрирование и контроль доступа.
- Высокая избыточность требует дополнительных ресурсов от рабочих станций,
особенно если требуется установить несколько стеков для доступа к нескольким
сетям.
- Менее удобен для пользователей по сравнению с транслятором, так как требует
навыков работы с транспортными протоколами "чужих" сетей.
Инкапсуляция (encapsulation) или туннелирование (tunneling) -
это еще один метод решения задачи согласования сетей, который однако применим
только для согласования транспортных протоколов и только при определенных
ограничениях. Инкапсуляция может быть использована, когда две сети с одной
транспортной технологией необходимо соединить через сеть, использующую другую
транспортную технологию. В приведенном на рисунке 1.3 примере две сети с
протоколом NetBIOS нужно соединить через сеть TCP/IP. Необходимо обеспечить
только взаимодействие узлов двух сетей NetBIOS, а взаимодействие между узлами
NetBIOS и узлами сети TCP/IP не предусматривается. То есть, при инкапсуляции
промежуточная сеть используется только как транзитная транспортная система.
Рис. 1.3. Инкапсуляция протоколов сетевого уровня (вложение друг
в друга)
Метод инкапсуляции заключается в том, что пограничные маршрутизаторы, которые
подключают объединяемые сети к транзитной, упаковывают пакеты транспортного
протокола объединяемых сетей в пакеты транспортного протокола транзитной сети. В
данном случае пакеты NetBIOS упаковываются в пакеты TCP, как если бы пакеты
NetBIOS представляли собой сообщения протокола прикладного уровня. Затем пакеты
NetBIOS переносятся по сети TCP/IP до другого пограничного маршрутизатора.
Второй пограничный маршрутизатор выполняет обратную операцию - он извлекает
пакеты NetBIOS из пакетов TCP и отправляет их по сети назначения адресату.
Для реализации метода инкапсуляции пограничные маршрутизаторы должны быть
соответствующим образом сконфигурированы. Они должны знать, во-первых, IP-адреса
друг друга, во-вторых - NetBIOS-имена узлов объединяемых сетей. Имея такую
информацию, они могут принять решение о том, какие NetBIOS-пакеты нужно
переправить через транзитную сеть, какой IP-адрес указать в пакете, передаваемом
через транзитную сеть и каким образом доставить NetBIOS-пакет узлу назначения в
конечной сети.
Инкапсуляция может быть использована для транспортных протоколов любого
уровня. Например, протокол сетевого уровня Х.25 может быть инкапсулирован в
протокол транспортного уровня TCP, или же протокол сетевого уровня IP может быть
инкапсулирован в протокол сетевого уровня Х.25. Для согласования сетей на
сетевом уровне могут быть использованы многопротокольные и инкапсулирующие
маршрутизаторы, а также программные и аппаратные шлюзы.
Обычно инкапсуляция приводит к более простым и быстрым решениям по сравнению
с трансляцией, так как решает более частную задачу, не обеспечивая
взаимодействия с узлами транзитной сети.
|