Il problema principale del livello Internet e' lo smistamento dei pacchetti dalla stazione sorgente a quella di destinazione. Lo smistamento si chiama routing e una macchina preposta allo smistamento si dice router.
In notazione di alcuni anni fa', i router venivano impropriamente chiamati gateway, ma il nome router sembra imporsi nei giorni correnti.
Il routing avviene a vari livelli: entro la rete locale, entro un gruppo di reti locali interconnesse a far parte di un Sistema Autonomo, fino a livello dell'Internet globale. Si puo dividere il routing in due forme: diretto e indiretto.
Il routing diretto avviene tra due stazioni connesse direttamente allo stesso mezzo fisico. Piu' computer collegati allo steeso mezzo fisico sono nodi della stessa rete o sottorete. Il test di appartenenza alla sottorete e' eseguito semplicamente confrontando logicamente l'indirizzo IP di un nodo con la maschera di sottorete.
Il routing indiretto avviene quando i pacchetti devono essere fatti transitare almeno attraverso un router. Il sistema dei routers che usano i protocolli TCP/IP e' una struttura interconnessa e cooperativa. I pacchetti sono smistati da un router ad un altro finche' non giungono alla rete di destinazione.
Ogni nodo, semplice o router, possiede una tabella di routing. Questa tabella ha una serie di linee con per ciascuna il formato:
Il principio sottostante la gestione delle tabelle di routing e' di cercare di mantenere ridotta la dimensione delle tabelle stesse, e di offrire un servizio decisionale rapido ed efficiente, che nasconde l'implementazione del percorso di smistamento ai livelli superiori per quanto e' possibile.
Le stazioni che non eseguono esse stesse il routing, hanno spesso una conoscenza limitata sulla topologia delle reti circostanti e sulla loro raggiungibilita'.
Per tutte le stazioni (o quasi) non a recapito diretto, queste stazioni fanno uso di un router di default (gateway di default), ed inviano ad esso i pacchetti che poi vengono ulteriormente smistati.
Le decisioni di routing indiretto vengono quindi lasciate ai router ed in particolare a certi router designati come router di default della rete.
Il protocollo IP non costruisce la Tabella di Routing (questo e' il compito dei protocolli di ricerca percorso - o di una configurazione manuale), ma la usa secondo un certo algoritmo.
Dato un datagramma IP da inviare ad una destinazione finale, IP:
Nel caso di arrivo di un datagramma IP ad una stazione, o il pacchetto era effettivamente destinato per la stazione data, oppure la destinazione finale e' un'altra. Nella seconda evenienza si distinguono due casi:
Vi possono essere stazioni configurate come gateway ma non come router, per esempio i Firewall. Queste stazioni non eseguono il forwarding del pacchetto tramite il normale algoritmo IP, ma passano il pacchetto a particolari applicativi a livelli superiori, i quali eseguono la decisione se inviare o no il pacchetto. Si tratta quindi di una ricezione ed invio di pacchetto, non di uno smistamento.
Il routing e' discusso nel documento RFC1009. Le regole di routing tra reti interconnesse sono discusse in RFC1124. Modelli di direttive di routing sono anche discussi in RFC1104, RFC1092 e RFC1102.