Il modello TCP/IP Il protocollo IP Mario Cannataro Sommario Introduzione al modello TCP/IP Richiami al modello ISO/OSI Struttura del modello TCP/IP Il protocollo IP Indirizzi IP Concetto di sottorete Struttura del pacchetto IP Elaborazione dei pacchetti IP Instradamento (IP Forwarding) Aggiornamento tabelle di routing (IP Routing)
Introduzione al modello TCP/IP Richiami al modello ISO-OSI Decomposizione in livelli per diminuire la complessità Ogni livello offre servizi ai livelli superiori, mascherando come questi servizi sono realizzati Ogni livello passa dati e informazioni di controllo al livello sottostante, sino a raggiungere il livello fisico dove avviene la trasmissione Meccanismo di imbustamento Applicazione Presentazione Sessione Trasporto Modello ISO-OSI servizi end-to-end servizi host-to-host Applicazione Presentazione Sessione Trasporto Rete Rete Rete Rete Data Link Data Link Data Link Data Link Fisico Fisico Fisico Fisico Sottorete di Comunicazione
Imbustamento in OSI Applicazione Dati Presentazione PH Dati Sessione SH Dati Trasporto TH Dati Rete NH Dati Data Link DH Dati DT Fisico bit Applicazione TCP/IP e OSI Applicazione (telnet, ftp, smtp,...) Presentazione assente Sessione assente Trasporto Trasporto (TCP,UDP) Rete Rete (IP, ICMP,...) Data Link Fisico Host-to-Network (non specificato)
Struttura del modello TCP/IP Applicazione Applicazione (telnet, FTP, SMTP, HTTP, DNS,...) Trasporto TCP UDP Rete Gateway prot. IP, ICMP ARP, RARP Host-toNetwork Il protocollo IP Internet Protocol (IP) è un protocollo di instradamento connection-less Funzioni: instradamento dei messaggi basato su indirizzi unici a 32 bit (IP address) frammentazione e riassemblaggio rilevazione (senza correzione, con notifica) degli errori Versione attuale IPv4 (IPv6 già definita)
Indirizzi IP (1) Un indirizzo IP identifica univocamente un Host sulla rete Gli indirizzi sono organizzati in classi di differente cardinalità, per sopperire ad esigenze di differenti organizzazioni Gli indirizzi hanno una semplice gerarchia Rete Host nell ambito della rete Un indirizzo IP è una stringa di 32 bit, spesso presentata nella dot notation, come sequenza di 4 byte Indirizzi IP (2) Classe Range indirizzi Indirizzi Multicast Riservati per usi futuri Netmask Stringa di bit t.c. NETMASK ^ IP-ADDRESS = NETWORK Es. netmask per un indirizzo di classe A 255.0.0.0
Esempio di Indirizzo IP L indirizzo di classe B e relativa netmask (naturale) 160.97.3.4 255.255.0.0 (11111111-11111111-00000000-00000000) Denota l host x.x.3.4 (00000011-00000100), n 772 sulla rete 160.97.x.x, (10100000-11000001), n 41153 Indirizzi IP speciali Questo Host Un Host su questa rete Broadcastsulla rete locale Broadcastsu una rete distante Loopback
Indirizzi IP privati Tali indirizzi devono essere utilizzati all interno di organizzazioni e non vengono instradati su Internet Classe A: 10.x.x.x 10.x.x.x (1) Classe B: 172.16.x.x 172.31.x.x (16) Classe C: 192.168.0.x 192.168.255.x (256) Il loro utilizzo permette di sopperire alla mancanza di IP pubblici, cioè instradabili su Internet Concetto di sottorete Domini di indirizzamento separati Autonomia nella decomposizione di una rete Nessun impatto sull instradamento globale
Esempio di sottorete Se estendiamo di 8 bit la rete del precedente indirizzo di classe B, ovvero utilizziamo per la sottorete i primo 8 bit dedicati all host: 160.97.3.4 255.255.255.0 (Nuova netmask) (11111111-11111111-11111111-00000000) Denota l host x.x.x.4 (00000100), n 4 sulla sottorete x.x.3.x(00000011), n 3 sulla rete 160.97.x.x, (10100000-11000001), n 41153 E come se la nostra rete fosse composta da 256 reti di classe C, ognuna con 256 host, in tal caso l indirizzo denota l host n. 4 sulla rete 160.97.3.x Struttura del pacchetto IP (1) Il pacchetto IP, o datagramma, contiene: versione del protocollo (nel caso IPv4 vale sempre 4) lunghezza header (in assenza di opzioni vale 20 byte) tipo di servizio richiesto alla rete (di solito best-effort, può prevedere priorità, ecc.) lunghezza totale del datagramma (header+dati) identificatore del datagramma e posizione dell eventuale frammento nel datagramma frammentazione (se e come il pacchetto è frammentato e come ricostruirlo) invecchiamento del pacchetto, per scartare pacchetti instradati indefinitivamente protocollo di livello superiore (trasporto) a cui il pacchetto deve essere consegnato informazioni relative alla rilevazione di errori (checksum ) indirizzi mittente e destinatario eventuali opzioni aggiuntive (sicurezza, tipo di instradamento, debug, ecc.)
Struttura del pacchetto IP (2) Elaborazione dei pacchetti IP Obiettivo del livello IP è consegnare i datagrammi al nodo destinatario il termine IP forwarding indica le operazioni necessarie per consegnare tali pacchetti il termine IP routing indica le operazioni amministrative effettuate per dare (e aggiornare) al livello IP le informazioni necessarie all instradamento Se tali informazioni sono decise staticamente, si parla di routing statico ed è attivo solo IP forwarding
Instradamento dei pacchetti IP Si supponga che un pacchetto (I M, I D ) sia correntemente analizzato sul nodo K, L instradamento dei pacchetti, ovvero l insieme di azioni effettuate sul pacchetto per farlo fluire dal mittente al destinatario, presenta due sottocasi: instradamento diretto l host di destinazione I D appartiene ad una rete che è direttamente connessa all host K che sta effettuando l instradamento l host K può consegnare direttamente il pacchetto al nodo I D instradamento indiretto l host di destinazione I D non appartiene ad una rete che è direttamente connessa all host K che sta effettuando l instradamento l host K deve identificare un nodo intermedio (adiacente) G (gateway) che si preoccuperà di instradare il pacchetto verso il nodo destinatario I D, Instradamento diretto (1) Il nodo K estrae la rete da I D usando la sua netmask e verifica se è una rete a cui esso è connesso Esempio: se la rete fisica 160.97.3.x è di tipo broadcast Ethernet - l host 160.97.3.4 è direttamente connesso agli host 160.97.3.x e può effettuare la consegna diretta dei pacchetti indirizzati a tali host Per effettuare la consegna diretta, IP sul nodo K deve: identificare l indirizzo di livello Data Link dell host destinatario (mediante i protocolli ARP e RARP) aggiornare i campi del datagramma IP (es. TTL) richiedere al livello Data Link la consegna del datagramma verso l indirizzo di livello Data Link sopra determinato il datagramma è inviato sull interfaccia fisica
Instradamento Diretto (2) IP Mitt = IPx Dest= IP3 IP1 Mitt = IPx IP2 IP3 Dest= IP3 DestNetwork=Network(IP3) CurrNetwork=Network (IP1) rete conosciuta dall IP in esecuzione Se DestNetwork=CurrNetwork allora Effettua Consegna Diretta Instradamento Indiretto Se l host di destinazione I D non appartiene ad una rete che è direttamente connessa all host K che sta effettuando l instradamento, come faccio ad identificare un nodo intermedio G (gateway) capace di instradare il datagramma? Si usa la Tabella di routing essa contiene un insieme di coppie (N, G) dove N è l indirizzo di una rete di destinazione, e G è l indirizzo di un gateway successivo lungo il percorso fino alla rete N contiene anche un gateway speciale, denominato default gateway a cui instradare i pacchetti le cui reti destinazioni non compaiono nella tabella
Tabella di routing (1) Rete 1 R1 Rete 2 R2 Rete 3 R3 Rete 4 La tabella sul router R2 sarà: Destinazione Salto successivo Rete 1 R1 Rete 2 consegna diretta Rete 3 consegna diretta Rete 4 R3 Tabella di routing (2) 30.0.0.7 40.0.0.8 128.1.0.9 30.0.0.0 R1 40.0.0.0 R2 128.1.0.0 R3 192.4.10.0 40.0.0.7 128.1.0.8 192.4.10.9 La tabella sul router R2 sarà: Destinazione Netmask Salto successivo 30.0.0.0 255.0.0.0 40.0.0.7 40.0.0.0 255.0.0.0 consegna diretta 128.1.0.0 255.255.0.0 consegna diretta 192.4.10.0 255.255.255.0 128.1.0.9
Tabella di routing (3) Una della tabella entry contiene tipicamente: Destination: IP address destinatario Route Mask: maschera Next Hop: IP address del prossimo hop nel cammino If Index (port): indirizzo interfaccia fisica Metric: costo per raggiungere l ind. Destinatario Route Type: Direct/Remote Source of route: origine delle informazioni (OSPF, RIP) Route Age: intervallo di tempo dall ultimo aggiornamento Route information MTU (Maximum Transmission Unit) Algoritmo di instradamento I D : indirizzo host destinazione N D : indirizzo della rete di destinazione K: nodo che sta analizzando il datagramma If I D = K (il pacchetto è giunto a destinazione) elimina header Ip e consegna al protocollo di trasporto (campo protocol) else if N D è una rete direttamente connessa invia il datagramma al destinatario su tale rete else if I D appare come un percorso specifico dell host instradare il datagramma come specificato nella tabella else if N D appare nella tabella di instradamento instradare il datagramma come specificato nella tabella else if è stato specificato un percorso di default instradare il datagramma al gateway di default else dichiarare un errore di instradamento (viene generato un datagramma ICMP)
Elaborazione dei datagrammi IP TCP UDP Protocollo di IP routing SI event. aggiorna tabella di routing coda datagrammi in ingresso Indirizzo locale? NO Errori? NO Tabella di routing Operazione di output coda datagrammi in uscita datagrammi in ingresso datagrammi in uscita Osservazioni sull instradamento Gli host realizzano la consegna diretta e tramite default gateway macchine poste alla periferia della rete, che eseguono le applicazioni utente L instradamento indiretto, tramite tabelle di routing, è effettuato dal gateway o router, macchine appartenenti alla sottorete, che implementano servizi host-to-host (tipicamente i primi tre livelli di protocollo)
Algoritmi di routing Proprietà Correttezza Semplicità (ragioni di efficienza e di risorse limitate) Robustezza (deve essere rispecchiato lo stato effettivo della rete collegamenti e gli alg. devono funzionare anche in presenza di guasti) Stabilità, devono convergere ad uno stato di equilibrio Ottimalità (ottimizzare una qualche metrica, quale distanza dei percorsi, tempo di attraversamento, costo per impegnare i canali, volume di traffico sostenuto,...) Algoritmi di routing (2) Routing statico (alg. non adattativi) criteri fissi di instradamento Routing dinamico (alg. adattativi) le tabelle di instradamento vengono continuamente aggiornate in funzione di informazioni sullo stato della rete (topologia e traffico)
Algoritmi di routing statico (1) Fixeddirectory routing le tabelle sono scritte a mano (piccole reti) le tabelle sono ottenute tramite alg., quale Dijkstra) per calcolare il cammino minimo (reti più estese) problemi in caso di guasto ai canali sbilanciamento del carico ricompilazione manuale delle tabelle Flooding (inondazione) i pacchetti vengono ripetuti su tutte le porte, ad eccezione di quella di arrivo Algoritmi di routing dinamico Routing distribuito ogni router calcola le sue tabelle dialogando con gli altri router ed host il dialogo avviene con protocolli ausiliari di livello 3 (es. OSPF, RIP,...) Due approcci principali algoritmi distance vector algoritmi link state