IL PROTOCOLLO TCP/IP
|
|||||||
Il termine generico "TCP/IP"
usualmente dice tutto e niente,
relativamente ai protocolli specifici di TCP
ed IP.
Essi possono includere altri protocolli,
applicazioni e vari mezzi
fisici.
Esempi di questi protocolli sono: UDP, ARP e
ICMP.
Esempi di queste applicazioni sono: TELNET,
FTP ed rcp.
Il termine più appropriato è allora "tecnologia
internet".
Una rete che usa
la tecnologia internet viene detta una "internet".
Per comprendere questa tecnologia occorre prima comprendere la
seguente
struttura logica:
Figura 1. Nodo Base di
una rete TCP/IP
Questa è la struttura logica dei protocolli a strati sui computer
di una
internet.
Ciascun computer che vuole comunicare usando la tecnologia internet
segue questa struttura logica.
Si tratta di una struttura che determina il
comportamento del computer
sulla internet.
I rettangoli rappresentano il trattamento che
subiscono i dati quando
attraversano il computer e le linee che
collegano i rettangoli mostrano
il percorso seguito dai dati.
La linea orizzontale in basso rappresenta
il cavo Ethernet; il "o" è
il transceiver.
La "*" rappresenta l’indirizzo IP
mentre la "@" rappresenta l’indirizzo
Ethernet.
Capire questa struttura logica è essenziale
per la comprensione della tecnologia Internet e ciò è lo scopo di questa guida.
Il nome di una unità di dati che
fluisce attraverso una internet è
dipendente dalla pila di protocolli che viene attraversata.
In breve: su una Ethernet viene chiamato “frame
Ethernet”; fra il
driver Ethernet ed il modulo IP viene
chiamato “pacchetto IP”;
fra il
modulo IP ed il modulo UDP viene chiamato “datagramma
UDP”; fra il
modulo IP ed il modulo TCP viene chiamato “segmento
TCP” (o più
generalmente, “messaggio
di trasporto”); da e verso una applicazione di
rete viene invece chiamato “messaggio
di applicazione”.
Queste definizioni però sono imprecise.
Le attuali definizioni variano
da una pubblicazione all’altra. Più
precise definizioni possono essere
comunque trovate nell’RFC 1122, sezione 1.3.3.
Un
driver è un programma che comunica direttamente con l’interfaccia
hardware di rete. Un modulo è un programma
che comunica con un driver,
con le applicazioni di rete, o con altri
moduli.
I termini driver, modulo, frame Ethernet, pacchetto IP, datagramma
UDP,
messaggio TCP e messaggio di applicazione,
sono usati in modo
appropriato in tutta questa guida.
Seguiamo il flusso dei dati attraverso
la pila dei protocolli mostrata
in Figura 1.
Per una applicazione che usa il TCP (Transmission Control
Protocol), i dati passano attraverso i moduli
applicazione e TCP.
Per le applicazioni che usano l’UDP (User
Datagram Protocol), i dati
passano fra i moduli applicazione e UDP.
L’FTP (File Transfer Protocol)
è una tipica applicazione che usa il TCP.
La sua pila di protocolli in
questo esempio è FTP/TCP/IP/ENET.
L’SNMP
(Simple Network Management
Protocol) è una
applicazione che usa l’UDP. La
sua pila di protocolli
in questo esempio è SNMP/UDP/IP/ENET.
Il modulo TCP, quello UDP, ed il driver Ethernet sono dei mux-demux
n-a-
1.
Nella veste di multiplexer n-a-1 essi
funzionano da deviatori da vari
input ad un output.
Nella veste di demultiplexer 1-to-n essi
funzionano da deviatori da un
input ad uno fra vari output a secondo del
campo “type” nel “protocol header”.
Figura
2. n-a-1 multiplexer ed 1-a-n
de-multiplexer
Se un frame Ethernet sale nel driver
Ethernet, il pacchetto può
proseguire verso il modulo ARP (Address Resolution Protocol) oppure
verso il modulo IP (Internet Protocol) a
seconda del valore del campo
“type
field”
del frame Ethernet.
Se un pacchetto IP sale nel modulo IP, il
percorso dell’unità di dati
verso i moduli TCP o UDP, viene determinato
dal valore del campo “protocol type” nell’IP header.
Se
il datagramma UDP sale nel modulo UDP, il messaggio di applicazione
viene passato ad un applicativo di rete in
base al campo “port
number”
dello “UDP header”.
Se il messaggio TCP sale nel modulo TCP, il
messaggio di applicazione viene passato ad un
applicativo di rete in
base al campo “port
number” del “TCP header”.
Il multiplexing è invece più semplice
poiché da ogni punto di partenza
vi è un solo percorso verso il basso;
ciascun modulo di protocollo
aggiunge una propria informazione nell’header
in modo che il pacchetto
possa essere de-multiplexato sul computer
destinazione.
I dati che, a partire dal livello
applicativo, passano da TCP o UDP
convergono sul modulo IP e vengono mandati giù
verso il driver della
interfaccia di rete.
Anche se la tecnologia internet supporta molti differenti mezzi
fisici
di rete, la Ethernet viene usata in tutti gli
esempi in questa guida,
vista la sua larghissima diffusione sotto IP.
Il computer in Figura 1
possiede una singola connessione Ethernet.
L’indirizzo
Ethernet a 6-
byte è
univoco a livello mondiale per ogni interfaccia Ethernet e si trova sul lato basso delle interfacce del driver Ethernet.
Il computer possiede altresì un indirizzo
IP di 4-byte.
Questo
indirizzo si trova sul lato basso delle
interfacce del modulo IP. L’indirizzo IP deve essere unico per una internet. Figura
4. multiplexer
n-a-m e de-multiplexer m-a-n
Esso realizza questo multiplexaggio in una
o l’altra direzione per
accogliere i dati entranti ed uscenti.
Un modulo IP collegato a più di
una interfaccia di rete è molto più
complesso che nel nostro esempio
originale per il fatto che può effettuare il
passaggio dei dati fra
queste interfacce.
I dati possono infatti arrivare su una rete ed essere trasmessi su
un’altra.
Figure 5. Esempio di
forwarding di un pacchetto IP
Il processo di trasmissione di un pacchetto IP su un’altra rete
viene
chiamato "forwarding"
del pacchetto IP. Un computer
dedicato al solo forwarding dei pacchetti IP viene chiamato "IP-router".
Come potete notare dalla figura,
sull’IP router, il pacchetto IP
forwardato non interessa i moduli TCP ed UDP.
In effetti, varie implementazioni di IP-router non possiedono i moduli TCP e UDP. L’IP
Crea una Singola Rete Logica
Il modulo IP è fondamentale per il
successo della tecnologia internet.
Ogni modulo o driver aggiunge il proprio
“header” al messaggio che lo
attraversa
scendendo la pila di protocolli verso il mezzo fisico.
Ogni modulo
o driver toglie il corrispondente header dal
messaggio quando esso
risale la pila di protocolli, verso gli
applicativi. L’header IP
contiene l’indirizzo IP, in modo da
costruire una singola rete logica
a partire da diverse reti fisiche.
Questa interconnessione di reti fisiche è la
fonte del nome: “Internet”.
Un insieme di reti fisiche interconnesse, tale da limitare il range
di
un pacchetto IP viene chiamata
"internet". Indipendenza
di una Rete Fisica
L’IP nasconde alle applicazioni il
sottostante hardware di rete. Se voi
inventate una nuova rete fisica, potete porla
in servizio implementando
un nuovo driver, sotto il modulo IP, tale da
connetterla ad internet.
In questo modo, le applicazioni di rete restano intatte e non
soggette ai cambiamenti nella tecnologia dell’hardware.
Se due computer possono comunicare su una internet, si dice che
possono
"interoperare"; se una
implementazione della tecnologia internet è
buona, si dice che possiede "interoperabilità".
Gli utilizzatori di
computer “general-purpose” beneficiano
della installazione di una
internet a causa
della interoperabilità fra i computer sul
mercato. Generalmente, quando
comprate un computer, esso interoperabilirà.
Se non può farlo, e se non
si può aggiungere questa capacità, esso
occuperà una rara e speciale nicchia di mercato.
Ciascun computer di una internet conosce i
propri indirizzi IP ed Ethernet.
Se un computer è connesso a 2 separate Ethernet la sua struttura
sarà
Come quella mostrata nella Figura 3.
Figura 3. Nodo di rete
TCP/IP su 2 Ethernet
Notate che questo computer possiede 2 indirizzi Ethernet e 2
indirizzi
IP. Sono
visti con questa struttura i computer che possiedono più di una, ed
anche non dello stesso tipo, interfacce
fisiche; in essi il modulo IP è sia un multiplexer n-a-m che un de-multiplexer m-a-n.
|