Da quando la mancanza di supporto nativo per il networking nel DOS e in Windows 3.0 era tale da limitare la diffusione di questi sistemi operativi negli ambienti aziendali, creando spazio per le case produttrici di sistemi Unix e Novell, Microsoft ha imparato la lezione. Nella prima versione di Windows NT, il produttore ha quindi inserito direttamente una serie di opzioni di networking. Nel 1993, con il debutto della versione 3.1 di NT, ha quindi mantenuto la promessa di un sistema operativo già pronto per le configurazioni di networking client/server e peer-to-peer. NT 3.1 comprendeva un gran numero di diffuse interfacce API per la programmazione di rete, di protocolli di networking, oltre a un modello di driver per le schede di rete che ha facilitato il supporto di terze parti per l'hardware di rete Microsoft.
In quest'articolo verranno esaminati i vari strati che compongono l'architettura di rete di NT, in modo da analizzare il modo in cui quest'ultima implementa le varie API per la programmazione di rete. Si esaminerà in particolare il modo in cui queste API si interfacciano con i driver di protocollo e implementano i driver NIC (Network Interface Card). Verranno inoltre introdotte le descrizioni di alcune nuove funzionalità di networking offerte da Windows 2000 (precedentemente noto con il nome di Windows NT 5.0).
Le API di rete
Nel 1978, l'organizzazione ISO (International Standards Organization) ha introdotto il modello OSI (Open Systems Interconnection) per standardizzare in una serie di strati la definizione delle comunicazioni di rete. Questo modello è composto da sette strati di rete, illustrati dalla figura 1.
La figura indica come gli strati OSI si mappano su NT.
Quelli più in alto rappresentano dei livelli di astrazione più elevati. L'idea che sta alla base di questo modello è quella secondo cui gli strati più bassi trasformano in un livello più basso di astrazione le richieste che vengono dall'alto, mentre quelli più alti trasformano le richieste provenienti dal basso in un livello di astrazione più elevato. Il livello di astrazione più alto in assoluto esiste in corrispondenza dello strato dell'applicazione, che comprende le API per la programmazione di rete (per esempio, quelle RPC - Remote Procedure Call e i socket). Il livello più basso di astrazione esiste invece in corrispondenza dello strato fisico, nel quale le informazioni composte da bit e byte vengono trasmesse da un computer all'altro attraverso fili e cavi. La suddivisione in vari strati del networking consente di utilizzare un modello di interfacce standardizzate tra uno strato e l'altro, oltre che l'implementazione di strati flessibili e sostituibili.
Di solito, i progettisti dei sistemi operativi non suddividono il percorso di I/O della rete in sette strati ben definiti, come viene suggerito dal modello OSI. Per ottenere una maggiore semplicità e prestazioni migliori, i progettisti possono invece indicare uno strato nell'architettura di rete del sistema operativo, che corrisponda a vari strati OSI. La figura 1 mostra in quale modo l'architettura di rete di NT si possa ricondurre agli strati OSI. Lo strato più elevato dei tre che compongono NT è quello relativo alle API di rete, che offrono alle applicazioni un'interfaccia verso l'I/O di networking. Sebbene gli sviluppatori di queste ultime possano definire le proprie API di networking, è più semplice basarsi su una API standard. NT incorpora le seguenti API di networking: named pipe, mailslot, NetBIOS, Winsock, RPC, NetDDE (Network Dynamic Data Exchange), SMB (Server Message Block), DCOM (Distributed Component Object Model) e Message Queue.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.