|
Il
Datagramma IP -
-
Il datagramma IP (IP datagram) è l'unità di trasferimento base del TCP/IP.
Esso presenta una forte analogia con i frames di una rete reale; infatti
si compone di una header area e di una data area.
L'header (di almeno 20 byte) contiene l'indirizzo di destinazione (Destination
IP Address) e di partenza (Source IP Address), anche perché ricordiamo
che il livello IP svolge funzioni di routing fondamentali per
l'architettura dell'intera rete internet proprio su questi indirizzi. La
differenza con l'header del frame fisico reale è che, mentre quest'ultimo
contiene un indirizzo fisico, quello del datagramma contiene un
indirizzo IP.
La figura mostra la struttura del datagramma IP:
|
 |
Più in dettaglio, l'header contiene anche un type field, che identifica
il contenuto del datagramma, un checksum field, che assicura l'integrità
dei valori contenuti in esso ed il Time To Live, che specifica quanto
tempo (in secondi) può sopravvivere un datagramma IP nella rete (questo
per evitare che girino sempre nella rete internet causando ovvi
problemi).
Un altro campo molto importante è il "protocol"; infatti un datagramma
IP, può contenere al suo interno un pacchetto TCP, un UDP, un ICMP o un
VMTP e quindi è necessario procedere con un demultiplex logico basato
appunto su tale campo.
Fra le altre informazioni, l'header del datagramma contiene il controllo
della frammentazione, delle precedenze e degli errori veri e propri.
Nel caso ideale, un intero datagramma IP viene incapsulato in un frame
fisico, per rendere efficiente la trasmissione attraverso una rete
fisica reale. Tuttavia, ogni rete locale consente una dimensione minima
e massima (indicata con Maximum Transfer Unit MTU) per i pacchetti che
la attraversano, ed è quindi ovvio che, siccome i datagrammi IP devono
essere incapsulati in un frame, non possono prescindere da queste
dimensioni per altro fortemente variabili a seconda del tipo di rete.
Allora per tutelarsi dalla disomogeneità delle reti, invece di
strutturare il datagramma in modo eccessivamente aderente ai vincoli
fisici dei vari prodotti, si è deciso di scegliere una dimensione dei
datagrammi IP conveniente ed escogitare poi un metodo ("segmentation and
reassembly") di dividerli in piccoli pezzi detti frammenti per poter
essere accettati da una rete con qualsivoglia piccolo MTU e, ovviamente,
riassemblati in uscita.
|