- •Лекция №14. Сетевая архитектура. Интерфейсы ndis и tdi [14.1] Место интерфейсов ndis и tdi в сетевой архитектуре [14.1.1] Интерфейс ndis
- •[14.1.2] Интерфейс tdi
- •[14.1.3] Среда Streams
- •[14.2] Сетевые службы (клиентыTdi)
- •[14.2.1] Службы доступа к сетевым ресурсам
- •[14.2.1.1] Mup
- •[14.2.1.2] Mpr
- •[14.2.2] Использование протоколов прикладными программами для реализации распределенных приложений (обмен данными по сети).
- •[14.3] Сетевые привязки
- •[14.4] Упрощенная схема общей сетевой архитектуры
[14.1.2] Интерфейс tdi
Итак, для взаимодействия с сетевым оборудованием драйверы протоколов взаимодействуют с NDIS. В свою очередь, желательно предусмотреть универсальный способ использования драйверов протоколов вышележащими сетевыми службами и прикладными программами.
Таким способом является интерфейс TDI (Transport Driver Interface – Интерфейс транспортного драйвера). Изначально этот интерфейс планировалось использовать в пользовательском режиме работы ОС. В окончательном варианте интерфейс стал работать в режиме ядра, однако все еще может быть использован напрямую из пользовательского уровня.
Использование интерфейса TDI сетевыми службами и прикладными программами заключается в отправке определенных кодов в/в.
Использование интерфейса TDI драйверами протоколов в основном заключается в определении набора диспетчерских функций для обработки приходящих от сетевых служб запросов IRP и набора функций TDI для взаимодействия компонентов TDI друг с другом.
TDI – единый программный интерфейс, предоставляемый Windows NT для взаимосвязи между транспортными драйверами и TDI-клиентами уровня ядра, такими как эмуляторы сетевых интерфейсов, редиректоры, серверы.
TDI - является сетевым интерфейсом уровня ядра, предоставляемым верхней частью любого транспортного стека протоколов Windows NT, и предназначенным для стандартизации способов взаимодействия сетевых служб уровня ядра с драйверами протоколов. TDI обеспечивает независимость TDI-клиентов от используемых ими транспортов. TDI поддерживает передачу как с установлением постоянного сеанса, так и без него.
Рис. 1

[14.1.3] Среда Streams
STREAMS, основанная на UNIX STREAMS, является средой для существующих STREAMS-совместимых транспортных драйверов, которая обеспечивает этим драйверам переносимость в ОС Windows NT из других ОС с незначительными модификациями или вовсе без изменений. Один или несколько драйверов, расположенных друг над другом, окружаются сверху и снизу средой Streams и формируют провайдера сетевого транспорта. Среда STREAMS обеспечивает:
Интерфейс TPI (Transport Provider Interface) - интерфейс верхней части транспортного стека. STREAMS транслирует этот интерфейс в “родной” интерфейс транспорта Windows NT - TDI.
Интерфейс DLPI (Data Link Provider Interface) - интерфейс нижней части транспортного стека. STREAMS транслирует этот интерфейс в “родной” для Windows NT интерфейс NDIS.
[14.2] Сетевые службы (клиентыTdi)
Методы использования протоколов посредством интерфейса TDI разбивается на 2 группы:
Реализация служб доступа к сетевым ресурсам. Прикладные программы будут пользоваться интерфейсами, предоставляемыми такими службами.
Использование протоколов прикладными программами для реализации распределенных приложений (обмен данными по сети).
[14.2.1] Службы доступа к сетевым ресурсам
При совместной работе компьютеров в сети компьютеры могут как предоставлять некоторый ресурс в совместное пользование, т.е. выступать в качестве сервера, так и обращаться к чужим ресурсам, т.е. выступать в качестве клиента. Для реализации таких возможностей в NT введены понятия редиректор и сервер. При получении имени сетевого ресурса от вышележащего программного обеспечения, редиректор направляет запрос некоторому нижележащему сетевому компоненту, и так далее вниз по цепочке до сетевого оборудования. По сети запрос поступает компьютеру, предоставляющему ресурс, где по цепочке сетевых компонентов он попадает к серверу. Сервер обрабатывает запрос путем взаимодействия с другими компонентами ОС (например, драйверами файловой системы, если произошло обращение к файлу), и возвращает результат вниз по цепочке.
Встроенный редиректор NT реализован как драйвер файловой системы (rdr.sys), что дает возможность приложению обращаться к локальным и сетевым ресурсам одинаковым образом.
Встроенный cервер NT реализован как обычный драйвер режима ядра (srv.sys).
Кроме того, существуют компоненты редиректора и сервера пользовательского режима, реализованные как сервисные процессы и находящиеся в файле services.exe (в числе прочих сервисов, таких как Browser, DHCP, LmHosts и др.).
Это общая модель взаимодействия. Однако она усложняется, поскольку может потребоваться как доступ к ресурсам, так и предоставление ресурсов различным ОС. В этом случае в ОС будет несколько различных редиректоров и серверов. Появляется необходимость в стандартизации использования редиректора вышележащим ПО.
Было избрано следующее решение этой задачи (рис. 2).
Рис. 2

