Il networking di NT in dettaglio 1/2

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

L'implementazione delle API

Le API di rete sono interfacce usate dalle applicazioni per dialogare vicendevolmente attraverso la rete. Si devono affidare a un protocollo di trasporto, che definisce una modalità indipendente dall'applicazione (ovvero indipendente dall'interfaccia) tale da consentire ai computer di identificarsi vicendevolmente e quindi di trasferire i dati tra una macchina e l'altra. I protocolli di trasporto comprendono quelli TCP/IP, NetBEUI e IPX/SPX.

Prima di poter utilizzare una API di rete, l'applicazione deve collegarsi alle librerie che la rendono disponibile. Per esempio, un programma basato su Winsock si potrebbe collegare con molte librerie, tra cui quelle ws_32.dll, wsock32.dll, mswsock32.dll, msafd.dll e wshelp.dll. L'applicazione chiama le funzioni definite dalle librerie per creare i socket, assegna loro un indirizzo di rete e si collega ai socket su altri computer. Le librerie Winsock non compiono da sole tutte queste funzioni, ma - per il grosso della gestione socket - si basano su un device driver in modalità kernel, che è costituito da afd.sys (ovvero il driver funzione associato - AFD).

Perchè Winsock ripartisce le operazioni in questo modo? Quale device driver in modalità kernel, afd.sys può chiamare i servizi dell'I/O Manager di NT per basare i socket sugli oggetti file del sistema operativo; utilizzando questi ultimi quale nocciolo del socket, Winsock si può basare su molti aspetti dell'infrastruttura di I/O di Windows NT - comprese le interfacce e i meccanismi di sicurezza - per integrare più strettamente la API con il sistema operativo. Per esempio, le applicazioni possono usare le API NT native ReadFile e WriteFile per leggere e scrivere i dati attraverso un socket; queste API sono le stesse che vengono usate da NT per l'I/O dei file basato su disco. Tutte le loro caratteristiche, compreso il funzionamento asincrono, rimangono automaticamente a disposizione delle applicazioni basate su Winsock. Per integrarsi con l'I/O Manager, afd.sys viene implementato sotto forma di un driver del file system NT.

Le API named pipe e mailslot presentano altri esempi di suddivisione tra la modalità utente e quella kernel. Le applicazioni che le utilizzano si collegano alla libreria kernel32.dll per accedere alle API. Questa libreria implementa le API con l'aiuto dei device driver in modalità kernel npfs.sys e msfs.sys, che sono dei driver di file system. Le connessioni possono essere indovinate da i nomi dei driver: NPFS (Named Pipe File System) e MSFS (Mail Slot File System). I punti terminali di named pipe e mailslot si basano quindi su oggetti file NT e risultano accessibili attraverso le API standard collegate ai file. In effetti, npfs.sys implementa uno spazio di nomi di pipe, in modo che i programmi possano ottenere un listato di directory (utilizzando le attività standard di directory orientate ai file) delle pipe definite dal sistema.

I servizi Workstation e Server sono ovvi candidati per i driver del file system in modalità kernel; entrambi dispongono di questi componenti. Sul lato client di una condivisione di file, le applicazioni accedono ai file posti in rete attraverso le API del file system di NT. Gli oggetti file che rappresentano i file della rete vengono implementati con l'aiuto del device driver rdr.sys (redirector - RDR), il quale è di un passo più vicino ai driver del file system rispetto agli altri driver API di rete che sono stati esaminati in precedenza. Rdr.sys utilizza il cache manager di NT per compiere il caching dei dati associati ai file cui accede il client che li condivide. Quando l'applicazione accede a dati che non vengono sottoposti a caching sul client, rdr.sys invia dei comandi SMB alla sua controparte (srv.sys) sul file server. Srv.sys è meno simile ai driver del file system rispetto a un client del file system. Come i programmi in modalità utente, srv.sys accede ai file sul server attraverso alcuni driver fisici del file system, come quelli FAT (File Allocation Table) e NTFS (NT File System). In ogni caso, srv.sys utilizza alcune interfacce speciali che gli vengono fornite in modo esclusivo dai driver fisici del file system, comprese alcune API che consentono a srv.sys di mantenere la coerenza dei dati tra i client che accedono allo stesso file.

Immagine

La figura 2 illustra il flusso di una richiesta da un client di servizio Workstation a un server di servizio Server.

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC