Интерфейсы сетевых компоновок
Можно написать сетевой драйвер, который сможет посылать данные как на сетевую плату, так и в сеть. По сути, он будет объединять собственно драйвер и средства поддержки сетевого .протокола. Драйверы такого типа называют монолитными драйверами устройств. Но этот подход не рекомендуется во многом по тем же причинам, что и встраивание драйверов устройств в операционную систему. Гибкость обеспечивается только модульным подходом. Предположим, в драйвер вашей сетевой платы включены средства поддержки транспортного протокола. В этом случае, чтобы заменить или добавить еще один транспортный протокол, придется заменить драйвер. Такой подход неудобен, поскольку поддерживает только единственный транспортам протокол.
Поэтому вместо монолитных драйверов устройств в современных драйверах для "привязки" сетевых плат к транспортным протоколам используют другой инструмент- интерфейс сетевых компоновок. Как показано на рисунке, это интерфейс между драйвером сетевой платы и стеком транспортных протоколов (transport stack).
Сетевая интерфейсная плата |
Интерфейс сетевых компоновок позволяет нескольким протоколам связываться с единственным драйвером
Принцип его применения совершенно очевиден. Интерфейс сетевых компоновок связывает каждый установленный драйвер с каждым установленным транспортным протоколом. Названия этих связей (clump) зависят от типа сети. Так, в сетях NetWare их называют модулями, Обменом данных между модулями управляет программа, которую называют LAS в сетях NetWare и PROTMAN. SYS в Microsoft. Вся информация, необходимая интерфейсу компоновок, сохраняется в текстовом файле, таком как PROTOCOL. INI в сетях Microsoft или NET. CFG в NetWare. Однако если в драйверах используют стандартные значения параметров, то в этих файлах содержится совсем немного информации.
Звание "законодателя мод" в мире стандартов интерфейса сетевых компоновок оспаривают два конкурента: открытый интерфейс передачи данных (ODI) фирмы Novell и спецификация интерфейсов сетевых драйверов (NDIS) фирмы Microsoft. Принцип работы обоих, интерфейсов во многом сходен. Основное различие заключается в том, что драйверы ODI работают в реальном (незащищенном) режиме. Значит, они должны использовать первые 640 Кбайт памяти, установленной на машине, и не могут "договариваться" с другими драйверами. Напротив, драйверы NDIS функционируют в защищенном режиме и, следовательно, могут работать в многозадачном режиме вместе с прочими драйверами. Кроме того, они не используют дефицитную обычную память.
Дата добавления: 2015-08-11; просмотров: 766;