L10 Rete IP Datagramma Addressing
L10 Rete IP Datagramma Addressing
IP
Federica Paganelli
2023/24
1
Strato di Rete
• Responsabile della consegna dei datagrammi
tra gli host
2
Comunicazione a livello rete
1. L’entità a livello di rete riceve i
segmenti dal livello di trasporto
nell’host mittente, e incapsula i
segmenti in datagrammi
3
Comunicazione a livello rete
Quali differenze
notate rispetto al
livello di trasporto?
Quali sono le
funzioni essenziali
del livello di rete?
4
Comunicazione a livello rete
• Il livello di rete è presente
negli host mittente e
destinatario e nei router
• (livello trasporto solo
negli host terminali)
• Il livello di rete
interconnette reti
eterogenee
5
Strato di Rete
Interconnessione di reti eterogenee
• Internet: rete logica costituita da un insieme di
reti fisiche.
• Il livello di rete offre un’astrazione che
consente a host e reti eterogenee di
funzionare dal punto di vista logico come una
singola rete
Modello a clessidra
• Innovazione possibile nei livelli sottostanti
• Innovazione possibili ai livelli superiori (in
particolare applicazioni)
6
Servizi a livello di rete
• Suddivisione in pacchetti
• Instradamento (routing)
• Inoltro (forwarding)
7
Internet Protocol (IP) RFC 791
• Protocollo di tipo connection-less, non c’è circuito virtuale né
fisico fra i due sistemi terminali a livello IP
• Servizio best effort (massimo impegno possibile):
• non c’è garanzia che i pacchetti vengano ricevuti nell’ordine in cui sono
stati inviati
• non è garantita la consegna
9
Funzioni IP 1/2
• Inoltro (Forwarding): trasferimento del pacchetto
sull’appropriato collegamento di uscita
11
Meccanismi IP
• Indirizzamento
– Strumento per identificare gli host nell’internet
• Modello datagram (senza connessione) per la consegna
dei dati
– Frammentazione e riunificazione dei pacchetti
(adattamento al data-link)
– Controllo degli errori (solo header)
– Verifica TTL
12
Multiplexing/demultiplexing
13
Formato datagramma IP
14
Datagramma IP
15
IP datagram format
versione protocollo IP
32 bits Lunghezza totale
lunghezza header del datagramma
type of
(parole di 4 byte) ver head. length (bytes)
len service
“tipo del servizio” fragment Per
16-bit identifier flgs
offset frammentazione
Massimo numero di hop time to upper header
rimanenti (decrementato live layer Calcolato da ogni
checksum
ad ogni router) router
32 bit source IP address
Protocollo di trasporto
32 bit destination IP address
(demux)
options (if any)
4-16
Datagramma IP: campi
• Versione (4 bit): specifica la versione di IP usata (attualmente IPv4 o
IPv6)
• Hlen (lunghezza dell'header, 4 bit): lunghezza dell'intestazione
espressa in parole da 32 bit. Tipicamente vale 0101 ovvero 20 byte.
• Tipo di servizio (8 bit): serve per “colorare” il datagramma IP (basso
ritardo, affidabilità, ecc...). Inizialmente Type of Service, poi :
– 6 bit per Differentiated Services
• I pacchetti vengono marcati in base alla classe di servizio (telefonata,
controllo, multimedia streaming, dati a bassa priorità)
• Differenti politiche di accodamento ai router
– 2 bit Explicit Congestion Notification (ECN) – supporto a livello
rete e trasporto per la notifica di eventi di congestione
17
Datagramma IP: campi
• Lunghezza del datagramma (16 bit): è la lunghezza di tutto il
datagramma in byte, header incluso.
– Dim. Max 65535 byte (nella pratica 1500 byte)
• Identificatore, flag, offset: sono campi per la frammentazione (vedi
più avanti).
• Tempo di vita (8 bit): ad ogni passaggio da un router viene
decrementato, quando raggiunge lo zero viene scartato. Assicura
che eventuali percorsi ad anello non provochino traffico perpetuo
nella rete
– Valore iniziale dipende dal S.O.: esempi 30, 64, 128, 255
18
Datagramma IP: campi
• Protocollo (8 bit): in ricezione all’host destinatario indica quale
protocollo dello strato superiore deve ricevere i dati. Inizialmente la
tabella era nella RFC1700 (STD2), attualmente è un database online
che si trova su iana.org
– Demux, es. TCP 6, UDP 17
• Checksum dell'intestazione (16 bit): viene calcolato il checksum
della sola intestazione (ponendo questo campo pari a zero) ad ogni
router (il TTL cambia ad ogni hop!). Se si ottiene un errore si scarta
il datagramma.
19
Datagramma IP: campi
• Indirizzi sorgente e destinazione (32 bit): indirizzi IP del mittente e
del destinatario.
• Opzioni (lunghezza variabile, multiplo di 32 bit): uso sporadico, da 0
a 40 byte
• Dati: dati trasportati dal datagramma IP.
20
Approfondimento suggerito
Determinare per quale motivo UDP e
TCP si preoccupano di controllare
l’integrità di informazioni di livello
network se anche IP usa una sua
checksum.
21
Frammentazione
fragmentation
22
Frammentazione
• MTU (Maximum Transfer Unit)
– quantità massima di dati trasportata dal protocollo di
collegamento (in un frame). Può variare da una tecnologia di
collegamento all'altra (ethernet 1500, ATM 576, FDDI 4500 byte
ecc.).
• La MTU pone un limite alla lunghezza dei datagrammi IP e tratte
diversi possono porre limiti differenti.
23
Frammentazione
• Meccanismo di frammentazione
– Se il router riceve un datagramma la cui dimensione supera l’MTU
della rete verso cui deve inoltrare quel datagramma, il router
frammenta il datagramma IP in due o più datagrammi più piccoli, detti
frammenti.
– Il riassemblaggio viene effettuato dall'entità rete nel sistema terminale
(destinazione).
– Se qualche frammento non arriva a destinazione?
• si butta via tutto il datagramma
• Un pacchetto diviso in n frammenti. Come sono inoltrati
questi frammenti?
– Ciascun frammento è a sua volta un datagramma IP completo che
viene trasmesso attraverso una serie di reti fisiche indipendentemente
dagli altri
24
FRAMMENTAZIONE IP
• I frammenti possono arrivare fuori ordine, come fa il livello di rete a
ricomporre i frammenti nel pacchetto originale?
• Usa identificazione, flag, e offset
– Identificatore (16 bit) è associato al datagramma dall’host sorgente.
Associato a IP sorgente e IP destinazione identifica quel datagramma
in un intervallo di tempo ragionevolmente lungo.
• i frammenti di quel datagramma mantengono il valore di questo campo. Il
destinatario riconosce i frammenti che vanno assemblati insieme
– Offset (13 bit) indica la posizione relativa come multiplo di 8 byte.
Serve ad ordinare i frammenti nell’assemblaggio.
• I frammenti devono essere multipli di 8 byte
• Primo frammento Offset =0
– Flag (3 bit) serve ad identificare l’ultimo frammento – vedi slide
seguente
25
FRAMMENTAZIONE IP – campo flag
• Flag
– Il bit 0 è riservato (per ora vale sempre 0)
– Il bit 1 do not fragment vale:
• 0 se il pacchetto può essere frammentato
• 1 se il pacchetto non deve essere frammentato
– Il bit 2 more fragments vale:
• 0 se il pacchetto è l’ultimo frammento
• 1 se il pacchetto non è l'ultimo frammento
26
FRAMMENTAZIONE IP –esempio
MTU = 1500 byte
C B A
4000 byte
MTU=820
• Il processo di frammentazione
può essere ripetuto
• Ad es. se un frammento deve
essere inoltrato su un
collegamento con MTU ancora più
piccolo
28
Frammentazione IP
• Ricostruzione del datagramma è un processo critico
– Perché?
• Soluzioni?
29
Frammentazione IP
• Ricostruzione del datagramma è un processo critico
– richiede risorse ai nodi intermedi e destinazione
– Ritardo di elaborazione
– se un frammento manca il datagramma deve essere scartato.
• Soluzioni?
Non frammentare!
Do not fragment in IPv4
IPv6 non supporta la frammentazione
30
INDIRIZZAMENTO IP
31
Indirizzi IPv4
• Ogni host è connesso ad Internet attraverso un'interfaccia di
rete, che è il confine fra l'host ed il collegamento su cui
vengono inviati i datagrammi.
– Ad ogni interfaccia è assegnato un indirizzo IP.
– I router devono necessariamente essere connessi ad almeno due
collegamenti.
• Gli indirizzi IP sono costituiti da 32 bit (4 byte), rappresentati
in notazione decimale puntata.
32
Indirizzi IP
• Ogni host ha un indirizzo univoco diviso in due parti:
• Network ID + Host ID , che identificano una rete IP su Internet
e l’host su quella rete IP.
33
Strategie di indirizzamento
• Come assegnare gli indirizzi?
34
Classful addressing
• Prefissi di rete di lunghezza fissa
• Reti divise in classi
35
Classful addressing
• 5 classi di indirizzi IP
– Classe A: 7 bit per 128 reti IP, 24 bit
• 0.0.0.0 - 127.255.255.255
• Reti di 16 milioni di host
– Classe B: 14 bit per ca. 16000 reti IP, 16 bit host id
• 128.0.0.0 - 191.255.255.255
• Reti di circa 64000 host
– Classe C: 21 bit per reti IP e 8 bit per host id
• 192.0.0.0 - 223.255.255.255
• Reti di circa 256 host
– Classe D, riservata a multicasting,
• 224.0.0.0 - 239.255.255.255
– Classe E, riservata per usi futuri/ricerca
• 240.0.0.0 – 255.255.255
36
Esempi di Indirizzi IP
37
Strategie di addressing
• Classful addressing
– Dato un indirizzo IP è facile risalire all’indirizzo di rete
– Ma… poco flessibile nell’utilizzo dello scarso range di
indirizzi disponibili
• Soluzioni?
38
Strategie di addressing
• Classful addressing
– Dato un indirizzo IP è facile risalire all’indirizzo di rete
– Ma… poco flessibile nell’utilizzo dello scarso range di
indirizzi disponibili
• Soluzioni?
– Classless addressing
– IPv6: indirizzi IP di 128 bit anziché 32 bit
• Prefix length (multipli di 4 bit)
39
Indirizzamento senza classi
• Notazione CIDR (Classless Interdomain
Routing) RFC 1519
40
Indirizzamento senza classi
41
Esempio
223.1.1.1
Rete data
223.1.1.2 223.1.2.1
dall’interconnessione di tre 223.1.1.4 223.1.2.9
sottoreti
223.1.2.2
223.1.1.3 223.1.3.27
24 bit per l’indirizzo di rete:
subnet
/24
223.1.3.1 223.1.3.2
Indicare l’indirizzo di
ciascuna sottorete
42
Copyright 1996-2005 J.F Kurose and K.W. Ross
Esempio
223.1.1.0/24
223.1.2.0/24
223.1.1.1
Rete data
223.1.1.2 223.1.2.1
dall’interconnessione di tre 223.1.1.4 223.1.2.9
sottoreti
223.1.2.2
223.1.1.3 223.1.3.27
24 bit per l’indirizzo di rete:
subnet
/24
223.1.3.1 223.1.3.2
223.1.3.0/24
43
Copyright 1996-2005 J.F Kurose and K.W. Ross
Maschera di sottorete
Indirizzo
a.b.c.d/n
n bit più a sinistra costituiscono la parte di indirizzo
di rete
La rete ha indirizzo
150.217.8.0/24
45
Esercizio 1
Da quanto detto gli indirizzi:
150.193.4.1/22
150.193.8.18/22
150.193.11.3/22
appartengono alla stessa rete?
46
Per rispondere, l'uomo.....
• Per verificare se i tre indirizzi IP appartengono
alla stessa rete l'uomo confronta i 22 bit più a
sinistra delle tre diverse sequenze:
150.193.4.1/22
10010110 11000001 00000100 00000001
150.193.8.18/22
10010110 11000001 00001000 00010010
150.193.11.3/22
10010110 11000001 00001011 00000011
e verifica così che il primo indirizzo non è sulla stessa
rete degli altri due
47
Per rispondere, il calcolatore. .
48
Esercizio 2
Un host A ha l’indirizzo IP 167.199.170.82/27.
Indicare:
• l’indirizzo di rete di A
• il primo e ultimo indirizzo nel range degli indirizzi
della rete di A
49