Il protocollo IP consulta la tabella di routing per determinare l'indirizzo IP del nodo a cui inviare un dato pacchetto.
Le sue regole sono:
Le linee non usate perche' con metrica maggiore, vengono tolte dalla tabelle di routing dopo un timeout tipico di 5 minuti
Identificata una linea della tabella di routing, IP invia il pacchetto al router indicato come secondo campo di tale linea.
Il fatto che IP possa semplicemente buttare un pacchetto, fa si che la rete TCP/IP venga denominata:
intrinsecamente inaffidabile, ma al miglior sforzo ( unreliable, best effort)
In caso di scartamento di un pacchetto vengono intraprese inoltre da IP azioni correttive:
Questo spiega la qualifica 'al miglior sforzo' della rete.
Il pacchetto IP consiste di una testata, con campi di controllo usati dal protocollo IP, ed un corpo di dati. Uno dei campi della testata e' il campo Time To Live (TTL).
Il mittente tipicamente inserisce in questo campo il valore massimo, 255. Ogni router intermedio decrementa di uno il contenuto del campo TTL. Se il nuovo valore e' uguale a zero, il pacchetto viene scartato.
Qesto impedisce che per qualsiasi ragione, si sia creato un loop nello smistamento di rete ed i pacchetti girino in ciclo all'infinito.
Tra il nodo sorgente e il nodo destinazione vi sono potenzialmente molte reti intermedie. Ciascuna rete, per sue caratteristiche tecniche, ha una dimensione massima del pacchetto che puo' trasportare. Questa dimensione si chiama Maximum Transfer Unit (MTU).
P. es. la MTU di una rete Ethernet e' di 1500 bytes, di X.25 solo 256 byte.
Se la rete che conduce al router successivo di uno smostamento pacchetto ha MTU inferiore alla lunghezza del pacchetto, allore IP compie la frammentazione del pacchetto, cioe' lo spezza in sottopacchetti ciascuno di dimensioni inferiori a tale MTU.
E' da notare che ogni sottopacchetto o frammento puo' essere a sua volta ulteriormente frammentato nel suo percorso. Ogni pacchetto contiene nella testata i campi:
Spetta allo IP del nodo di destinazione ricomporre il pacchetto originario. In tal caso il campo TTL assume valore di secondi e viene decrementato in ogni frammento di uno ogni secondo da parte dello IP di destinazione. Se anche un solo frammento ha il TTL scaduto prima che arrivino tutti i frammenti, l'intero pacchetto viene scartato.