- •Лекция №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. Сетевая архитектура. Интерфейсы ndis и tdi [14.1] Место интерфейсов ndis и tdi в сетевой архитектуре [14.1.1] Интерфейс ndis
Рассмотрение сетевой архитектуры WinNT начнем с самого нижнего уровня – работы с сетевым оборудованием. Как говорилось на предыдущих лекциях, для того, чтобы NT могла использовать некоторое оборудование, нужен драйвер, работающий с этим оборудованием. При этом логика взаимодействия драйвера с сетевым оборудованием совершенно не зависит от того, какой информацией обменивается драйвер с оборудованием, т.е. не зависит от протоколов передачи данных.
В 1989 г Microsoft и 3Com совместно разработали спецификацию интерфейса взаимодействия между подуровнем MAC канального уровня модели OSI и драйверами протоколов, располагающихся на вышележащих уровнях. СтандартполучилназваниеNetwork Driver Interface Specification (NDIS).Он играет ключевую роль в сетевой архитектуре NT и служит для отделения логики взаимодействия с сетевым оборудованием от логики реализации транспортных протоколов.
В соответствии со спецификацией NDIS, имеется несколько типов драйверов:
FULL NIC Driver, такженазываемыйLegacy Driver.Отвечает за управление сетевой картой. Уже с начиная с NT 4.0 является устаревшим типом драйвера, использование которого следует избегать, а вместо него использовать драйвер минипорта. Тем не менее следует отметить, что стандартный драйвер работы с WAN (NDISWAN) в NT4 реализован как FULL NIC. Поддержка драйверов FULL NIC в ОС выше Win2K прекращена.
Драйвер минипорта (NDIS Miniport Driver, также называют Miniport NIC Driver). Отвечает за управление сетевой картой (NIC – Network Interface Card) и взаимодействие с драйверами вышележащего уровня.
Промежуточныйдрайвер(NDIS Intermediate Driver).Располагается между драйверами протоколов и драйверами минипорта. Для драйверов протоколов выглядит как минипорт, для драйверов минипорта – как драйвер протоколов.
Драйвер протокола (NDIS Protocol Driver). Реализует логику работы транспортных протоколов, таких как стеки протоколов tcp/ip или ipx/spx.
Реализация NDIS-драйверов
Для инициализации сетевого драйвера некоторого типа (минипорт, протокол, промежуточный драйвер), необходимо указать операционной системе множество точек входа в драйвер, соответствующих типу драйвера. Это делается с помощью вызова функций регистрации NDIS-драйвера NdisRegisterMac, NdisMRegisterMiniport, NdisMRegisterLayeredMiniport, NdisRegisterProtocol. Вся последующая работа такого драйвера заключается в вызове операционной системой его точек входа и в вызове из функций драйвера функций библиотеки NDIS.
Формально, NDIS-драйвер не имеет права пользоваться никакими функциями ядра, кроме функций, предоставляемых оболочкой NDIS. Это требование облегчает переносимость между различными платформами, поддерживающими NDIS. Фактически, NDIS-драйвер может пользоваться функциями ядра той ОС, для которой он создавался.
Библиотека NDIS является расширяемой. Каждая новая версия NDIS добавляет свой набор точек входа, поддержка которых должна быть обеспечена драйвером. В функции регистрации NDIS-драйвера указывается та версия NDIS, которой соответствует данный драйвер.
Минимальной версией NDIS, которой должен соответствовать сетевой драйвер для ОС NT4 и выше, является NDIS версии 3.0. На момент написания этого раздела последними версиями NDIS являлся NDIS 5.x. Среди нововведений, которые необходимо отметить для этой версии NDIS, являются понятия сериализованный/десериализованный минипорты, а также минипорты, ориентированные и не ориентированные на соединения (connection-oriented/connectionless miniports).