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 Ritardo di propagazione: d = lunghezza link fisico s = vel. propagazione nel mezzo (~2x10 8 m/sec) Ritardo di propagazione nel mezzo = d/s Vittorio Maniezzo Università di Bologna 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