Network Working Group
Request for Comments:1180 |
T. Socolofsky C. Kale
Spider Systems Limited January 1991 |
Un Tutorial
sul TCP/IP
Stato del documento
Questo RFC è una tutorial
sul protocollo TCP/IP, che si occupa in particolare dei passi
necessari per inoltrare un datagramma IP da un host sorgente a
un host destinazione, attraverso un router. Questo RFC non
specifica nessuno standard Internet. La distribuzione di
questo documento è illimitata. Tavola dei Contenuti
- intro
<>........................................
- panor
<>...............................
- ether
<>............................................
- arp
<>.................................................
- inter
<>..............................
- udp
<>........................
- tcp
<>.................
- appl
<>................................
- altre
<>..................................
- rifer
<>.........................................
- rfc
<>............................
- sicur
<>......................
- cont
<>.............................
1. Introduzione
Questo documento contiene
solo una panoramica dei punti salienti del TCP/IP, e quindi
rappresenta il ridotto all'osso della tecnologia TCP/IP.
Si omettono la storia dello sviluppo e fondazione, gli aspetti
economici legati al suo uso, e il suo futuro se comparato con
ISO OSI. In pratica, sono omesse una buona parte di
informazioni tecniche. Ciò che rimane è un minimo di
informazioni che devono essere comprese da chi lavora
professionalmente in un ambiente TCP/IP. Queste figure
professionali comprendono: amministratori di sistema,
programmatori di sistema, e gestori di rete.
Questo testo farà uso di
esempi presi dall'ambiente TCP/IP di UNIX, comunque i punti
principali si applicano a tutte le implementazioni di TCP/IP.
Notate che lo scopo di questo
documento è quello di spiegare, non di definire. Se avete
delle domande circa la corretta specifica di un protocollo,
siete pregati di fare riferimento all'RFC che definisce
l'attuale standard. La prossima sezione fa una panoramica del
TCP/IP, seguita da una descrizione dettagliata dei componenti
individuali. 2. Panoramica sul TCP/IP
Il termine generico TCP/IP
indica generalmente qualsiasi cosa che sia in relazione con i
protocolli specifici di TCP e IP. Può includere altri
protocolli, applicazioni, e anche componenti di rete. Esempi
di questi protocolli sono: UDP, ARP, e ICMP. Esempi di
applicazioni sono: TELNET, FTP, e RCP. Un termine più
accurato è tecnologia internet. Una rete che utilizza
la tecnologia internet è chiamata una interrete. 2.1
Strutture di base
Per comprendere questa
tecnologia dovete prima capire la seguente struttura logica:
----------------------------
| applicazioni di rete |
|
|
|... \ | / .. \ | / ...|
| ----- ----- |
| |TCP| |UDP|
|
| ----- ----- |
|
\ / |
| -------- |
| | IP | |
| ----- -*------
|
| |ARP| | |
|
----- | |
| \ |
|
| ------ |
| |ENET|
|
| ---@-- |
----------|-----------------
|
---------o----------------
Cavo Ethernet
Figura 1. Nodo base di una
rete TCP/IP
Questa è la struttura logica
di una serie di protocolli stratificati all'interno di un
computer collegato ad una interrete. Ogni computer che può
comunicare usando la tecnologia internet ha una struttura
logica simile a questa. È la struttura logica che determina
il comportamento del computer nella rete. I rettangoli
rappresentano punti di elaborazione dei dati che passano
attraverso il computer, e le linee che collegano i rettangoli
mostrano il percorso seguito dai dati.
La linea orizzontale in basso
rappresenta il cavo Ethernet; la «o» è il
trasmettitore/ricevitore. Il simbolo «*» rappresenta
l'indirizzo IP e il simbolo «@» l'indirizzo Ethernet.
Comprendere questa struttura logica è essenziale per capire
la tecnologia internet; vi si farà riferimento ovunque in
questo tutorial. 2.2 Terminologia
Il nome di una unità di dati
che circola attraverso internet dipende dal punto in cui si
trova nella pila di protocolli. In definitiva: se si trova in
una Ethernet è chiamata frame Ethernet; se si trova
fra il driver Ethernet e il modulo IP è chiamata pacchetto
IP; se è fra il modulo IP e il modulo UDP è chiamata datagramma
UDP; se si trova fra il modulo IP e il modulo TCP è
chiamata segmento TCP (o più in generale, un messaggio di
trasporto); e se è in una applicazione di rete è
chiamata un messaggio di applicazione.
Queste definizioni sono
imperfette. Le definizioni correnti variano da una
pubblicazione a quella successiva. Definizioni più specifiche
possono essere trovate nell' RFC 1122, sezione 1.3.3.
Un driver è un programma che
comunica direttamente con l'interfaccia hardware della rete.
Un modulo è un programma che comunica con un driver, tramite
una applicazione di rete, o tramite un altro modulo.
I termini driver, modulo,
frame Ethernet, pacchetto IP, datagramma UDP, messaggio TCP, e
messaggio di applicazione sono usati dove appropriati
all'interno di questo tutorial. 2.3 Flusso dei dati
Proviamo a seguire i dati nel
loro cammino verso il basso nella pila di protocolli mostrata
in Figura 1. In una applicazione che usa TCP (Transmission
Control Protocol), i dati passano dall'applicazione al modulo
TCP. Per applicazioni che usano UDP (User Datagram Protocol),
i dati passano dall'applicazione al modulo UDP. FTP (File
Transfer Protocol) è una tipica applicazione che usa TCP. La
sua pila di protocolli in questo esempio è FTP/TCP/IP/ENET.
SNMP (Simple Network Management Protocol) è una applicazione
che usa UDP. La sua pila è SNMP/UDP/IP/ENET.
I moduli TCP, UDP, e il
driver Ethernet sono multiplexer molti a 1. In qualità
di multiplexer collegano molti ingressi ad un'unica uscita.
Essi sono anche de-multiplexer 1 a molti. In qualità
di de-multiplexer collegano un ingresso a molte uscite a
seconda del campo tipo, nell' intestazione del
protocollo.
1 2 3 ... n
1 2 3 ... n
\ | / |
\ | | / ^
\ | | / |
\ | | / |
------------- flusso
---------------- flusso
|multiplexer| dei
|de-multiplexer| dei
------------- dati
----------------
dati
| | |
|
| v | |
1 1
Figura 2.
n-a-1 multiplexer e 1-a-n
de-multiplexer
Se un frame Ethernet finisce
nel driver Ethernet al di fuori della rete, il pacchetto può
essere passato verso l'alto, o al modulo ARP (Address
Resolution Protocol) o al modulo IP (Internet Protocol).
Il valore del campo tipo nel frame Ethernet determina a
quale dei due moduli sarà passato.
Se un pacchetto IP arriva nel
modulo IP, l'unità di dati è passata al livello superiore a
TCP o a UDP, a seconda del campo protocollo
nell'intestazione IP.
Quando arriva un datagramma
UDP nel modulo UDP, il messaggio di applicazione viene passato
al livello superiore verso l'applicazione di rete determinata
dal valore del campo porta nell'intestazione UDP. Se
arriva come messaggio TCP nel modulo TCP il messaggio di
applicazione è passato al livello superiore alla applicazione
di rete determinata dal campo porta nell'intestazione TCP.
Il multiplexing a scendere è
semplice da eseguire perché da ogni punto di partenza c'è
solo un percorso in discesa; ogni modulo di protocollo
aggiunge le sue informazioni di intestazione così che il
pacchetto può essere ricostruito nel computer di
destinazione.
I dati di passaggio dalle
applicazioni attraverso TCP o UDP convergono nel modulo IP e
da qui sono spediti in basso attraverso il driver di
interfaccia di rete di basso livello.
Sebbene la tecnologia
internet supporti molti mezzi di rete diversi, Ethernet è
usata in tutti gli esempi di questo tutorial perché è la
rete fisica più comune sotto IP. Il computer nella Figura 1
ha un singolo collegamento Ethernet. L'indirizzo di 6 byte
Ethernet è unico per ogni interfaccia su una Ethernet ed è
localizzato nel livello più basso del driver Ethernet.
Il computer ha invece un
indirizzo IP di 4 byte. Questo indirizzo è localizzato
nell'interfaccia più bassa del modulo IP. L'indirizzo IP deve
essere unico per una internet.
Un computer attivo, conosce
sempre i suoi indirizzi IP e Ehernet.
2.4 Interfacce di Rete
Se un computer è connesso a
2 Ethernet diverse, si trova nella situazione della Figura 3.
----------------------------
| applicazioni di rete |
|
|
|... \ | / .. \ |
/ ...|
| ----- ----- |
| |TCP| |UDP| |
| -----
----- |
| \ / |
| -------- |
|
| IP | |
| ----- -*----*- -----
|
| |ARP| | | |ARP| |
| ----- | | ----- |
| \ |
| / |
| ------ ------ |
| |ENET| |ENET| |
|
---@-- ---@-- |
----------|-------|---------
| |
|
---o----------------------
|
Cavo Ethernet 2
---------------o----------
Cavo Ethernet 1
Figura 3. Nodo di rete
TCP/IP su 2 Ethernet
Notate che il computer ha 2
indirizzi Ethernet e 2 indirizzi IP.
Si vede da questa struttura
che per computer con più di una interfaccia fisica di rete,
il modulo IP è molti a molti sia multiplexer che
de-multiplexer.
1 2 3 ... n 1 2 3
... n
\ | | / | \ | | /
^
\ | | / | \ | | /
|
------------- flusso
----------------
flusso
|multiplexer| dei
|de-multiplexer|
dei
------------- dati
----------------
dati
/ | | \ | / | | \
|
/ | | \ v / | | \
|
1 2 3 ... m 1 2 3 ... m
Figura
4. n-a-m multiplexer e m-a-n
de-multiplexer
Il multiplexing è eseguito
in entrambe le direzioni per accomodare i dati in ingresso e
quelli in uscita. Un modulo IP con più di un'interfaccia di
rete è più complesso di quello del nostro esempio originale
in cui può inoltrare dati nella rete successiva. I dati
possono arrivare da una qualsiasi interfaccia ed essere
spediti tramite una qualsiasi altra interfaccia.
TCP
UDP
\ /
\ /
--------------
| IP |
|
|
| --- |
| / \ |
| / v |
--------------
/ \
/ \
i dati i dati
entrano da
escono
qui da qui
Figura 5. Esempio di
Instradamento di un pacchetto IP
Il procedimento con cui un
pacchetto IP è spedito ad un'altra rete è chiamato «instradamento»
di un pacchetto IP. Un computer che è stato dedicato all'instradamento
dei pacchetti IP è chiamato un «router IP».
Come si può vedere dalla
figura, il pacchetto IP inoltrato, non tocca mai i moduli TCP
e UDP del router. Alcune implementazioni di router non hanno i
moduli TCP o UDP.2.5 IP crea una singola rete «logica»1
Il modulo IP è centrale al
successo della tecnologia internet. Ogni modulo o driver
aggiunge la sua intestazione al messaggio quando questo scende
lungo la pila di protocolli. Ogni modulo o driver estrae la
corrispondente intestazione dal messaggio quando questo risale
la pila verso lo strato delle applicazioni. L'intestazione IP
contiene l'indirizzo IP che costruisce una singola rete logica
da molte reti fisiche. Questa interconnessione di reti
fisiche è la sorgente del nome: internet. Un insieme di
reti fisiche interconnesse che rientrano nei limiti di un
pacchetto IP è chiamata una interrete (internet).
<small>1 Da non
confondere con il concetto di rete combinatoria (reti
logiche). (N.d.T.) </small>2.6
Indipendenza dalla Rete Fisica
IP nasconde la sottostante
rete fisica alle applicazioni di rete. Se inventate una nuova
rete fisica, potete metterla in servizio implementando un
nuovo driver che connette alla internet sotto il livello IP.
Così, le applicazioni di rete rimangono invariate e non sono
vulnerabili ai cambiamenti della tecnologia hardware.2.7
Interoperabilità
Se due computer in una
internet possono comunicare, si usa dire che interoperano;
se l'implementazione della tecnologia internet è buona, si
usa dire che si ha «interoperabilità». Gli utenti di
computer per scopi generali traggono benefici
dall'installazione di una internet grazie alla
interoperabilità fra i computer nel mercato. Generalmente,
quando comprate un computer, esso dovrà interoperare. Se il
computer non ha interoperabilità, e questa non può essere
aggiunta, esso occuperà una piccola e ristretta nicchia del
mercato.2.8 Dopo la panoramica
Con queste conoscenze di
base, tenteremo di rispondere alle seguenti domande:
Quando si spedisce un
pacchetto IP, come viene determinato l'indirizzo Ethernet di
destinazione?
Come fa IP a conoscere
quale delle molteplici interfacce di rete di basso livello
usare per spedire un pacchetto?
Come fa un'applicazione
cliente su di un computer a raggiungere l'applicazione
servente su un altro computer?
Perché esistono sia TCP
che UDP, invece di averne solo uno dei due?
Quali applicazioni di rete
sono disponibili?
Le risposte verranno date, in
ordine, dopo un ripasso sul funzionamento di Ethernet.3.
Ethernet
Questa sezione è un breve
ripasso sulla tecnologia Ethernet.
Un frame Ethernet contiene
l'indirizzo di destinazione, l'indirizzo del sorgente, il
campo «tipo», e i dati.
Un indirizzo Ethernet è di 6
byte. Ogni dispositivo ha il suo indirizzo Ethernet e rimane
in attesa di frame Ethernet con quell'indirizzo di
destinazione. Tutti i dispositivi riceveranno anche un frame
Ethernet con un indirizzo di destinazione di FF-FF-FF-FF-FF-FF
(in esadecimale), chiamato indirizzo broadcast.
Ethernet usa il protocollo CSMA/CD(accesso
multiplo con rilevamento di portante e rilevamento di
collisioni). CSMA/CD significa che tutti i dispositivi
comunicano tramite un singolo mezzo, che solo uno alla volta
può trasmettere, e che tutti possono ricevere
simultaneamente. Se due dispositivi provano a trasmettere
nello stesso istante, la collisione di trasmissione è
rilevata, e entrambi i dispositivi dovranno aspettare un
periodo casuale (ma breve) prima di poter riprovare a
trasmettere di nuovo.3.1 Un'analogia umana
Una buona analogia della
tecnologia Ethernet è data da un gruppo di persone che
parlano in una piccola stanza, completamente al buio. In
questa analogia, il mezzo fisico della rete sono le onde
sonore nell'aria della stanza, invece dei segnali elettrici
nel cavo coassiale.
Ogni persona può ascoltare
le parole di un'altra persona che sta parlando (rilevamento
di portante). Ognuno nella stanza ha la stessa capacità
di parlare (accesso multiplo), ma nessuno di loro alza
la voce perché sono cortesi. Se una persona è scortese, gli
viene chiesto di lasciare la stanza. (ovvero, viene fatta
uscire dalla rete).
Nessuno parla mentre un altro
sta parlando. Ma se due persone iniziano a parlare nello
stesso istante, ognuno di loro se ne accorge perché sente
qualche cosa che non ha detto (Rilevamento di collisione).
Quando le persone si accorgono di questa condizione, aspettano
un momento, quindi uno di loro comincia a parlare. L'altro
ascolta il discorso e aspetta che il primo finisca prima di
iniziare a sua volta a parlare.
Ogni persona ha un nome
univoco (indirizzo Ethernet unico) per evitare confusione.
Ogni volta che qualcuno parla, questo fa una premessa dicendo
il nome della persona a cui si rivolge e il suo stesso nome
(indirizzi Ethernet del destinatario e della sorgente,
rispettivamente), ad esempio: Ciao Jane, questo è Jack,
...blah blah blah... Se chi parla vuole rivolgersi a
tutti, può dire «tutti» (indirizzo broadcast), ad esempio, Ciao
a tutti, questo è Jack, blah, blah, blah, ...4. ARP
- Quando si spedisce un
pacchetto IP, come viene determinato l'indirizzo Ethernet di
destinazione?
ARP (Protocollo di
Risoluzione degli Indirizzi) è usato per tradurre gli
indirizzi IP in indirizzi Ethernet. La traduzione è fatta
solo per i pacchetti IP uscenti, perché è in questo caso che
vengono create le intestazioni IP e Ethernet.4.1 Tabella
ARP per la traduzione degli indirizzi
La traduzione si svolge con
la visita di una tabella. La tabella, chiamata tabella ARP,
è mantenuta in memoria e contiene una riga per ogni computer.
C'è una colonna per l'indirizzo IP e una colonna per
l'indirizzo Ethernet. Quando si traduce un indirizzo IP in uno
Ethernet, si esegue una ricerca nella tabella sul valore
dell'indirizzo IP. La seguente è una tabella ARP
semplificata:
--------------------------------------
|Indirizzo
IP Indirizzo Ethernet |
--------------------------------------
|223.1.2.1 08-00-39-00-2F-C3|
|223.1.2.3
08-00-5A-21-A7-22|
|223.1.2.4 08-00-10-99-AC-54|
--------------------------------------
TABELLA
1. Esempio di Tabella ARP
Per convenzione, quando si
scrivono i 4 byte dell'indirizzo IP, si scrivono tutti i byte
in decimale e si separano con un «punto». Per scrivere i 6
byte dell'indirizzo Ethernet, invece, per convenzione si
scrivono i byte in esadecimale e si separano con un segno
«-» o con «:».
La tabella ARP è necessaria
perché l'indirizzo IP e l'indirizzo Ethernet sono scelti in
modo indipendente; non esistono algoritmi per calcolare un
indirizzo IP dato un indirizzo Ethernet. L'indirizzo IP è
scelto dall'amministratore di rete in base alla collocazione
del computer in internet. Quando il computer viene spostato in
un luogo differente in internet, il suo indirizzo IP deve
essere cambiato. L'indirizzo Ethernet è scelto dal
costruttore in base allo spazio degli indirizzi Ethernet di
cui ha licenza. Quando la scheda d'interfaccia hardware
Ethernet cambia, cambia anche il suo indirizzo.4.2 Scenario
tipico di traduzione
Durante una normale
operazione di un'applicazione di rete, come TELNET, viene
spedito un messaggio di applicazione a TCP, quindi TCP
spedisce il corrispondente messaggio TCP al modulo IP.
L'indirizzo di destinazione IP è conosciuto
dall'applicazione, dal modulo TCP, e dal modulo IP. A questo
punto il pacchetto IP è stato costruito ed è pronto per
essere passato al driver Ethernet, ma prima deve essere
determinato l'indirizzo Ethernet.
A questo punto si consulta la
tabella ARP per cercare l'indirizzo Ethernet di destinazione.4.3
Coppia ARP Richiesta/Risposta
Ma in che modo viene riempita
la tabella ARP la prima volta? La risposta è che viene
riempita automaticamente da ARP a seconda del bisogno.
Succedono due cose quando la
tabella ARP non può essere usata per tradurre un indirizzo:
Un pacchetto di richiesta
ARP con indirizzo Ethernet broadcast è spedito a tutti i
computer della rete.
Il pacchetto IP in uscita
è messo in coda.
L'interfaccia Ethernet di
ogni computer riceve il frame Ethernet broadcast. Ogni driver
Ethernet esamina il campo tipo nel frame e passa il
pacchetto ARP al modulo ARP. Il pacchetto di richiesta ARP
dice Se il tuo indirizzo IP corrisponde a questo indirizzo
IP, allora per favore dimmi il tuo indirizzo Ethernet. Un
pacchetto di richiesta ARP appare all'incirca così:
---------------------------------------
|Indir.IP Mittente
223.1.2.1 |
|Indir.Enet Mittente
08-00-39-00-2F-C3|
---------------------------------------
|Indir.IP Destinat.
223.1.2.2 |
|Indir.Enet Destin.
<'vuoto'>
|
---------------------------------------
TABELLA 2. Esempio di
Richiesta ARP
Ogni modulo ARP esamina
l'indirizzo IP e, se l'indirizzo IP del destinatario
corrisponde con il suo indirizzo IP, spedisce una risposta
direttamente all'indirizzo Ethernet sorgente. Il pacchetto di
risposta ARP dice Si, quell'indirizzo IP è il mio,
permettimi di fornirti il mio indirizzo Ethernet. Un
pacchetto ARP di risposta ha i campi mittente/destinatario
invertiti rispetto a quello di richiesta. Esso appare
all'incirca così:
---------------------------------------
|Indir.IP Mittente
223.1.2.2 |
|Indir.Enet Mittente
08-00-28-00-38-A9|
---------------------------------------
|Indir.IP Destinat.
223.1.2.1 |
|Indir.Enet Destin.
08-00-39-00-2F-C3|
---------------------------------------
TABELLA
3. Esempio di Risposta ARP
La risposta viene ricevuta
dal computer mittente originario. Il driver Ethernet esamina
il campo «tipo» nel frame Ethernet, quindi passa il
pacchetto ARP al modulo ARP. Il modulo ARP esamina il
pacchetto e aggiunge l'indirizzo IP del mittente e il suo
indirizzo Ethernet alla tabella ARP. La tabella aggiornata
appare ora così:
-----------------------------------
|Indir. IP Indirizzo
Ethernet|
-----------------------------------
|223.1.2.1 08-00-39-00-2F-C3|
|223.1.2.2
08-00-28-00-38-A9|
|223.1.2.3 08-00-5A-21-A7-22|
|223.1.2.4 08-00-10-99-AC-54|
-----------------------------------
TABELLA 4. Tabella
ARP dopo la Risposta4.4
Scenario... continua
La nuova traduzione è stata
ora installata automaticamente nella tabella, solo pochi
millisecondi dopo il necessario. Come ricorderete, dal punto 2
in poi il pacchetto IP uscente è stato messo in coda. Ora la
traduzione dell'indirizzo IP nel corrispondente indirizzo
Ethernet, può essere eseguita con una ricerca nella tabella
ARP, quindi il frame Ethernet viene trasmesso al modulo
Ethernet. Quindi, con i nuovi passi 3, 4 e 5, lo scenario per
il computer mittente è:
Un pacchetto di richiesta
ARP con un indirizzo Ethernet di broadcast è spedito in
rete a ogni computer.
Il pacchetto IP uscente è
messo in coda.
Il responso ARP arriva con
la traduzione da indirizzo IP a Ethernet per la tabella ARP.
Per il pacchetto IP in coda,
ARP traduce l'indirizzo IP in un indirizzo Ethernet.4.5 Il
frame Ethernet viene trasmesso sulla Ethernet
In conclusione, quando c'è
una traduzione mancante nella tabella ARP, un pacchetto IP
viene messo in coda. I dati di traduzione sono velocemente
inseriti con una richiesta/responso ARP e il pacchetto IP
viene trasmesso.
Ogni computer ha una propria
tabella ARP per ognuna delle sue interfacce Ethernet. Se il
computer di destinazione non esiste, non ci sarà un pacchetto
di risposta ARP e quindi nessun aggiornamento della tabella
ARP. IP scarterà i pacchetti IP spediti a quell'indirizzo. I
protocolli dei livelli superiori non possono sapere la
differenza fra un problema a livello Ethernet e l'assenza di
un computer con un determinato indirizzo IP.
Alcune implementazioni di IP
e ARP non mettono in coda il pacchetto IP in attesa del
responso ARP. In questo caso, il pacchetto IP viene scartato e
il recupero del pacchetto IP perso è lasciato al modulo TCP o
all'applicazione di rete UDP. Il recupero si ottiene tramite
un time-out e con la ritrasmissione. Il messaggio ritrasmesso
verrà ora spedito con successo nella rete perché la prima
copia del messaggio ha già causato l'aggiornamento della
tabella ARP.5. Protocollo Internet
Il modulo IP è il centro
della tecnologia internet e l'essenza di IP è la sua tabella
di instradamento. IP usa questa tabella memorizzata per
prendere qualsiasi decisione circa l'inoltro di un pacchetto
IP. Il contenuto di una tabella di instradamento (route
table) è definito dall'amministratore di rete ed errori
in tale tabella possono impedire ogni comunicazione. Capire
come va usata una tabella di instradamento è capire il
funzionamento di internet. La comprensione di questo tema è
necessaria per amministrare con successo e mantenere una rete
IP.
La tabella di instradamento
è meglio compresa se si ha prima una panoramica del routing,
poi si imparano gli indirizzi IP di rete, e quindi si passa ai
dettagli.5.1 Instradamento diretto
La figura sottostante
rappresenta una piccola internet con 3 computer: A, B e C.
Ogni computer ha la stessa pila di protocolli TCP/IP come in
Figura 1. Ogni interfaccia Ethernet ha il suo indirizzo
Ethernet. Ogni computer ha un indirizzo IP assegnato
all'interfaccia IP dal gestore della rete, che ha anche
assegnato un indirizzo IP di rete alla Ethernet.
A B C
| |
|
--o------o------o--
Ethernet
1
Rete IP «development»
Figura
6. Una rete IP
Quando A spedisce un
pacchetto IP a B, l'intestazione IP contiene l'indirizzo IP di
A come indirizzo IP sorgente, e l'intestazione Ethernet
contiene l'indirizzo Ethernet di A come indirizzo Ethernet
sorgente. Nello stesso modo, l'intestazione IP contiene
l'indirizzo IP di B come indirizzo IP di destinazione e
l'intestazione Ethernet contiene l'indirizzo Ethernet di B
come indirizzo Ethernet di destinazione.
----------------------------------------
|indirizzo sorgente
destinazione|
----------------------------------------
|Intestazione IP A B |
|Intes.
Ethernet A B |
----------------------------------------
TABELLA 5. Indirizzi in un
frame Ethernet per un
pacchetto IP da A a
B
In questo semplice caso, IP
è superfluo perché aggiunge poco al servizio offerto da
Ethernet. Comunque, IP aggiunge costi: cicli di CPU e banda di
rete per generare, trasmettere e controllare l'intestazione
IP.
Quando il modulo IP di B
riceve il pacchetto IP da A, confronta l'indirizzo IP di
destinazione con il suo, quindi passa il datagramma al
protocollo di livello superiore.
Questa comunicazione fra A e
B usa un instradamento diretto.5.2 Instradamento indiretto
La figura sottostante offre
un'immagine più realistica di una internet. Questa è
composta da 3 Ethernet e 3 reti IP connesse da un router
chiamato computer D. Ogni rete IP ha 4 computer; ogni computer
ha il suo indirizzo IP e il suo indirizzo Ethernet.
A B C ----D----
E F G
| | | | | |
| | |
--o------o------o------o- | -o------o------o------o--
Ethernet 1 | Ethernet 2
Rete IP «development»
| Rete IP «accounting»
|
|
| H I J
| |
| |
--o-----o------o------o--
Ethernet 3
Rete IP «factory»
Figura 7. Tre Reti
IP: Una Internet
Ad eccezione del computer D,
ogni computer ha una pila di protocolli TCP/IP come quella in
Figura 1. Il computer D è il router; esso è connesso a tutte
e 3 le reti e quindi ha 3 indirizzi IP e 3 indirizzi Ethernet.
Il computer D ha una pila di protocolli TCP/IP simile a quella
della Figura 3, a parte il fatto che ha 3 moduli ARP e 3
driver Ethernet invece di 2. Notate che il computer D ha un
unico modulo IP.
Il gestore della rete ha
assegnato un numero unico, chiamato numero IP di rete, ad
ognuna delle Ethernet. I numeri IP di rete non sono mostrati
in questo diagramma, solo i nomi delle reti.
Quando il computer A spedisce
un pacchetto IP al computer B, il processo è identico
all'esempio di rete singola visto prima. Ogni comunicazione
fra computer che si trovano in una stessa rete IP corrisponde
all'esempio di routing diretto discusso in precedenza.
Quando i computer D e A
comunicano, la comunicazione è diretta. Quando D e E
comunicano, la comunicazione è diretta. Lo stesso fra D e H.
Questo perché ognuna di queste coppie di computer si trova su
una stessa rete IP.
Invece, quando il computer A
comunica con un computer all'altro capo del router, la
comunicazione non è più diretta. A deve usare D per
inoltrare il pacchetto IP verso la prossima rete IP. Questa
comunicazione è chiamata «indiretta».
L'instradamento di pacchetti
IP è eseguito dal modulo IP e appare trasparente a TCP, UDP e
alle applicazioni di rete.
Se A spedisce un pacchetto IP
a E, gli indirizzi IP e Ethernet della sorgente sono quelli di
A. L'indirizzo IP di destinazione è quello di E, ma siccome
il modulo IP di A spedisce il pacchetto IP a D per l'inoltro,
l'indirizzo Ethernet di destinazione è quello di D.
----------------------------------------
|indirizzo sorgente
destinazione |
----------------------------------------
|Intestazione
IP A E |
|Intest.Ethernet A
D |
----------------------------------------
TABELLA 6. Indirizzi in un
frame Ethernet per un
pacchetto IP da A a
E (prima di arrivare a D)
Il modulo IP di D riceve il
pacchetto IP e, esaminando l'indirizzo IP di destinazione,
dice Questo non è il mio indirizzo IP, e spedisce il
pacchetto IP direttamente a E.
----------------------------------------
|indirizzo sorgente
destinazione |
----------------------------------------
|Intestazione
IP A E |
|Intest.Ethernet D
E |
----------------------------------------
TABELLA 7. Indirizzi in un
frame Ethernet per un
pacchetto IP da A a
E (superato D)
In conclusione, per
comunicazioni dirette, sia l'indirizzo IP sorgente che
l'indirizzo Ethernet sorgente sono quelli del mittente, e
quelli di destinazione sono quelli del destinatario. Nelle
comunicazioni indirette, gli indirizzi IP e Ethernet non sono
accoppiati in questo modo.
Questo è un esempio di
internet molto semplice. Le reti reali sono spesso complicate
da molti fattori, con router multipli e molti tipi diversi di
reti fisiche. Questo esempio di rete potrebbe essere creato da
un amministratore di rete per dividere una grande Ethernet in
modo da individuare il traffico broadcast.5.3 Regole di
instradamento del modulo IP
Questa panoramica del routing
ha mostrato cosa succede, ma non come succede. Ora esaminiamo
le regole, o gli algoritmi, usati dal modulo IP.
Per un pacchetto IP uscente,
che arriva a IP da uno strato superiore, IP deve decidere se
spedire il pacchetto direttamente o indirettamente, e deve
scegliere l'interfaccia di rete da utilizzare. Queste scelte
sono fatte consultando la tabella di instradamento.
Per un pacchetto IP entrante,
che arriva a IP da un'interfaccia inferiore, IP deve decidere
se inoltrare il pacchetto o passarlo a uno strato superiore.
Se il pacchetto deve essere inoltrato, viene trattato come un
pacchetto uscente.
Quando un pacchetto IP
entrante arriva, non è mai rispedito indietro attraverso la
stessa interfaccia di rete.
Queste decisioni sono prese
prima che il pacchetto IP sia ceduto all'interfaccia di rete e
prima di consultare la tabella ARP.5.4 Indirizzi IP
L'amministratore di rete
assegna gli indirizzi IP ai computer in accordo alla rete IP a
cui i computer sono collegati. Una parte dei 4 byte
dell'indirizzo IP rappresenta il numero di rete IP, l'altra
parte è il numero IP del computer ( o numero di host). Per il
computer nella tabella 1, con l'indirizzo IP 223.1.2.1, il
numero di rete è 223.1.2 e il numero dell'host è 1.
La parte dell'indirizzo usata
per il numero di rete e per il numero dell'host è definita
dai bit più alti nell'indirizzo di 4 byte. Tutti gli
indirizzi IP di esempio in questo tutorial sono del tipo di classe
C, cioè in cui i 3 bit più alti indicano che 21 bit sono
il numero di rete e 8 bit indicano il numero dell'host. In
questo modo ci possono essere 2097152 reti di classe C con al
massimo 254 computer (host) su ogni rete.
Lo spazio degli indirizzi IP
è amministrato dal NIC(Network Information Center -
Centro Informazione Reti). Tutte le internet connesse
all'unica Internet mondiale devono utilizzare numeri di rete
assegnati dal NIC. Se state configurando la vostra internet e
non intendete connetterla alla Internet, dovrete comunque
ottenere il vostro indirizzo IP dal NIC. Se scegliete da soli
il vostro numero, correte il rischio di creare confusione e
caos nell'eventualità in cui decidiate di connettervi ad
un'altra internet.5.5 Nomi
Le persone si riferiscono ai
computer per nome, non per numero. Un computer chiamato alpha
potrebbe avere l'indirizzo IP 223.1.2.1. Per piccole reti, i
dati usati per tradurre un nome in un indirizzo sono mantenuti
in ogni computer in un file hosts. Per grandi reti,
questo file si trova in un servente a cui ci si collega
tramite rete quando se ne ha bisogno. Alcune righe di questo
file possono assomigliare a queste:
223.1.2.1 alpha
223.1.2.2 beta
223.1.2.3 gamma
223.1.2.4 delta
223.1.3.2 epsilon
223.1.4.2 iota
L'indirizzo IP è nella prima
colonna, e il nome del computer nella seconda.
Nella maggior parte dei casi,
si può installare un identico file «hosts» su tutti i
computer. Come potete notare, «delta» ha solo una voce in
questo file, anche se ha 3 indirizzi IP. Delta può essere
raggiunto con uno qualsiasi dei suoi indirizzi IP; non importa
quale viene usato. Quando delta riceve un pacchetto IP e
controlla l'indirizzo di destinazione, riconoscerà ognuno dei
suoi indirizzi.
Anche le reti IP hanno i loro
nomi. Se avete 3 reti IP, il vostro file networks per
documentare questi nomi potrebbe assomigliare a questo:
223.1.2 development
223.1.3 accounting
223.1.4
factory
Il numero di rete è nella
prima colonna e il suo nome nella seconda.
Da questo esempio potete
vedere che alpha è il computer numero 1 nella rete
development, beta è il computer 2 nella rete development e
così via. Si può anche dire che alpha è development.1, beta
è development.2, e così via.
Il precedente file hosts è
adeguato per gli utenti, ma l'amministratore di rete lo
rimpiazzerà probabilmente la riga per delta con:
223.1.2.4 devnetrouter delta
223.1.3.1 accnetrouter
223.1.4.1 facnetrouter
Queste 3 nuove linee per il
file hosts danno a ogni indirizzo IP di delta un nome
appropriato. Infatti, il primo indirizzo IP elencato ha 2
nomi; «delta» e «devnetrouter» che sono sinonimi. In
pratica «delta» è il nome generico del computer e gli altri
3 nomi sono usati solo quando si gestisce la tabella di
inoltro.
Questi file sono usati dai
comandi di amministrazione di rete e dalle applicazioni di
rete per fornire nomi significativi. Non sono richiesti per
operazioni su una internet, ma le rendono più facili per noi.
5.6 Tabella di instradamento di IP
Come fa IP a sapere quale
interfaccia di rete usare per inviare un pacchetto IP? IP fa
una ricerca nella tabella di instradamento usando come chiave
di ricerca il numero di rete IP estratto dall'indirizzo IP di
destinazione.
La tabella di instradamento
contiene una riga per ogni strada (route). Le colonne
principali nella tabella sono: numero di rete IP, flag
diretto/indiretto, indirizzo IP del router, numero di
interfaccia. Questa è la tabella cui fa riferimento IP
per ogni pacchetto IP uscente.
Nella maggior parte dei
computer la tabella di instradamento può essere modificata
con il comando route. Il contenuto della tabella di
instradamento è definito dall'amministratore di rete, perché
è lui che assegna gli indirizzi IP ai computer.5.7
Dettagli dell'instradamento diretto
Per spiegare come viene
usato, permetteteci di rivedere nel dettaglio la situazione di
instradamento vista precedentemente.
--------- ---------
| alpha | | beta |
| 1
| | 1 |
--------- ---------
| |
---o----------------o--
Ethernet 1
Rete IP «development»
Figura 8. Primo piano di
una rete IP
La tabella di instradamento
dentro alpha appare come questa:
------------------------------------------------
|rete flag dir/ind router
interf.|
------------------------------------------------
|development diretto
<"blank"> 1 |
------------------------------------------------
TABELLA 8. Esempio di
Semplice Tabella di
Instradamento
Questa maschera può essere
richiamata in alcuni sistemi UNIX con il comando netstat -r.
In questa semplice rete, tutti i computer hanno la stessa
tabella di instradamento.
Per discussione, la tabella
è stampata di nuovo senza la traduzione del numero di rete
nel suo nome.
---------------------------------------------
|rete
flag dir/indir router interf.|
---------------------------------------------
|223.1.2 diretto <"blank">
1 |
---------------------------------------------
TABELLA
9. Esempio di Semplice
Tabella di
Instradamento
con Numeri
5.8 Scenario diretto
Alpha sta inviando un
pacchetto IP a beta. Il pacchetto IP è nel modulo IP di alpha
e l'indirizzo IP di destinazione è beta o 223.1.2.2. IP
estrae la porzione di rete di questo indirizzo IP e fa una
ricerca nella prima colonna della tabella per cercare una
corrispondenza. Con questa rete una corrispondenza viene
trovata alla prima voce.
Le altre informazioni in
questa voce indicano che i computer in questa rete possono
essere raggiunti direttamente tramite l'interfaccia numero 1.
Una traduzione dalla tabella ARP è eseguita sull'indirizzo IP
di beta, quindi il frame Ethernet è spedito direttamente a
beta tramite l'interfaccia numero 1.
Se un'applicazione prova a
inviare dati a un indirizzo IP che non si trova nella rete
development, IP non riuscirà a trovare una corrispondenza
nella tabella di instradamento. IP quindi scarta il pacchetto
IP. Alcuni computer mostrano un messaggio di errore Network
not reachable (Rete non raggiungibile).5.9 Dettagli
dell'instradamento indiretto.
Ora, diamo un'occhiata più
da vicino allo scenario di routing più complicato
precedentemente esaminato.
--------- --------- ---------
|
alpha | | delta | |epsilon|
| 1 |
|1 2 3| | 1 |
---------
--------- ---------
| |
| | |
--------o---------------o- |
-o----------------o--------
Ethernet 1 | Ethernet 2
Rete IP «Development»
| Rete IP «accounting»
|
| --------
| | iota |
|
| 1 |
| --------
| |
--o--------o--------
Ethernet
3
Rete IP «factory»
Figura
9. Primo piano delle tre Reti
IP
La tabella di instradamento
di alpha appare così:
--------------------------------------------------
|rete flag dir/ind. router
interf.|
--------------------------------------------------
|development
diretto <"blank">
1 |
|accounting
indiretto devnetrouter 1 |
|factory indiretto
devnetrouter 1 |
--------------------------------------------------
TABELLA 10. Tabella di
instradamento di Alpha
La stessa tabella usando i
numeri al posto dei nomi:
-------------------------------------------------
|rete flag dir/ind. router
interf.|
-------------------------------------------------
|223.1.2
diretto <"blank">
1 |
|223.1.3
indiretto 223.1.2.4 1 |
|223.1.4 indiretto
223.1.2.4 1 |
-------------------------------------------------
TABELLA 11. Tabella di
instr. Di Alpha con numeri
Il router nella tabella di
Alpha è l'indirizzo IP della connessione di delta con la rete
development. 5.10 Scenario indiretto
Alpha stà inviando un
pacchetto IP a epsilon. Il pacchetto IP è nel modulo IP di
alpha e l'indirizzo IP di destinazione è epsilon (223.1.3.2).
Ip estrae la porzione di rete dell'indirizzo IP (223.1.3) e
cerca nella prima colonna della tabella una corrispondenza.
Viene trovata una corrispondenza alla seconda voce.
Questa voce indica che i
computer nella rete 223.1.3 possono essere raggiunti
attraverso il router-IP devnetrouter. Il modulo IP di alpha
procede quindi con la traduzione dalla tabella ARP
dell'indirizzo IP di devnetrouter e spedisce il pacchetto IP
direttamente a devnetrouter tramite l'interfaccia di Alpha
numero 1. Il pacchetto IP contiene ancora l'indirizzo di
destinazione di epsilon.
Il pacchetto IP arriva
all'interfaccia di rete development di delta e viene passato
al modulo IP di delta. L'indirizzo IP di destinazione viene
esaminato e, siccome non corrisponde a nessun indirizzo IP di
delta, delta decide di inoltrare il pacchetto IP.
Il modulo IP di delta estrae
la porzione di rete dell'indirizzo IP di destinazione
(223.1.3) e cerca nella sua tabella di instradamento una
corrispondenza nel campo rete. La tabella di delta appare
così:
------------------------------------------------
|rete flag dir/ind. router
interf.|
------------------------------------------------
|development
diretto <"blank">
1 |
|factory
diretto <"blank">
3 |
|accounting
diretto <"blank">
2 |
------------------------------------------------
TABELLA 12. Tabella di
instr. Di Delta
Qui sotto la stessa tabella
con i numeri al posto dei nomi.
------------------------------------------------
|rete flag dir/ind. router
interf.|
------------------------------------------------
|223.1.2
direct <"blank">
1 |
|223.1.3
direct <"blank">
3 |
|223.1.4
direct <"blank">
2 |
------------------------------------------------
TABELLA 13. Tabella di
instr. Di Delta con numeri.
La corrispondenza è trovata
alla seconda voce. IP spedisce il pacchetto IP direttamente a
epsilon tramite l'interfaccia numero 3. Il pacchetto IP
contiene l'indirizzo IP di destinazione di epsilon e
l'indirizzo Ethernet di destinazione di epsilon.
Il pacchetto IP arriva a
epsilon e viene passato al modulo IP di epsilon. L'indirizzo
IP di destinazione del pacchetto viene esaminato e trovato
corrispondente a quello di epsilon, quindi il pacchetto IP
viene passato verso il protocollo del livello superiore.5.11
Conclusioni sull'instradamento
Quando un pacchetto IP
viaggia attraverso una grossa internet, può dover passare
attraverso molti router-IP prima di raggiungere la
destinazione. Il percorso che prende non viene determinato da
una sorgente centrale ma è il risultato della consultazione
di ognuna delle tabelle di instradamento incontrate nel
tragitto. Ogni computer definisce solo il prossimo salto nel
viaggio e non gli resta altro che spedirlo per quella strada.5.12
Gestione dell'instradamento
Mantenere tabelle di
instradamento corrette su tutti i computer in una grande
interrete è un compito difficile; la configurazione di rete
viene modificata costantemente dall'amministratore per andare
incontro ai cambiamenti necessari. Errori nelle tabelle di
instradamento possono bloccare le comunicazioni in un modo
tale da rendere straziantemente noioso individuarne la causa.
Mantenere una semplice
configurazione di rete è molto lontano dalla realizzazione di
una internet affidabile. Per esempio, il modo più semplice di
assegnare reti IP alle Ethernet è quello di assegnare un
singolo numero di rete IP a ogni Ethernet.
Un certo aiuto viene fornito
anche da alcuni protocolli e applicazioni di rete. ICMP
(Protocollo dei Messaggi di Controllo di Internet) può
rilevare alcuni problemi di instradamento. Per piccole reti la
tabella di instradamento è riempita manualmente su ogni
computer dall'amministratore di rete. Per reti più grandi
l'amministratore di rete automatizza questa operazione manuale
con un protocollo di instradamento per distribuire percorsi
attraverso una rete.
Quando un computer viene
spostato da una rete IP a un'altra, il suo indirizzo IP deve
cambiare. Quando un computer viene rimosso da una rete IP il
suo vecchio indirizzo IP diventa non valido. Questi
cambiamenti richiedono frequenti aggiornamenti al file «hosts».
Questo file lineare può diventare difficile da mantenere per
reti regolarmente di medie dimensioni. Il Sistema dei Nomi di
Dominio (DNS) aiuta a risolvere questi problemi.6.
Protocollo Datagramma Utente (UDP)
UDP è uno dei due protocolli
principali residenti su IP. Esso offre servizi alle
applicazioni di rete dell'utente. Esempi di applicazioni di
rete che usano UDP sono: File System di Rete (NFS) e il
Protocollo Semplice di Gestione di una Rete (SNMP). Il
servizio è più piccolo di un'interfaccia a IP.
UDP è un servizio di
distribuzione di datagrammi «senza connessione» che
non garantisce la consegna. UDP non mantiene una connessione
end-to-end con il modulo UDP remoto; esso spinge semplicemente
il datagramma fuori dalla rete e accetta datagrammi in arrivo
dalla rete.
UDP aggiunge due funzioni a
quelle fornite da IP. Una è il multiplexing di informazioni
fra le applicazioni in base al numero di porta. L'altra è un
checksum per controllare l'integrità dei dati.6.1 Porte
Come fa un cliente su un
computer a raggiungere il servente su un altro?
Il percorso della
comunicazione fra un'applicazione e UDP è attraverso le porte
UDP. Queste porte sono numerate, a cominciare da zero.
Un'applicazione che offre un servizio (il servente) aspetta i
messaggi in arrivo in una specifica porta dedicata a quel
servizio. Il servente aspetta pazientemente una richiesta di
servizio da un cliente.
Ad esempio, il servente SNMP,
chiamato agente SNMP, aspetta sempre sulla porta 161. Ci può
essere solo un agente SNMP per computer perché c'è solo una
porta UDP numero 161. Questo numero di porta è ben
conosciuto; è un numero fissato, un numero internet
assegnato. Se un cliente SNMP vuole un servizio, spedisce la
sua richiesta alla porta numero 161 di UDP sul computer di
destinazione.
Quando un'applicazione
spedisce dati all'esterno attraverso UDP, questi arrivano
dall'altra parte come unità singole. Per esempio, se
un'applicazione scrive 5 volte sulla porta UDP, l'applicazione
all'altro capo farà 5 operazioni di lettura dalla porta UDP.
Inoltre, anche la dimensione di ogni operazione di scrittura
combacia con la dimensione delle operazioni di lettura.
UDP preserva i confini del
messaggio definiti dall'applicazione. Esso non fondo mai due
messaggi di applicazione insieme, né divide un singolo
messaggio di applicazione in più parti.6.2 Checksum
Un pacchetto IP in arrivo con
un campo «tipo» dell'intestazione IP indicante «UDP»,
viene passato in alto verso il modulo UDP da IP. Quando il
modulo UDP riceve il datagramma UDP da IP, questo esamina il
checksum UDP. Se il checksum è zero, significa che non è
stato calcolato dal mittente e può essere ignorato. Così, il
modulo UDP del computer mittente può generare o meno il
checksum. Se Ethernet è la sola rete fra due moduli UDP
comunicanti, allora non avete bisogno di checksum. Comunque,
è raccomandato che la generazione di checksum sia sempre
possibile perché ad un certo punto, in futuro, un cambiamento
della tabella di instradamento potrebbe permettere spedizioni
di dati attraverso mezzi meno affidabili.
Se il checksum è valido (o
zero), viene esaminato il numero di porta di destinazione e se
esiste un'applicazione su quella porta, viene messo in coda di
lettura un messaggio per l'applicazione. Altrimenti il
datagramma UDP viene scartato. Se i datagrammi UDP in entrata
arrivano più velocemente della capacità di lettura
dell'applicazione e se la coda si riempie fino ad un valore
massimo, i datagrammi UDP sono scartati da UDP. UDP
continuerà a scartare i datagrammi UDP finché non ci sarà
spazio nella coda.7. TCP - Protocollo di Controllo della
Trasmissione
TCP fornisce un servizio
diverso da quello di UDP. TCP offre un flusso di byte
orientati alla connessione, invece di un servizio di
spedizione di datagrammi senza connessione. TCP garantisce la
consegna, mentre UDP no.
TCP è usato dalle
applicazioni di rete che richiedono una consegna garantita e
non possono preoccuparsi di gestire un time-out e di
ritrasmettere. Le applicazioni di rete tipiche che usano TCP
sono il Protocollo di Trasferimento File (FTP) e TELNET. Altre
applicazioni di rete TCP conosciute comprendono il sistema
X-Window, rcp (copia remota), e i comandi della serie
r-comando. Le capacità di TCP non sono senza costo: richiede
più larghezza di banda di CPU e di rete. La realizzazione
interna del modulo TCP è molto più complicata di quelle di
un modulo UDP.
Similmente a UDP, le
applicazioni di rete si collegano alle porte TCP. Numeri di
porta ben definiti sono dedicati a specifiche applicazioni.
Per esempio, il servente TELNET usa la porta numero 23. Il
cliente TELNET può trovare il servente semplicemente
collegandosi alla porta 23 di TCP sul computer specifico.
Quando l'applicazione inizia
usando TCP, il modulo TCP nel computer del cliente e il modulo
TCP nel computer del servente iniziano a comunicare fra di
loro. I moduli TCP di questi due punti-terminali contengono
l'informazione dello stato che definisce un circuito virtuale.
Questo circuito virtuale consuma risorse in entrambi i
punti-terminali. Il circuito virtuale è full duplex; i dati
possono viaggiare in entrambe le direzioni contemporaneamente.
L'applicazione scrive i dati sulla porta TCP, i dati
attraversano la rete e sono letti dall'applicazione dall'altra
parte.
TCP impacchetta il flusso di
byte a volontà; non mantiene i limiti fra due operazioni di
scrittura. Per esempio, se un'applicazione fa 5 scritture
sulla porta TCP, l'applicazione dall'altra parte potrebbe
dovere fare 10 letture per leggere tutti i dati. Oppure
potrebbe prendere tutti i dati con una singola lettura. Non
c'è nessuna relazione fra il numero e la dimensione delle
operazioni di scrittura da un lato e il numero e la dimensione
delle operazioni di lettura dall'altro lato.
TCP è un protocollo a
finestra scorrevole con time-out e ritrasmissione. I dati in
uscita devono essere riscontrati dal TCP del terminale remoto.
I riscontri possono essere messi in piggyback sui dati.
Entrambi i terminali riceventi possono controllare il flusso
del terminale remoto, prevenendo così un «buffer overrun».
Come in tutti i protocolli a
finestra scorrevole, il protocollo ha una dimensione della
finestra. La dimensione determina la quantità di dati che
possono essere trasmessi prima che sia richiesto un riscontro.
Per TCP, questa quantità non è un numero di segmenti TCP ma
un numero di byte. 8. Applicazioni di rete
Perché esistono sia TCP che
UDP, invece di avere solo uno dei due?
Perché forniscono servizi
diversi. La maggior parte delle applicazioni sono implementate
per usare solo uno dei due protocolli. Voi, i programmatori,
scegliete il protocollo che meglio va incontro ai vostri
bisogni. Se avete bisogno di un servizio di consegna
affidabile di flussi di dati, TCP dovrebbe essere il migliore.
Se avete bisogno di un servizio a datagrammi, UDP dovrebbe
essere il migliore. Se avete bisogno di efficienza su un lungo
circuito, TCP dovrebbe essere il migliore. Se avete bisogno di
efficienza lungo reti veloci con bassa latenza, allora UDP. Se
le vostre necessità non rientrano in queste categorie, allora
la scelta migliore non è chiara. Comunque, le applicazioni
possono essere modificate per sorvolare su scelte errate. Per
esempio se scegliete UDP e avete bisogno di affidabilità,
allora l'applicazione deve fornire affidabilità. Se scegliete
TCP e avete bisogno di un servizio orientato alla
registrazione, allora l'applicazione deve inserire dei
marcatori nel flusso di byte per delimitare le registrazioni.
Quali applicazioni di rete
sono disponibili?
Ce ne sono troppe per
elencarle. Il numero cresce continuamente. Alcune applicazioni
esistono dall'inizio della tecnologia internet: TELNET e FTP.
Altre sono relativamente nuove: X-Windows e SNMP. A seguire
una breve descrizione delle applicazioni menzionate in questo
tutorial.8.1 TELNET
TELNET fornisce la capacità
di login remoto a TCP. Le operazioni e le apparenze sono
simili alla conversazione da tastiera tramite un collegamento
telefonico. Sulla linea di comando l'utente scrive «telnet
delta» e riceve un prompt di login da computer chiamato
«delta».
TELNET lavora bene; è una
vecchia applicazione con una interoperabilità ampiamente
diffusa. Le implementazioni di TELNET di solito lavorano fra
diversi sistemi operativi. Per esempio, un cliente TELNET può
essere su una VAX/VMS e il servente su un UNIX System V.8.2
FTP
Il Protocollo di
Trasferimento File (FTP), vecchio quando TELNET, usa anch'esso
TCP e ha una interoperabilità ampiamente diffusa. Le
operazioni e l'apparenza sono come quelle che si hanno quando
ci si collega con TELNET al computer remoto. Ma, invece di
scrivere i soliti comandi, avete a che fare con una breve
lista di comandi per visualizzare il contenuto di una
directory e simili. Il comando FTP permette di copiare file
fra computer.8.3 RSH
«Shell remota» (rsh o remsh)
è uno dei comandi di un'intera famiglia di comandi remoti in
stile UNIX. Il comando UNIX di copia, cp, diventa rcp. Il
comando UNIX chi è collegato, who, diventa rwho. La
lista non finisce qui e si riferisce a una collezione di
comandi della serie «r» o «r*» (r asterisco).
I comandi r* lavorano
principalmente fra sistemi UNIX e sono pensati per interazioni
fra host fidati. Viene data poca importanza alla sicurezza, ma
forniscono un ambiente conveniente per gli utenti.
Per eseguire il comando «cc
file.c» su un computer remoto chiamato delta, bisogna
scrivere «rsh delta cc file.c». Per copiare il file «file.c»
su delta, si scrive «rcp file.c delta:». Per fare il login
su delta, si scrive «rlogin delta», e se voi amministrate i
computer in qualche modo, non vi sarà richiesto di inserire
una password.8.4 NFS
Il File System di Rete,
sviluppato inizialmente dalla Sun Microsystem Inc, usa UDP ed
è eccellente per montare file system UNIX su più computer.
Una stazione di lavoro senza dischi può accedere all'hard
disk del servente come se fosse locale alla stazione di lavoro
stessa. Una singola copia di un disco di una base di dati nel
mainframe «alpha» può essere usata dal mainframe «beta»
se il file system della base di dati è montata come NFS su
«beta».
NFS aggiunge un carico
significativo su una rete ed ha scarsa utilità su
collegamenti lenti, ma i benefici sono molti. Il cliente NFS
è implementato nel kernel, permettendo a tutte le
applicazioni e ai comandi di usare i dischi montati NFS come
se fossero dischi locali.8.5 SNMP
Il «Protocollo Semplice di
Gestione di una rete» usa UDP ed è stato concepito per l'uso
in stazioni centrali di gestione di rete. È un fatto
conosciuto che, se ha a disposizione abbastanza dati, un
amministratore di rete può riconoscere e diagnosticare i
problemi della rete. La stazione centrale usa SNMP per
collezionare questi dati dagli altri computer nella rete. SNMP
definisce il formato dei dati; il compito di interpretare i
dati è lasciato alla stazione centrale o all'amministratore
di rete.8.6 X-Window
Il sistema X Window usa il
protocollo X Window su TCP per disegnare le finestre sul
monitor di una stazione di lavoro. X Window è molto più di
un'utilità per disegnare finestre; la sua intera filosofia è
la creazione di interfacce utente.9. Altre informazioni
Molte informazioni sulla
tecnologia internet non sono incluse in questo tutorial.
Questa sezione elenca una serie di informazioni, considerate
di livello superiore di dettaglio per i lettori che vorrebbero
saperne di più.
comandi di amministrazione:
arp, route, e netstat
ARP: voci permanenti, voci
pubbliche, voci di time-out, spoofing (truffe)
Tabella di instr. IP: voci
host, gateway predefinito, sottoreti
IP: contatore time-to-live
(tempo di vita), frammentazione, ICMP
RIP, cicli di instradamento
Domain Name System (Sistema
di Nomi di Dominio)
10. Riferimenti
[1] Comer, D., «Internetworking
with TCP/IP Principles,
Protocols,
and Architecture», Prentice
Hall, Englewood Cliffs, New
Jersey,
U.S.A., 1988.
[2] Feinler, E., et al, DDN
Protocol Handbook, Volume 2 and 3, DDN
Network Information Center,
SRI International, 333 Ravenswood
Avenue, Room EJ291, Menlow
Park, California, U.S.A., 1985.
[3] Spider Systems, Ltd., «Packets
and Protocols», Spider Systems
Ltd., Stanwell Street,
Edinburgh, U.K. EH6 5NG, 1990.
11. Relazioni con gli altri
RFC
Questo RFC è un tutorial è
non AGGIORNA né rende OBSOLETO nessun altro RFC.12.
Considerazioni sulla Sicurezza
Ci sono delle considerazioni
sulla sicurezza all'interno dei protocolli TCP/IP. Per alcune
persone queste considerazioni rappresentano un problema serio,
per altri no; dipende dalle richieste dell'utente.
Questo tutorial non tratta di
questo argomento, ma se volete saperne di più, dovete
iniziare dal tema dell'imbroglio di ARP (ARP-spoofing), quindi
usate la sezione «Security Considerations» dell'RFC 1122 per
trovare maggiori informazioni.13. Indirizzi degli autori
Theodore John Socolofsky
Spider Systems Limited
Spider
Park
Stanwell Street
Edinburgh EH6 5NG
United Kingdom
Phone:
from UK 031-554-9424
from USA 011-44-31-554-9424
Fax:
from UK 031-554-0649
from USA 011-44-31-554-0649
EMail: mailto:teds@spider.co.uk
Claudia Jeanne Kale
12 Gosford Place
Edinburgh EH6 4BJ
United Kingdom
Phone:
from UK 031-554-7432
from USA 011-44-31-554-7432
EMail: mailto:claudiak@spider.co.uk
13.1
Traduzione in italiano a cura
di:
Giordano Neri
4/D M.te Amoli
Pitelli (SP) 19137
Italia
EMail: mailto:neri@cli.di.unipi.it
Per
ulteriori RFC in italiano
visita http://www.napolihak.it
|