IP – Internet Protocol Vittorio Maniezzo Università di Bologna Vittorio Maniezzo – Università di Bologna 13 – IP - 1/20 IP IP è un protocollo a datagrammi In spedizione: • Riceve i dati dal livello trasporto e li struttura in pacchetti di dimensione massima 64 Kbyte • Instrada i pacchetti, eventualmente frammentandoli ulteriormente lungo il viaggio In ricezione: • Riassembla i frammenti in pacchetti • Estrae i dati del livello trasporto e li consegna nell'ordine in cui sono arrivati Un pacchetto IP è costituito da un header e da un area dati • L'header ha una parte fissa di 20 byte e una parte, opzionale, di lunghezza variabile Vittorio Maniezzo – Università di Bologna 13 – IP - 2/20 1 Formato datagrammi IP • Ogni pacchetto IP é chiamato datagramma • Ogni datagramma é formato da un header e da un'area dati Header Area dati • I datagrammi possono avere dimensioni diverse • L'header ha dimensioni fisse (20 byte) ma può avere opzioni • L'area dati può contenere fra 1 e 65.535 byte. • Normalmente l'area dati é molto più grande dell'header Vittorio Maniezzo – Università di Bologna 13 – IP - 3/20 Invio di datagrammi L'header contiene le informazioni necessarie per inviare il datagramma al computer destinazione • Indirizzo destinazione • Indirizzo mittente • ... Ogni router esamina l'header di ogni datagramma e lo invia lungo un cammino verso la destinazione Vittorio Maniezzo – Università di Bologna 13 – IP - 4/20 2 Tabelle di routing • Le informazioni relative all'inoltro dei datagrammi sono memorizzate in tabelle di routing – Inizializzate con l'inizializzazione del sistema – Aggiornate a seguito di variazioni della rete • Contengono una lista di reti di destinazione e il nodo successivo (next hop) per ogni destinazione • Le tabelle sono mantenute piccole elencando le reti di destinazione invece degli host • Possono essere ulteriormente ridotte impostando una default route, utilizzata se la rete di destinazione non é esplicitamente elencata Vittorio Maniezzo – Università di Bologna 13 – IP - 5/20 Tabelle e maschere di indirizzi Le tabelle contengono varie informazioni: • Le destinazioni sono memorizzate come indirizzi di rete • I next hop sono memorizzati come indirizzo IP del router L'indirizzo di destinazione in un datagramma IP si riferisce sempre all'host finale • Ogni router identifica un indirizzo next-hop e inoltra il datagramma • L'indirizzo next-hop non compare mai nei datagrammi • Delle maschere di indirizzi (address mask) definiscono quanti bit dell'indirizzo compongono il prefisso – Il prefisso determina quanti bit sono usati per identificare la rete – Es., la maschera per la classe A é 255.0.0.0 Vittorio Maniezzo – Università di Bologna 13 – IP - 6/20 3 Maschere di indirizzi Per identificare la rete di destinazione, si applica la maschera all'indirizzo destinazione e si ottiene l'indirizzo di rete da utilizzare come chiave nella tabella Esempio: if ((Mask[i] & D) == Dest[i]) forward to NextHop[i] Esempio 128.1.15.26: Vittorio Maniezzo – Università di Bologna 13 – IP - 7/20 Consegna a costo minimo • IP fornisce un servizio equivalente a una LAN • NON garantisce di prevenire – – – – Duplicazione di datagrammi Consegna ritardata o non ordinata Errori nella trasmissione dei dati Perdita di datagrammi • Una consegna affidabile é assicurata dallo strato di trasporto • Lo strato di rete - IP - può individuare e riportare errori, ma non correggerli – Lo strato di rete si occupa della consegna dei datagrammi Vittorio Maniezzo – Università di Bologna 13 – IP - 8/20 4 Header IP VERS - versione IP (normalmente la 4) H. LEN - lunghezza dell'header (in unità di 32 bit) SERVICE TYPE - livello di affidabilità (usato raramente) TOTAL LENGTH - numero totale di byte del datagramma IDENT, FLAGS, FRAGMENT OFFSET - supporto alla frammentazione TTL - time to live; decrementato in ogni router, il datagramma viene scartato quando TTL = 0 TYPE - tipo del protocollo incapsulato nel datagramma; es., TCP, UDP HEADER CHECKSUM - Complemento a 1 della somma in complemento a 1 SOURCE, DEST IP ADDRESS - Indirizzi IP del mittente e della destinazione Vittorio Maniezzo – Università di Bologna 13 – IP - 9/20 Opzioni datagramma IP Varie opzioni aggiungibili nell'header: • Record route • Source route • Timestamp Un header senza opzioni ha H. LEN = 5; i dati cominciano subito dopo DESTINATION IP ADDRESS Le opzioni sono aggiunte fra DESTINATION IP ADDRESS e i dati, in multipli di 32 bit Un header con 96 bit di opzioni ha H. LEN = 8 Vittorio Maniezzo – Università di Bologna 13 – IP - 10/20 5 Comunicazione affidabile su rete Una consegna affidabile di blocchi di dati deve: • lasciare inalterati i dati • mantenere i dati in ordine • non perdere dati • non duplicare dati Vittorio Maniezzo – Università di Bologna 13 – IP - 11/20 Consegna non ordinata I datagrammi possono essere consegnati fuori ordine, specialmente in sistemi che includono più reti Una consegna disordinata può essere individuata e corretta da meccanismi di sequenzializzazione Il mittente aggiunge un numero di sequenza ad ogni pacchetto in uscita Il ricevente usa i numeri di sequenza per riordinare i pacchetti e individuare quelli mancanti Vittorio Maniezzo – Università di Bologna 13 – IP - 12/20 6 Consegna duplicata I pacchetti possono venire duplicati durante la trasmissione La sequenzializzazione può essere usata per individuare i pacchetti duplicati e scartare le copie Vittorio Maniezzo – Università di Bologna 13 – IP - 13/20 Pacchetti persi Questo é il problema trasmissivo più comune Qualsiasi errore (errore sui bit, lunghezza sbagliata) fa scartare il pacchetto al ricevitore Vittorio Maniezzo – Università di Bologna 13 – IP - 14/20 7 Ritrasmissione La positive acknowledgment with retransmission permette di individuare e correggere la perdita di pacchetti • Il ricevitore invia brevi messaggi di riscontro della ricezione dei pacchetti • Il mittente inferisce i pacchetti persi dal mancato riscontro • Il mittente ritrasmette i pacchetti persi Il mittente impone dei tempi massimi per ogni pacchetto • salva una copia del pacchetto • se passa il tempo massimo senza aver ricevuto il riscontro, il mittente ritrasmette la copia salvata Viene definito un numero massimo di ritrasmissioni per indicare una disconnessione della rete Vittorio Maniezzo – Università di Bologna 13 – IP - 15/20 Ripetizioni Pacchetti molto ritardati possono essere inseriti in sessioni successive Esempio: due computer scambiano dati con pacchetti 1, 2, 3, 4 e 5 Il pacchetto 4 incontra un ritardo straordinario, viene ritrasmessa una copia di 4 I due computer più tardi si scambiano altri dati, con pacchetti 1 - 10 Il primo 'pacchetto 4' può arrivare durante la seconda sessione, inserendo i dati vecchi fra quelli nuovi I protocolli aggiungono uno session number ad ogni pacchetto di ogni sessione per differenziare i pacchetti da quelli delle sessioni precedenti Vittorio Maniezzo – Università di Bologna 13 – IP - 16/20 8 Ritardo di trasferimento nelle reti a pacchetto Quattro sorgenti di ritardo ad ogni hop Elaborazione al nodo: – Correzione di errori sui bit – calcolo link di uscita Attesa in coda – Attesa per la trasmissione – Dipende dalla congestione nel router Vittorio Maniezzo – Università di Bologna 13 – IP - 17/20 Ritardo di trasferimento nelle reti a pacchetto (2) Ritardo di trasmissione – R= banda sul link (bps) – L=lunghezza pacchetto (bit) – Tempo per trasmettere pacchetto sul link = L/R Vittorio Maniezzo – Università di Bologna Ritardo di propagazione: – d = lunghezza link fisico – s = vel. propagazione nel mezzo (~2x108 m/sec) – Ritardo di propagazione nel mezzo = d/s 13 – IP - 18/20 9 Ritardo di coda nelle reti a pacchetto (3) R=banda del link (bps) L=lungh. pacchetto (bit) a=frequenza (rate) di arrivo dei pacchetti (pacchetti/sec) Intensità del traffico = La/R La/R ~ 0: ritardo medio di coda piccolo La/R → 1: ritardo medio di coda grande La/R > 1: più pacchetti di quanti possano essere smaltiti, il tempo di attesa in coda tende a divenire infinito! (in realtà perdita) Vittorio Maniezzo – Università di Bologna 13 – IP - 19/20 Livello IP, altri protocolli • ICMP (Internet Control Message Protocol): Controlla l'operatività delle subnet, tipi di messaggi: – – – – – Destination unreachable Time exceeded - time to live ha raggiunto 0 Redirect - routing Echo request, reply Time stamp request, reply • ARP (Address Resolution Protocol): deriva dall'indirizzo IP dell'host di destinazione, l'indirizzo di livello data link necessario per inviare il frame • RARP (Reverse Address Resolution Protocol): Trovare quale indirizzo IP corrisponde a un dato indirizzo data link Vittorio Maniezzo – Università di Bologna 13 – IP - 20/20 10