Le reti Windows e TCP/IP
La crescita e la diffusione di Internet unitamente alla necessità di integrare servizi LAN e servizi Internet, ha reso necessaria
l'adozione dell'architettura TCP/IP anche nelle reti locali.
Nelle reti Windows perciò e funzionalità di rete sono svolte da servizi che utilizzano
TCP/UDP come protocollo di trasporto e IP come protocollo di instradamento
In figura sono riportati i tre principali servizi e la loro interfaccia
verso TCP/IP
- il Server Service gestisce la condivisione di stampanti e file
- il Redirector Service (client), permette di visualizzare e utilizzare directory e unità a disco remote come fossero "locali"
- il Messenger Service governa lo scambio di messaggi di piccole dimensioni
L'interfaccia che permette a questi servizi di dialogare con TCP/IP è NetBIOS
su TCP o NETBT.
NetBT fornisce tre tipi di servizi
- NetBIOS Name Resolution
- NetBIOS Datagrams
- NetBIOS Sessions
Il Datagram Service usa la porta UDP 138 ed è usato dal Messenger per inviare/ricevere messaggi
di dimensioni limitate (512 bytes) in modalità non connessa, diretti ad un nodo della rete o
in broadcast.
Il Session Service è utilizzato da applicazioni come il Server Service che devono inviare
in rete grandi quantità di dati ( fino a 64Kb).
Il NetBIOS Name svolge due funzioni:
- Registrazione (Rilascio): eseguita quando un nodo TCP/IP si aggiunge alla rete ( o cambia nome). Il nodo registra il suo nome NetBIOS in rete inviando un broadcast. Questa procedura impedisce che due nodi abbiano nomi uguali: un'altro host con lo stesso nome
risponderebbe infatti con una "Negative Name Registration Response.
- Name Resolution: converte il nome di un oggetto di rete nell'indirizzo IP del nodo
su cui l'oggetto risiede.
Data l'importanze che questo servizio ricopre nelle retiWindows è opportuno un ulteriore approfondimento.
Il servizio di risoluzione nomi di Windows, diversamente da DNS, utilizza uno spazio di nomi "piatto":
un nome NetBios è composto di 16 caratteri di cui il sedicesimo indica il tipo di
oggetto (computer, servizio, stampante etc..).
Un nome inoltre può essere unico (U) o di gruppo (G)
NetBIOS usa un nome unico quando deve comunicare con un determionato processo su uno specifico
nodo della rete, mentre usa un nome di gruppo quando deve comunicare con più processi o più nodi simultaneamente.
Esempi di nomi unici sono il servizio Redirector, registrato con il nome del computer e il suffisso 00h, e il servizio Server, registrato con il
nome del computer e il suffisso 20h.
Un esempio di nome di gruppo e il nome di un dominio.
La procedura seguita da una stazione per risolvere un nome dipende dal tipo di nodo NetBIOS.
Esistono 4 tipi di nodo:
- B-node (broadcast) Utilizza messaggi broadcast. Questo meccanismo presenta due grossi svantaggi: se la rete è di grandi dimensioni appesantisce il carico e, cosa più grave, non è
in grado di attraversare i router, il che impedisce ad un nodo di comunicare con un'altro posto "al di là" di un router
- P-node (peer-peer) - Utilizza un server di nomi (NBNS, NetBIOS Name Server), a cui indirizza le richieste. Nel caso di Window, il NBNS è WINS (Window Internet Name Service). Lo svantaggio principale è che se il server WINS non funziona la comunicazione diventa impossibile
- M-node (mixed) E' una combinazione di B-node e P-Node. Per default funziona come B-Node, se non riesce a risolvere i il problema funziona come P-node
- H-node (hybrid), è una combinazione di P-node e B-node ma per default si comporta come un p-node
I computer basati su Windows sono per default B-node e diventano H-node solo se configurati per un server WINS.
Per rendere meno dispendioso il processo di risoluzione, specie nel caso in cui non c'è un server WINS, Microsoft ha inserito
nei suoi sistemi il file LMHOSTS. Si tratta di un file testo, da editare manualmente come il file HOSTS, che
contiene le corrispondenze fra nomi NetBIOS e indirizzi IP.
Per riepilogare possiamo dire allora che un client Microsoft che deve risolvere un nome di rete,
esegue nell'ordine i seguenti passi :
- Consulta la cache
- Consulta il server WINS, se c'è
- Fa broadcast
- Consulta LMHOSTS
La tabella dei nomi NetBIOS locali di una macchina è visualizzabile con il comando
netbstat -n
mentre i nomi presenti nella cache, relativi ad altri computer sono
visualizzabili col comando
netbstat -c
Nei sistemi Windows la lista dei nomi NetBIOS è affidata al Master Browse,
("MSBrowse" , 01h, G), un servizio installato su un computer, di
solito un server, chiamato Computer Browse, che viene eletto automaticamente
all'avvio della rete.
L' elenco viene aggiornato secondo queste
modalità.
- Dopo la sua elezione il MB invia un annuncio ai pc della rete che rispondono ad intervalli casuali (max 30 sec)
- Ogni computer all'avvio annuncia la sua presenza e le condivisioni
- Ogni computer comunica con un annuncio al MB le nuove condivisioni
- Ogni computer comunica periodicamente la propria presenza al MB a
intervalli di 1 min, 2 min, 4 min, 8 min, 12 min. Se Il MB non riceve
notizie per tre periodi consecutivi il computer viene eliminato dalla
lista.
Prima dell'avvento di Windows 2000 la risoluzione di nomi nelle reti con macchine Windows
richiedeva necessariamente NetBios, con la conseguenza che le reti Windows
dovevano utilizzare due spazi di nomi uno, piatto, al loro interno e uno strutturato, il DNS, all'esterno. Il problemi
che questo fatto comportava erano principalmente due:
- L'uso frequente di Broadcast
- I nomi NetBios non potevano "oltrepassare" i routers
Per questo motivo oggi le reti Windows 2000/2003 non richiedono più NetBIOS e
possono essere configurate con il DNS, a meno che non siano presenti stazioni con versioni precedenti a Windows 2000.
(occorre comunque disattivare esplicitamente NetBIOS)