Internet
Control Message Protocol (ICMP) |
LInternet
Control Message Protocol fornisce un meccanismo di monitoraggio
sugli errori e messaggi di controllo per linsieme di
protocolli TCP/IP. Questo protocollo è stato creato
principalmente perché riferisce gli insuccessi dellinstradamento
allhost mittente.
Il protocollo ICMP può svolgere le seguenti funzioni:
- fornire messaggi di eco e di risposta per verificare lattendibilità
di una connessione tra due host. Questo, in genere, si fa
con il comando PING (Packet Internet Groper);
- reindirizzare il traffico per fornire un instradamento più
efficiente, quando un router è intasato a causa di
un traffico eccessivo;
- emettere un messaggio di tempo scaduto quando il datagramma
di unorigine ha superato il tempo di durata in vita
che gli era stato assegnato e viene scartato;
- emettere annunci di instradamento per determinare lindirizzo
di tutti i router in un segmento di rete;
- fornire un messaggio di inibizione dellorigine per
dire ad un host di rallentare le proprie comunicazioni, nel
caso che queste stiano saturando un router o un collegamento
di rete WAN;
- determinare quale maschera di sottorete è in uso
su di un segmento di rete.
Internet
Group Management Protocol (IGMP) |
A
volte, invece di inviare le informazioni da un host origine
ad un singolo host destinatario, occorre inviarle a più
host destinatari. Un sistema consiste nellutilizzare
il metodo di trasmissione broadcasting, che, però,
presenta due problemi principali. Come prima cosa, tutti gli
host sulla rete devono esaminare il pacchetto per determinare
se è destinato a loro. Come seconda cosa, molti instradatori
sono configurati in modo da non inoltrare questi broadcast
ad altri segmenti di rete. Questi due problemi possono causare
congestioni sulla rete. Unalternativa al broadcasting,
è il multicasting. Invece che considerare come
destinazione di un pacchetto IP tutte le macchine sulla rete,
si può fare in modo che la destinazione sia uno specifico
gruppo di computer. La consegna dei pacchetti multicast avviene
tramite UDP. Pertanto, è possibile che si verifichino
smarrimenti o ritardi durante il transito. Di seguito, troviamo
alcune considerazioni sui gruppi multicast IP:
- tutte le attribuzioni di indirizzi multicast si basano su
indirizzi IP di classe D, che vanno da 224.0.0.1, fino a 239.255.255.255;
- lindirizzo 224.0.0.1 è riservato e rappresenta
il gruppo tutti gli host. Questo gruppo comprende
tutti gli host e gli instradatori IP che partecipano ad un
multicasting IP su di un segmento di rete;
- un host IP può aderire o uscire dinamicamente da
un gruppo multicast IP in qualsiasi momento;
- gli indirizzi multicast IP devono apparire solo come indirizzi
di destinazione. E raro che essi appaiano come indirizzi
dellorigine, poiché di solito non sono vincolati
alle schede di rete. Alcune forme di UNIX permettono comunque
queste funzionalità. In questi casi, un indirizzo multicast
può effettivamente apparire come indirizzo dellorigine.
Il formato di un pacchetto IGMP appare di questo tipo:
Version
|
Type
|
Non
utilizzato
|
Checksum
|
Group
Address
|
-
il campo Version: questo campo indica la versione del
protocollo in uso. Per i pacchetti IGMP è impostato sul
valore 1;
- il campo Type: questo campo indica se il messaggio
IGMP è uninterrogazione inviata da un instradatore
multicast (valore 1) o una risposta inviata da un host IP (valore
2);
- il campo Checksum: questo campo è una somma
di controllo per lintero messaggio IGMP. Serve ad assicurare
che le informazioni non si siano danneggiate durante il transito.
Per calcolare le somme di controllo IGMP, si usa lo stesso algoritmo
che serve per il calcolo delle somme di controllo dellintestazione
IP;
- il campo Group Address: questo campo contiene il multicast
IP del gruppo al quale un host dichiara di appartenere. Nel
caso di un interrogazione di gruppo multicast, questo campo
è impostato su valori tutti uguali a zero.
Address
Resolution Protocol (ARP) |
Perché
due host possano comunicare con successo su di un segmento di
rete, essi devono risolvere gli indirizzi hardware luno
dellaltro. Questa funzione ha luogo, nellinsieme
di protocolli TCP/IP per mezzo del protocollo di risoluzione
degli indirizzi (Address Resolution Protocol, ARP).
ARP risolve un indirizzo IP di un host destinatario in un indirizzo
MAC ed inoltre si assicura che lhost di destinazione sia
in grado di risolvere lindirizzo IP del mittente di un
indirizzo MAC.
Capita di frequente, su una rete, che un computer client comunichi
con un server centrale (vedi tutte le reti non paritetiche).
Invece di richiedere ogni volta lindirizzo MAC del server,
il protocollo ARP si serve di un particolare tipo di memoria
cache, chiamata cache ARP. Questa tiene in
archivio un elenco di indirizzi IP risolti di recente in indirizzi
MAC. Se lindirizzo MAC dellindirizzo IP di destinazione
si trova nella cache ARP, esso viene utilizzato come indirizzo
di destinazione per la comunicazione, evitando così di
sprecare il tempo necessario ad una nuova risoluzione.
Nel gestire la cache ARP, occorre rispettare le seguenti regole:
- ciascuna nuova voce è configurata con un valore per
il tempo di durata in vita (time-to-live, TTL). Il valore reale
dipende dal sistema operativo utilizzato. Quando il valore del
tempo di durata in vita raggiunge lo zero, la voce viene rimossa
dalla cache ARP;
- se una nuova voce non è riutilizzata nei primi due
minuti della sua vita, viene rimossa dalla cache ARP;
- in alcune implementazioni TCP/IP, il valore del tempo di durata
in vita è reimpostato sul suo valore iniziale ogni volta
che si riutilizza una voce della cache ARP;
- ciascuna implementazione di TCP/IP stabilisce un numero massimo
di voci per la cache ARP. Se questa è piena e deve aggiungere
una nuova voce, elimina la voce più vecchia per fare
spazio a quella nuova (struttura di tipo first-in-first-out,
FIFO).
I
protocolli dello strato del trasporto |
Allinterno
dellarchitettura TCP/IP, sono due i protocolli che lavorano
al livello del trasporto:
TCP: che necessita di una connessione, e garantisce il
corretto invio dei dati;
UDP: protocollo connection-less, che spedisce dati senza
richiesta di conferma, garantendo una spedizione al meglio.
Transfer
Control Protocol (TCP) |
Il
protocollo TCP ha la responsabilità della trasmissione
affidabile di dati tra un nodo e laltro di una rete. Esso
crea una sessione orientata alla connessione tra le due macchine,
ovvero dando origine ad un circuito virtuale.
Affinché possa stabilire una connessione, il TCP crea
ed invia un pacchetto che richiede una connessione alla macchina
di destinazione. In seguito attende, per vedere se lhost
contattato è a sua volta disponibile alla comunicazione.
Nel caso ciò si verifichi, la macchina di destinazione
risponde con un proprio pacchetto che significa letteralmente
sono disponibile per una conversazione e voglio ulteriori
notizie da te.
La prima macchina risponde dunque con un bene, eccoti
il resto dellinformazione. Questo processo, attraverso
il quale si stabilisce una sessione di comunicazione tra due
macchine, è chiamato handshaking (letteralmente
stretta di mano) a tre vie.
Si dice a tre vie perché nel processo sono
necessari tre passi:
il client richiedente invia al server un segmento (pacchetto)
e specifica il numero di porta che vuole usare ed il suo numero
di sequenza iniziale (ISN);
il server risponde con un segmento contente il suo ISN
ed un acknowledgement distinto dellISN client, a cui è
sommato il valore 1;
il client riconosce lISN del server, dando inizio
alla sessione.
Il processo di handshaking a tre vie, stabilisce dunque il numero
di porta che dovrà essere usato ed i numeri di sequenza
iniziali di ambedue le parti. Affinché le macchine possano
stabilire e mantenere una connessione, esse debbono scambiarsi
determinate informazioni. Ogni pacchetto TCP inviato, contiene
un numero di porta sorgente e destinazione, un numero di sequenza
per i messaggi che debbono essere suddivisi in brani più
piccoli ed un valore di controllo per garantire linvio
delle informazioni senza errori. Inoltre, ogni pacchetto contiene
anche un numero di riconoscimento che dice alla macchina mittente
quali pezzi del messaggio siano effettivamente arrivati a destinazione.
Tutti questi accorgimenti, sono necessari per realizzare una
trasmissione realmente affidabile".
|