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
Scarica

IP – Internet Protocol - www3