Network Driver Interface Specification: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.1
 
(7 versioni intermedie di 5 utenti non mostrate)
Riga 1:
La '''Specifica di Interfaccia di Driver di rete''' ('''NDIS''') è un'[[Application programming interface|interfaccia per la programmazione di applicazioni]] (API) per [[schede di rete]] (NICs). È stata sviluppata da [[Microsoft]] e [[3Com]]: è utilizzata da [[Microsoft Windows]] e da vari progetti [[open source|open-source]] [[driver wrapper]] ''[[NDISwrapper]]'' e ''[[Project Evil]]'' permettono a molte schede compatibili con NDIS di essere usate con [[Linux]], [[FreeBSD]] e [[NetBSD]]. [[magnussoft ZETA]], un derivato di [[BeOS]], supporta un gran numero di driver NDIS.
 
== Storia e descrizione ==
La NDIS è una connessione logica di controllo [[Logical Link Control]] (LLC) che forma lo strato superiore dello strato di connessione dati nel [[livello datalink]] (livello 2 di 7) del [[modello OSI]], ed agisce come un'interfaccia tra i livelli 2 e 3 (il [[livello di rete]]). Il livello più basso è il driver del dispositivo di controllo di accesso sul media [[Media Access Control]] (MAC).
È stata sviluppata da [[Microsoft]] e [[3Com]]: è utilizzata da [[Microsoft Windows]] e da vari progetti [[open source]] driver wrapper ''[[NDISwrapper]]'' e ''Project Evil'' che permettono a molte schede compatibili con NDIS di essere usate con [[Linux]], [[FreeBSD]] e [[NetBSD]]. magnussoft ZETA, un derivato di [[BeOS]], supporta un gran numero di driver NDIS.
 
La NDIS è una libreriaconnessione logica di funzionicontrollo a[[Logical cuiLink spessoControl]] ci(LLC) siche riferisceforma comelo adstrato unsuperiore dello strato di connessione dati nel "[[Driverlivello wrapper|wrapperdatalink]]" che(livello nasconde2 ladi complessità dello strato sottostante7) del NIC[[modello hardwareOSI]] e serveagisce come un'interfaccia standard pertra i driverlivelli di2 protocolloe di3 (il [[livello 3di erete]]). ilIl livello deipiù driverbasso delè livelloil hardwaredriver MAC.del Undispositivo altrodi comunecontrollo LLCdi èaccesso l'interfacciasul [[OpenMedia Data-LinkAccess InterfaceControl]] (ODIMAC).
 
La NDIS è una libreria di funzioni a cui spesso ci si riferisce come a un "wrapper" che nasconde la complessità dello strato sottostante del NIC hardware e serve come interfaccia standard per i driver di protocollo di livello 3 e il livello dei driver del livello hardware MAC. Un altro comune LLC è l'interfaccia Open Data-Link Interface (ODI).
Seguono le versioni di NDIS, supportate dalle varie versioni di Windows:
 
Il traffico accettato dal NIC è controllato dal driver NDIS Miniport, mentre vari protocolli, come il [[TCP/IP]], sono implementati dai driver di protocollo della NDIS. Una singola miniport può essere associata con uno o più protocolli. Questo significa che il traffico che arriva nelnella miniport può essere ricevuto in parallelo da diversi driver di protocollo. Per esempio, [[pcap|Winpcap]] aggiunge un secondo driver di protocollo sul selezionatosulla miniport selezionata allo scopo di catturareintercettare i pacchetti in ingresso. Inoltre, è possibile simulare diversi NICsNIC virtuali implementando driver di miniporte che spediscono e ricevono traffico da un singolo fisico NIC fisico. Un esempio d'uso di driver di miniport virtuali è aggiungerel'aggiunta di NIC virtuali, ciascuno con differenti [[VLAN|Virtual LAN]]. Poiché le implementazioni non possono sapere in anticipo se altri driver riceveranno lo stesso buffer, uno deve trattare il buffer in ingresso come di sola lettura. Un driver che cambia il contenuto di un pacchetto, deve allocare il suo proprio buffer.
* NDIS 2.0: MS-DOS, Windows for Workgroups 3.1, OS/2
 
* NDIS 3.0: Windows for Workgroups 3.11
Un altro tipo di driver è quello intermedio della NDIS. I driver intermedi sono localizzati tra il MAC e il livello IP e possono controllare tutto il traffico che sarà accettato da una scheda di rete NIC. In pratica, i driver intermedi implementano entrambe le interfacce di miniport e protocollo. Il driver di miniport e il driver di protocollo comunicano realmente comunicano con il corrispondente protocollo e l'interfaccia miniport che risiede nel driver intermedio. QuestoQuesta scelta progettuale permette l'aggiunta di una catena di diversi driver intermedi tra la miniport e i driver di protocollo. Quindi, i venditori di driver devono stare attenti e non assumerepresumere che il traffico che essi spediscono fuoriall'esterno verso la successiva interfaccia sia implementato dall'ultimo driver nella catena. Allo scopo di scrivere applicazioni che usano la NDIS uno può usare gli esempi che accompagnano il Microsoft's [[Windows Driver Kit]] (WDK). L'esempio dedi filtro "PassThru" è un buon punto di inizio per i filtri intermedi poiché implementa tutti i dettagli necessari, richiesti nel tipo di driver, ma l'esempioquesto lascia semplicemente passare tutto il traffico attraverso verso il filtro successivo della catena.
 
== Cronologia revisioni ==
Seguono le versioni di NDIS, supportate dalle varie versioni di Windows<ref>{{Cita web|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/overview-of-ndis-versions|titolo=Overview of NDIS versions - Windows drivers|autore=aviviano|sito=docs.microsoft.com|lingua=en-us|accesso=2022-07-12}}</ref>:
 
* NDIS 2.0: [[MS-DOS]], [[Windows For Workgroups 3.1|Windows for Workgroups 3.1]], [[OS/2]]
* NDIS 3.0: [[Windows For Workgroups 3.11|Windows for Workgroups 3.11]]
* NDIS 3.1: [[Windows 95]]
* NDIS 4.0: Windows 95 OSR2, [[Windows NT 4.0|NT 4.0]]
* NDIS 5.0: [[Windows 98]], 98 SE, [[Windows Me|Me]], [[Windows 2000|2000]]
* NDIS 5.1: [[Windows XP]], [[Windows Server 2003|Server 2003]], [[Windows Embedded Compact|CE]]
* NDIS 5.2: Windows Server 2003 SP2
* NDIS 6.0: [[Windows Vista]]
* NDIS 6.1: Windows Vista SP1, [[Windows Server 2008|Server 2008]]
* 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]], version 1507
* NDIS 6.60: Windows 10, version 1607 e [[Windows Server 2016]]
* NDIS 6.70: Windows 10, version 1703
* NDIS 6.80: Windows 10, version 1709
* NDIS 6.81: Windows 10, version 1803
* NDIS 6.82: Windows 10, version 1809 e [[Windows Server 2019]]
* NDIS 6.83: Windows 10, version 1903 e [[Windows Server 2022]]
* NDIS 6.84: Windows 10, version 2004
* NDIS 6.85: Windows 10, version 21H2
* NDIS 6.86: [[Windows 11]], version 21H2
* NDIS 6.87: Windows 11, version 22H2
* NDIS 6.88: Windows Server 2022, version 23H2
* NDIS 6.89: Windows 11, version 24H2
 
== Note ==
Il traffico accettato dal NIC è controllato dal driver NDIS Miniport, mentre vari protocolli, come il [[TCP/IP]] sono implementati dai driver di protocollo della NDIS. Una singola miniport può essere associata con uno o più protocolli. Questo significa che il traffico che arriva nel miniport può essere ricevuto in parallelo da diversi driver di protocollo. Per esempio, [[pcap|Winpcap]] aggiunge un secondo driver di protocollo sul selezionato miniport allo scopo di catturare i pacchetti in ingresso. Inoltre, è possibile simulare diversi NICs virtuali implementando driver di miniporte che spediscono e ricevono traffico da un singolo fisico NIC. Un esempio d'uso di driver di miniport virtuali è aggiungere NIC virtuali, ciascuno con differenti [[VLAN|Virtual LAN]]. Poiché le implementazioni non possono sapere in anticipo se altri driver riceveranno lo stesso buffer, uno deve trattare il buffer in ingresso come di sola lettura. Un driver che cambia il contenuto di un pacchetto, deve allocare il suo proprio buffer.
<references/>
 
Un altro tipo di driver è quello intermedio della NDIS. I driver intermedi sono localizzati tra il MAC e il livello IP e possono controllare tutto il traffico che sarà accettato da una scheda di rete NIC. In pratica, i driver intermedi implementano entrambe le interfacce di miniport e protocollo. Il driver di miniport e il driver di protocollo realmente comunicano con il corrispondente protocollo e l'interfaccia miniport che risiede nel driver intermedio. Questo scelta progettuale permette l'aggiunta di una catena di diversi driver intermedi tra la miniport e i driver di protocollo. Quindi, i venditori di driver devono stare attenti e non assumere che il traffico che essi spediscono fuori verso la successiva interfaccia sia implementato dall'ultimo driver nella catena. Allo scopo di scrivere applicazioni che usano la NDIS uno può usare gli esempi che accompagnano il Microsoft's [[Windows Driver Kit]] (WDK). L'esempio de filtro "PassThru" è un buon punto di inizio per i filtri intermedi poiché implementa tutti i dettagli necessari, richiesti nel tipo di driver, ma l'esempio lascia semplicemente passare tutto il traffico attraverso verso il filtro successivo della catena.
 
==Voci correlate==
* [[Open Data-Link Interface]] (ODI)
* [[Uniform Driver Interface]] (UDI)
* [[Universal Network Device Interface]] (UNDI)
* [[PC/TCP Packet Driver]]
 
== Collegamenti esterni ==
* https://blogs.msdn.com/wndp/ Windows Core Networking
* https://web.archive.org/web/20160401203133/http://ndis.com/ NDIS Developer's Reference
* http://www.ndis.com/
* https://web.archive.org/web/20121018131150/http://msdn.microsoft.com/en-us/library/ms797120.aspx Microsoft MSDN Design Guide
* https://web.archive.org/web/20100627075714/http://www.wd-3.com/archive/ExtendingPassthru.htm Extending PassThru