
- •Глава 9
- •В.Г.Олифер, н.А.Олифер. Сетевые операционные системы. Учебное пособие.-сПб.:бхв-Петербург, 2006.-536с.
- •В.А.Шеховцов. Операційні системи. Підручник .-к.:Виканавча група внv. 2005. 576с.
- •Столлингс в. Операционные системы. М.: Вильямс, 2001. -672с.
- •Глава 9 Сетевые средства операционных систем
- •9.1 Сетевые файловые системы
- •9.1.1 Принципы построения
- •9.1.2 Модель сетевой файловой системы
- •9.1.3 Интерфейс сетевой файловой службы
- •9.2 Вопросы реализации сетевой файловой системы
- •9.2.1 Размещение клиентов и серверов
- •9.2.2 Файловые серверы типа stateful и stateless
- •9.2.3 Кэширование
- •9.2.4 Репликация
- •9.2.5 Примеры сетевых файловых служб: ftp и nfs Протокол передачи файлов ftp
- •9.3 Служба каталогов
- •9.3.1 Назначение и принципы организации
- •9.3.2 Служба каталогов nds
- •9.4 Межсетевое взаимодействие
- •9.4.1 Основные подходы к организации межсетевого взаимодействия
- •9.4.2 Трансляция
- •9.4.3 Мультиплексирование стеков протоколов
- •9.4.4 Инкапсуляция протоколов
- •Задачи и упражнения
9.4.3 Мультиплексирование стеков протоколов
Другой подход к согласованию протоколов получил название мультиплексирования стеков протоколов. Он заключается в том, что в сетевое оборудование или в операционные системы серверов и рабочих станций встраиваются несколько стеков протоколов. Это позволяет клиентам и серверам выбирать для взаимодействия tVt протокол, который является для них общим.
Сравнивая мультиплексирование с уже рассмотренной выше трансляцией протоколов, можно заметить, что взаимодействие компьютеров, принадлежащих разным сетям, напоминает общение людей, говорящих на разных языках (рис. 10.12). Для достижения взаимопонимания они также могут использовать два подхода: пригласить переводчика (аналог транслирующего устройства) или перейти на язык собеседника, если они им владеют (аналог мультиплексирования стеков протоколов).
При мультиплексировании стеков протоколов на один из двух взаимодействующих компьютеров с различными стеками протоколов помещается коммуникаци-ч онный стек другого компьютера. На рис. 10.13 приведен пример взаимодействия клиентского компьютера сети В с сервером в своей сети и сервером сети А, работающей со стеком протоколов, полностью отличающимся от стека сети В. В клиентском компьютере.реализованы оба стека. Для того чтобы запрос от прикладного процесса был правильно обработан и направлен через соответствующий стек, необходимо наличие специального программного элемента — мультиплексора протоколов, называемого также менеджером протоколов. Менеджер должен уметь определять, к какой сети направляется запрос клиента. Для этого может использоваться служба имен сети, в которой отмечается принадлежность того или иного ресурса определенной сети с соответствующим стеком протоколов.
При использовании технологии мультиплексирования структура коммуникационных средств операционной системы может быть и более сложной. В общем случае на каждом уровне вместо одного протокола появляется целый набор протоколов и может существовать несколько мультиплексоров, выполняющих коммутацию между протоколами разных уровней. Например, рабочая станция, стек протоколов которой показан на'рис. 10.14, может через один сетевой адаптер получить доступ к сетям, работающим по протоколам NetBIOS, IP, IPX. Данная рабочая станция может быть клиентом сразу нескольких файловых серверов: NetWare (NCP), Windows NT (SMB) и Sun (NFS).
Предпосылкой для развития технологии мультиплексирования стеков протоколов стало появление строгих открытых описаний протоколов различных уровней и мёжуровневых интерфейсов, так что фирма-производитель при реализации «чужого» протокола может быть уверена, что ее продукт будет корректно взаимодействовать с продуктами других фирм по данному протоколу, этот протокол корректно впишется в стек и с ним будут нормально взаимодействовать протоколы соседних уровней.
Производителями операционных систем предпринимаются попытки стандартизации не только межуровневых интерфейсов, но и менеджеров протоколов. Наиболее известными стандартами являются менеджеры Network Driver Interface Specification — NDIS (первоначально— совместная разработка 3Com и Microsoft, версии NDIS 3.0 и 4.0 — реализации Microsoft), а также стандарт Open Data-Link Interface — ODI, представляющий совместную разработку компаний Novell и Apple. Эти менеджеры реализуют мультиплексирование протоколов канального уровня, реализованных в драйверах сетевых адаптеров. С помощью мультиплексора NDIS или ODI можно связать один драйвер сетевого адаптера с несколькими протоколами сетевого уровня, а также с несколькими однотипными сетевыми адаптерами.
Мультиплексирование протоколов реализует отношение «один ко многим», то есть один клиент с дополнительным стеком может обращаться ко всем серверам, поддерживающим этот стек, или один сервер с дополнительным стеком может предоставлять услуги многим клиентам.
При использовании мультиплексоров протоколов существуют два варианта размещения дополнительного стека протоколов — на одном или на другом взаимодействующем компьютере. Если дополнительный стек устанавливается на сервере, то этот сервер становится доступным для всех клиентов с этим стеком. При этом нужно тщательно оценивать влияние установки дополнительного продукта на производительность сервера.
Аналогично дополнительный стек на клиенте дает ему возможность устанавливать связи с другими серверами, использующими этот стек протоколов. При размещении дополнительного стека на клиентах вопросы производительности не так важны. Здесь более важными являются ограничения таких ресурсов, как память и дисковое пространство клиентских машин, а также затраты труда администратора на установку и поддержание дополнительных стеков в работоспособном состоянии на большом числе компьютеров.
Заметим, что при организации взаимодействия двух разнородных сетей в общем случае нужно решать две задачи согласования служб (рис. 10.15):
О обеспечение доступа клиентам сети А к ресурсам сети В; □ обеспечение доступа клиентам сети В к ресурсам сети А.
Эти задачи независимы, и их можно решать отдельно. В некоторых случаях требуется полное решение, например, чтобы пользователи UNIX-машин имели доступ к ресурсам серверов сети NetWare, а пользователи персональных машин имели доступ к ресурсам UNIX-хостов, в других же случаях достаточно обеспечить доступ клиентам из сети NetWare к ресурсам сети UNIX. Большинство имеющихся на рынке продуктов обеспечивает только однонаправленное согласование прикладных служб.
Рассмотрим возможные варианты размещения программных средств, реализующих взаимодействие двух сетей, которые основаны на мультиплексировании протоколов.
Введем обозначения: С — сервер, К — клиент, Д — дополнительный протокол (или протоколы), предоставляющий возможности межсетевого взаимодействия.
На рис. 10.16 показаны
оба возможных варианта однонаправленного
взаимодействия
АВ:
путем добавления нового стека к клиентам
сети А (рис. 10.16, а)
либо путем
присоединения «добавки» к серверам
сети В (рис. 10.16, б).
В первом случае, когда средства мультиплексирования протоколов располагаются на клиентских частях, только клиенты, снабженные такими средствами, могут обращаться к серверам сети В. При этом они могут обращаться к любому серверу сети В. Во втором случае, когда набор дополнительных стеков расположен на каком-либо сервере сети В, данный сервер может обслуживать всех клиентов сети А. (Очевидно, что серверы сети В без средств мультиплексирования не могут быть использованы клиентами сети А.
Примером «добавки», модифицирующей клиентскую часть, может служить популярное программное средство компании Microsoft Client Services for NetWare (CSNW), которое превращает клиента Windows NT в клиента серверов NetWare за счет установки клиентской части протокола NCP.
Примером расширения возможностей сетевого взаимодействия сервера является установка на сервер Windows NT продукта Microsoft File and Print Services for NetWare, который реализует серверную часть протокола NCP. Это позволяет клиентам NetWare обращаться к файлам и принтерам сервера Windows NT.
При мультиплексировании протоколов дополнительное программное обеспечение — соответствующие стеки протоколов — должно быть установлено на каждый компьютер, которому может потребоваться доступ к нескольким различным сетям. В некоторых операционных системах имеются средства борьбы с избыточностью, свойственной этому подходу. Операционная система может быть сконфигурирована для работы с несколькими стеками протоколов, но динамически загружаются только нужные.
С другой стороны, избыточность повышает надежность системы в целом, отказ компьютера с установленным дополнительным стеком не ведет к потере возможности межсетевого взаимодействия для других пользователей сети.
Важным преимуществом мультиплексирования является меньшее время выполнения запроса, чем при использовании шлюза. Это связано, во-первых, с отсутствием временных затрат на процедуру трансляции, а во-вторых, с тем, что при мультиплексировании на каждый запрос требуется только одна сетевая передача, в то время как при трансляции — две: запрос сначала передается на шлюз, а затем из шлюза на ресурсный сервер.
В принципе, при работе с несколькими стеками протоколов у пользователя может возникнуть проблема работы в незнакомой среде, с незнакомыми командами, правилами и методами адресации. Чаще всего разработчики операционных систем стремятся в какой-то степени облегчить жизнь пользователю в этой ситуации. Независимо от используемого протокола прикладного уровня (например, SMB или NCP) ему предоставляется один и тот же интуитивно понятный графический интерфейс, с помощью которого он просматривает и выбирает нужные удаленные ресурсы.
В табл. 10.1 приведены сравнительные характеристики двух подходов к реализации межсетевого взаимодействия.
Таблица 10.1. Сравнение методов трансляции и мультиплексирования протоколов
Метод |
Достоинства |
Недостатки |
Мультиплексирование протоколов
Трансляция протоколов (шлюзы, маршрутизаторы, коммутаторы) |
Более быстрый доступ; повышение надежности взаимодействия за счет установки стека на нескольких узлах сети; хорошо масштабируемое средство Сохранение привычной среды пользователей; отсутствие необходимости в дополни- тельном программном обес- печении на рабочих станциях; локализация всех проблем межсетевого взаимодействия; обеспечение возможности доступа к «чужим» ресурсам сразу для нескольких клиентов |
Усложнение администрирования и контроля доступа; высокая избыточность, требующая дополнительных ресурсов от рабочих станций; менее удобно для пользователя, чем шлюзы
Замедление работы; снижение надежности; плохая масшта- бируемость; необходимость в двух сетевых передачах для выполнения одного запроса |
|
|
|