Теперь, когда вы имеете представление об архитектуре сети, рассмотрим ее более подробно. Следующий список содержит все элементы архитектуры сети:
• модуль сетевого интерфейса для поддержки 16-разрядных приложений (16-bit Thunk API) [47] . Windows XP обеспечивает полную сетевую поддержку с применением 32-разрядного кода. Тем не менее все еще существует необходимость поддержки 16-разрядных приложений. Этот модуль заменил 16-разрядный API Windows 3.х (известный под названием Winnet 16), обеспечивающий вызов 32-разрядного API посредством конвертера (см. раздел «Уровень Windows API» главы 11);
• сетевой интерфейс для 32-разрядных приложений (32-bit Network API). Все запросы приложения начинаются с этого модуля. Я не буду подробно рассказывать об API, однако следует отметить, что специалисты Microsoft сделали довольно много в области его реорганизации и упрощения. Пользователи вряд ли заметят эти изменения, разве что в производительности сети, но программисты определенно будут рады. API преобразует запрос приложения в один или несколько стандартизированных сетевых запросов. В создании сетевого интерфейса программирования (Network API) в Windows XP участвует довольно много файлов. Загрузка конкретных файлов зависит от конфигурации вашей сети. Наиболее важными файлами являются NETAPI.DLL и NETAPI32.DLL. Загрузка NETAPI32.DLL влечет за собой загрузку SECUR32.DLL (безопасность), NETRAP.DLL (удаленное администрирование), SAMLIB.DLL (администратор учетных записей), WS2_32.DLL и WSOCK32.DLL (32-разрядный сокет Windows), WLDAP32.DLL (упрощенный протокол доступа к каталогам) и DNSAPI.DLL (сервер доменных имен). Эти файлы обеспечивают большую часть низкоуровневых функций, необходимых для поддержки интерфейса программирования API;
• многопротокольный маршрутизатор (Multiple Provider Router – MPR). Вы наверняка будете использовать не один, а несколько протоколов в Windows XP. В частности (по крайней мере, теоретически), вы должны смешивать и объединять в одной сети драйверы с защищенным режимом. К примеру, вы можете соединить стандартные протоколы передачи данных NetBIOS и IPX/SPX. Кроме того, некоторые протоколы автоматически загружаются при запросе определенной сетевой службы. К этой категории относится протокол управления каналом передачи данных (Data Link Control – DLC), обеспечивающий взаимодействие с мэйнфреймами и сетевыми принтерами.
Для поддержки сетевых протоколов требуются провайдерские службы. Функция многопротокольного маршрутизатора MPR и состоит в том, чтобы принимать сетевые запросы от сетевого интерфейса API и пересылать их соответствующему провайдеру (Network Provider – NP). Определенная часть запроса указывает, к какому провайдеру следует обращаться. Однако некоторые запросы являются общими. К ним относится, например, запрос о статусе всей сети. В данном случае маршрутизатор MPR опрашивает все провайдерские службы по очереди, чтобы выполнить запрос необходимого приложения. Иногда запрос может содержать недостаточно информации для того, чтобы MPR мог определить, какой из провайдеров должен выполнить запрос приложения. В таком случае MPR «опрашивает» всех провайдеров и проверяет, способен ли кто-то из них выполнить запрос. Если ни один из установленных провайдеров не в состоянии сделать это, маршрутизатор MPR выдаст сообщение об ошибке.
Вы увидите, что файлы для поддержки многопротокольного маршрутизатора MPR находятся в файле MPR.DLL каталога \SYSTEM32. Файл MPNOTIFY.EXE загружает эту библиотеку во время запуска. Промежуточный файл, MPRUI.DLL, обеспечивает поддержку пользовательского интерфейса. Библиотека содержит диалоговые окна, которыми вы пользуетесь при подключении или отключении сетевого диска;
• провайдерская сетевая служба (NP). Провайдерская сетевая служба выполняет все запрашиваемые приложением функции, связанные с протоколами. Она устанавливает и разрывает соединения, выдает информацию о статусе сети и обеспечивает совместимый интерфейс для маршрутизаторов MPR. Приложение никогда не обращается к провайдерской службе, поскольку эту задачу решает исключительно многопротокольный маршрутизатор MPR. Несмотря на то что внутренняя структура провайдерской службы может быть различной, это не относится к предоставляемому ею интерфейсу. Данный механизм помогает Windows XP поддерживать сразу несколько протоколов. Код, используемый многопротокольным маршрутизатором MPR, может оставаться компактным и быстро исполняется, обеспечивая оптимальный трафик, поскольку не требуется специального обращения ни к одной из провайдерских служб. В случае, если провайдерская служба не способна выполнить запрос из-за ограничений в сетевом протоколе, она сообщает маршрутизатору MPR, что запрашиваемая служба недоступна. Провайдерскую службу также обновляет администратор файловой системы в статусе соединения. Таким образом программа Проводник узнает, что вы осуществили новое подключение;
• администратор файловой системы (Installable File System Manager – IFS). Когда IFS получает информацию об изменении статуса от провайдерской службы, он вызывает драйвер файловой системы сети FSD, чтобы обновить файл и другую системную информацию. Когда, например, провайдерская служба сообщает администратору файловой системы IFS об установке нового соединения, IFS запрашивает у FSD перечень файлов каталога. То же относится и к другим типам сетевых ресурсов, таким как принтеры. Помимо этого IFS выполняет свои обычные функции открытия файлов и управления запросами файловой системы. Многопротокольный маршрутизатор MPR «не знает», что делать с именем пути, поэтому передает подобные запросы через провайдерскую службу администратору файловой системы IFS для выполнения. Конечно, приложения могут получить доступ к IFS и другими способами. Маршрутизатор MPR оказывается задействованным только в случае, если специфические сетевые запросы требуют его вмешательства;
•
модуль драйверов файловых систем сети (File System Driver – FSD). Каждый сервер в сети может использовать уникальную файловую систему. NetWare и другие сети с архитектурой клиент-сервер применяют специальные файловые системы, которые способствуют повышению производительности, безопасности, надежности и объема выделяемой памяти. Windows XP не обладает исходными знаниями о потребностях таких запоминающих систем. Чтобы сохранить
совместимость в режиме доступа (consistency of access), в Windows XP существует транслятор для всех обращений к сети. Эту задачу выполняет модуль драйверов файловых систем сети FSD. Он преобразует непонятный код незнакомой файловой системы в код, распознаваемый Windows XP. Модуль FSD обычно состоит из специальных драйверов файловых систем и драйверов переадресации. Второй файл интерпретирует спецификации файловой системы для Windows XP. Обычно каждая провайдерская служба имеет один драйвер файловой системы сети FSD. Тем не менее это ограничение не является обязательным. Провайдерской службе может потребоваться доступ и к драйверу файловой системы FAT, и к драйверу файловой системы NTFS для сервера операционной системы Windows XP. В данном случае при установке средств сетевой поддержки Windows XP инсталлирует оба драйвера. Администратор файловой системы IFS также обращается к модулю FSD за поддержкой. Хотя провайдерская служба обычно запрашивает статус сети или информацию о соединении, администратор IFS удовлетворяет потребности приложений, такие как открытие файлов и чтение их содержимого. Два этих модуля, провайдерская служба и администратор файловой системы IFS, работают в тандеме, причем каждый из них играет совершенно отличную от другого роль;