Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5.14.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.68 Mб
Скачать

Встроенная сетевая поддержка

Программы пользовательского режима (например, API ввода-вывода Win32) выдают запрос на удаленный ввод-вывод, вызывая базовые сервисы вво­да-вывода NT. После некоторой предварительной обработки диспетчер ввода-вывода создает пакет запроса ввода-вывода (IRP) и пе­редает его одному из зарегистрированных драйверов файловой системы, в данном случае редиректору Windows NT. Редиректор направляет пакет драйве­рам нижнего уровня (драйверам транспортов), которые обрабатывают его и передают по сети.

Когда запрос приходит на машину, работающую под управлением Windows NT, он принимается драйверами транспорта, после чего проходит еще через несколько драйверов

  1. Сетевые API. Разрешение имен.

Сетевые api

Рассмотрим, каким образом приложение получает доступ к сети. Windows NT предоставляет для этого несколько способов:

• API ввода-вывода Win32. Функции ввода-вывода выполняют стандарт­ные функции открытия, закрытия, чтения, записи и т. д. Соответствую­щие запросы проходят по сети только в том случае, когда файл или име­нованный канал находятся на удаленной машине. Как правило, это оз­начает, что имя файла является именем UNC или начинается с буквы, указывающей на диск на удаленной машине.

• Сетевые API Win32 (WNet). Эти функции полезны таким приложениям, как File Manager, которые выполняют соединение с удаленными файло­выми системами и их просмотр. Функции WNet можно использовать для просмотра файловых систем Microsoft и других по сетям LAN Manager, NetWare, VINES и т. д.

• Win32 API именованных каналов и почтовых ящиков. Именованные ка­налы обеспечивают высокоуровневый интерфейс передачи данных между двумя процессами, независимо от того, является ли принимаю­щая сторона локальной или удаленной. Почтовые ящики выполняют аналогичные функции, однако вместо обеспечения канала "один к од­ному" между принимающей и передающей сторонами они предостав­ляют механизмы связи "один ко многим" и "многие к одному". Почто­вые ящики полезны для посылки широковещательных сообщений про­извольному числу процессов.

• API NetBIOS. Эти API обеспечивают обратную совместимость для тех программ MS-DOS, 16-разрядной Windows и OS/2, которые пере­дают данные непосредственно по сети. Имеется также новая 32-разрядная версия.

• API Windows Sockets. Эти API реализуют 1б и 32-разрядные сокеты — стандартный сетевой интерфейс, используемый UNIX. Windows NT так­же содержит код нижнего уровня, обеспечивающий поддержку прило­жений UNIX и позволяющий легко осуществлять доступ к глобальной сети Internet.

• Средство удаленного вызова процедур (RPC). Соответствующая биб­лиотека периода выполнения и компилятор позволяют программис­там с легкостью создавать распределенные приложения .

Путь каждого из API к сети пролегает по разным маршрутам. Далее диспетчер ввода-вывода посылает IRP редиректору. В отличие от этого, API Windows Sockets и NetBIOS реализованы как DLL, которые вызывают сервисы ввода-вывода NT, и диспетчер ввода-вывода направляет IRP драйверам Windows Sockets и NetBIOS соответственно.

Вызовы API WNet (реализованного в виде DLL) проходят через сетевой компонент, называемый сервисом рабочей станции (work­station service). На сетевом жаргоне термин сервис (service) обозначает сервер­ный процесс, выполняющий некую конкретную функцию (в смысле "работу") и, возможно, экспортирующий API, который поддерживает эту функцию. Сервисы выполняют следующие функции:

• Администрирование встроенного редиректора — сервис рабочей стан­ции и сервера — сервис сервера (server service).

• Рассылка оповещений подключенным пользователям — сервис опове­щений (alerter service), например, при переполнении жесткого диска.

• Прием сообщений от других систем — сервис сообщений (messenger service), например, уведомлений о том, что завершено выполнение за­дания на печать.

Сервис — это процесс, похожий на защищенную подсистему Windows NT. Некоторые сервисы просто выполняются в фоновом режиме, в то время как другие предоставляют API, которые могут вызывать потоки других процессов, посылая сообщения данному сервису. В отличие от защищенных подсистем, сервисы, имеющие собственные API, для обмена сообщениями со своими клиен­тами обычно используют RPC, а не LPC. Применение RPC делает сервисы доступ­ными процессам как на локальной, так и на удаленной машине

Сервис рабочей станции является, в сущности, надстройкой пользователь­ского режима для редиректора Windows NT. Он поддерживает API WNet, предо­ставляет функции конфигурации редиректора и содержит код пользовательско­го режима для получения статистики редиректора. Когда приложение вызывает функцию API WNet, этот вызов вначале поступает сервису рабочей станции, а затем уже к диспетчеру ввода-вывода NT и далее к редиректору.

За загрузку и запуск сервисов Windows NT отвечает компонент, называе­мый контроллером сервисов (service controller). Он также предоставляет сред­ства загрузки и выгрузки драйверов, которые не загружаются при запуске систе­мы. Многие сетевые компоненты реализованы в виде драйверов и, таким обра­зом, загружаются в систему (и удаляются из нее) контроллером сервисов.

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