Шлюзы Итак, шлюз согласует коммуникационные протоколы одного стека с коммуникационными протоколами другого стека. Программные средства, реализующие шлюз, нет смысла устанавливать ни на одном из двух взаимодействующих компьютеров с разными стеками протоколов, гораздо рациональнее разместить их на некотором компьютере-посреднике. Прежде, чем обосновать это утверждение, рассмотрим принцип работы шлюза. Рисунок иллюстрирует принцип функционирования шлюза. В показанном примере шлюз, размещенный на компьютере 2, согласовывает протоколы клиентского компьютера 1 сети А с протоколами серверного компьютера 3 сети В. Допустим, что две сети используют полностью отличающиеся стеки протоколов. Как видно из рисунка, в шлюзе реализованы оба стека протоколов.
Принципы функционирования шлюза
Запрос от прикладного процесса клиентского компьютера сети А поступает на прикладной уровень его стека протоколов. В соответствии с этим протоколом на прикладном уровне формируются соответствующий пакет (или несколько пакетов), в которых передается запрос на выполнение сервиса некоторому серверу сети В. Пакет прикладного уровня передается вниз по стеку компьютера сети А, а затем в соответствии с протоколами канального и физического уровней сети А поступает в компьютер 2, то есть в шлюз. Здесь он передается от самого нижнего к самому верхнему уровню стека протоколов сети А. Затем пакет прикладного уровня стека сети А преобразуется (транслируется) в пакет прикладного уровня серверного стека сети В. Алгоритм преобразования пакетов зависит от конкретных протоколов и, как уже было сказано, может быть достаточно сложным. В качестве общей информации, позволяющей корректно провести трансляцию, может использоваться, например, информация о символьном имени сервера и символьном имени запрашиваемого ресурса сервера (в частности, это может быть имя каталога файловой системы). Преобразованный пакет от верхнего уровня стека сети В передается к нижним уровням в соответствии с правилами этого стека, а затем по физическим линиям связи в соответствии с протоколами физического и канального уровней сети В поступает в другую сеть к нужному серверу. Ответ сервера преобразуется шлюзом аналогично.
Шлюзы IP-сетей За последние годы локальные сети масштаба предприятия увеличились в размерах и в настоящее время поддерживают жизненно необходимые для этих предприятий программы. Находясь на различных стадиях процесса интеграции сетей персональных компьютеров, организации-пользователи будут по разным причинам сталкиваться с необходимостью соединить хост-системы UNIX со своими сетями персональных компьютеров. На первых стадиях интеграции эти организации обычно просто хотят, чтобы пользователи UNIX-систем могли использовать недорогое периферийное оборудование, подключенное к сетям NetWare - принтеры, стриммеры и т.п. Важны также возможности перемещения и совместного использование файлов. Те организации, которые уже зашли достаточно далеко в процессе интеграции сетей, обычно начинают использовать хост-системы UNIX как файл-серверы или как системы конечного хранения и обработки баз данных. Рабочие станции персональных компьютеров в сети NetWare используют приложения предварительной обработки данных, имеющие доступ к базам данных хостов. И, наконец, в настоящее время многие организации хотели бы интегрировать приложения, работающие в их сетях персональных компьютеров, с приложениями хост-системы.
Проблемы соединения этих двух типов сетевых сред заключаются в том, что они используют различные стеки протоколов на всех уровнях, начиная с сетевого. Сети Novell NetWare используют протоколы IPX/SPX на сетевом уровне и протокол NCP на уровне взаимодействия верхних уровней клиентской и серверной частей ОС. В UNIX-сетях, как правило, используются протоколы стека DoD с сетевыми протоколам TCP/IP и такими протоколами уровня клиент-сервер, как telnet (эмуляция терминала), FTP (пересылка файлов) и популярный протокол NFS фирмы Sun, позволяющий монтировать удаленную файловую систему в локальное дерево каталогов.