Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Network Driver Interface Specification ( NDIS ) представляет собой интерфейс прикладного программирования (API) для контроллеров сетевого интерфейса (NIC).

Спецификация [ править ]

Он был разработан совместно Microsoft и 3Com Corporation и в основном используется в Microsoft Windows . Однако проекты оболочки NDISwrapper и Project Evil с открытым исходным кодом позволяют использовать многие NDIS-совместимые сетевые карты с Linux , FreeBSD и NetBSD . magnussoft ZETA , производная от BeOS , поддерживает ряд драйверов NDIS.

NDIS формирует подуровень управления логическим каналом (LLC), который является верхним подуровнем канального уровня OSI (уровень 2). Следовательно, NDIS действует как интерфейс между подуровнем управления доступом к среде (MAC), который является нижним подуровнем уровня канала данных, и сетевым уровнем (уровень 3).

NDIS - это библиотека функций, которую часто называют « оболочкой », которая скрывает базовую сложность оборудования NIC и служит стандартным интерфейсом для драйверов сетевого протокола уровня 3 и драйверов MAC уровня оборудования.

Версии NDIS, поддерживаемые различными версиями Windows, следующие: [1]

  • NDIS 2.0: MS-DOS , Windows для рабочих групп 3.1 , OS / 2
  • NDIS 3.0: Windows для рабочих групп 3.11
  • NDIS 3.1: Windows 95
  • NDIS 4.0: Windows 95 OSR2, NT 4.0 , Windows CE 3.0
  • NDIS 4.1: Windows 98
  • NDIS 5.0: Windows 98 SE , Me , 2000
  • NDIS 5.1: Windows XP , Server 2003 , Windows CE 4.x, 5.0, 6.0 [2]
  • NDIS 5.2: Windows Server 2003 с пакетом обновления 2 (SP2)
  • NDIS 6.0: Windows Vista
  • NDIS 6.1: Windows Vista с пакетом обновления 1 (SP1), Server 2008 , Windows Embedded Compact 7 , [3] Windows Embedded Compact 2013
  • NDIS 6.20: Windows 7 , Server 2008 R2
  • NDIS 6.30: Windows 8 , Windows Server 2012
  • NDIS 6.40: Windows 8.1 , Windows Server 2012 R2
  • NDIS 6.50: Windows 10 , версия 1507 [4]
  • NDIS 6.60: Windows 10, версия 1607 и Windows Server 2016 [4]
  • NDIS 6.70: Windows 10, версия 1703 [4]
  • NDIS 6.80: Windows 10, версия 1709 [4]
  • NDIS 6.81: Windows 10, версия 1803 [4]
  • NDIS 6.82: Windows 10, версия 1809 и Windows Server 2019 [4]
  • NDIS 6.83: Windows 10, версия 1903 [4]

Трафик, принимаемый сетевым адаптером, управляется драйвером минипорта NDIS [5], в то время как различные протоколы, такие как TCP / IP , реализуются драйверами протокола NDIS. [6] Один минипорт может быть связан с одним или несколькими протоколами. Это означает, что трафик, поступающий в минипорт, может приниматься параллельно несколькими драйверами протокола. Например, Winpcap добавляет второй драйвер протокола на выбранный минипорт для захвата входящих пакетов. Кроме того, можно смоделировать несколько виртуальных сетевых адаптеров, реализовав драйверы виртуального минипорта, которые отправляют и получают трафик от одного физического сетевого адаптера. Одним из примеров использования драйвера виртуального минипорта является добавление виртуальных сетевых адаптеров, каждая из которых имеет свою виртуальную локальную сеть.. Поскольку реализации не могут предполагать, что другие драйверы получили те же буферы, нужно рассматривать входящие буферы как только для чтения, а драйвер, который изменяет содержимое пакета, должен выделять свои собственные буферы.

Драйверы NDIS Miniport также могут использовать интерфейсы модели драйверов Windows для управления сетевым оборудованием. [7]

Другой тип драйвера - это промежуточный драйвер NDIS. Промежуточные драйверы находятся между уровнями MAC и IP и могут контролировать весь трафик, принимаемый сетевым адаптером. На практике промежуточные драйверы реализуют интерфейсы как минипорта, так и протокола. Драйвер минипорта и драйвер протокола фактически обмениваются данными с соответствующими интерфейсами минипорта и протокола, которые находятся в промежуточном драйвере. Эта конструкция позволяет добавлять несколько связанных промежуточных драйверов между драйверами минипорта и протокола. Поэтому производители драйверов не могут предполагать, что интерфейс, на который они отправляют трафик, реализован последним драйвером в цепочке. Для написания приложений с использованием NDIS можно использовать образцы, прилагаемые к Microsoft Windows Driver Kit.(WDK). Образец «PassThru» является хорошей отправной точкой для промежуточных драйверов, поскольку он реализует все необходимые детали, требуемые для этого типа драйвера, но просто передает трафик следующему драйверу в цепочке.

См. Также [ править ]

  • Открытый интерфейс передачи данных (ODI)
  • Единый интерфейс драйвера (UDI)
  • Универсальный интерфейс сетевых устройств (UNDI)
  • Пакетный драйвер ПК / TCP

Ссылки [ править ]

  1. ^ «Обзор версий NDIS - драйверы Windows» . docs.microsoft.com . Проверено 24 марта 2020 .
  2. ^ Сетевые драйверы (Windows Embedded CE 6.0)
  3. ^ Что нового (Windows Embedded Compact 7)
  4. ^ a b c d e f g "Обзор версий NDIS" . Microsoft . Проверено 28 июня 2019 .
  5. ^ https://docs.microsoft.com/en-us/windows-hardware/drivers/network/deserialized-ndis-miniport-drivers
  6. ^ https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-protocol-drivers
  7. ^ https://docs.microsoft.com/en-us/windows-hardware/drivers/network/ndis-miniport-drivers-with-a-wdm-lower-edge

Внешние ссылки [ править ]

  • Базовая сеть Windows
  • Драйверы NDIS
  • Руководство по проектированию Microsoft MSDN