Network Layer
Network Layer
Il livello di rete si occupa di prendere i segmenti dal livello di trasporto incapsularli in datagrammi e
inoltrarli attraverso la rete.
Nellesempio H1 inoltra i
pacchetti al proprio router
vicino, R1, che si occuper
di inoltrare il pacchetto di
H1 ai propri router limitrofi
guardando lindirizzo IP,
allo stesso modo H2
ricerver il pacchetto dal
router limitrofo R2.
Routing e forwarding
1. Forwarding, i router devono trasferire i pacchetti dalla giusta porta di ingresso al giusto
collegamento in uscita(decisione locale).
2. Routing, determina il percorso che il pacchetto deve seguire attraverso degli algoritmi di
routing.
Allinterno del livello di rete possiamo distinguere quindi due diversi piani:
Control Plane
Determina come il datagramma viene indirizzato dai router lungo il percorso end to end tra
mittente e destinatario.
1. Algoritmi tradizionali implementati nei router, cio ogni router parla con il proprio vicino,
se ci sono guasti per non possono comunicare
2. SDN, approccio centralizzato, abbiamo un remote controller centralizzato a cui sono
collegati i router, attraverso dei control agents(CAs), quando ci sono problemi la
propagazione rapida e in pi calcola percorsi migliori.
ANALOGIA BUS
Control Plane, prima di mandare gli autisti a prendere le persone dobbiamo conoscere tutte le
fermate(nelle reti equivale alle remote networks); quindi il control plane del bus, sar conoscere
tutti i percorsi e le fermate, in questa fase non abbiamo ancora caricato n scaricato persone.
Data Plane, equivale a trasportare le persone(pacchetti) lungo il percorso dove transita il bus.
Per inoltrare i pacchetti i router estraggono dal campo intestazione il valore che utilizzano come
indice nella forwarding table, che punta alla giusta interfaccia di output.
Esempio:
Terminologia:
Analogalmente all handshake a 3 vie delle connessioni TCP anche alcuni protocolli di rete(ATM,
MPLS) stabiliscono che i router prima di scambiarsi dati debbano effettuare un handshake tra loro,
per impostare lo stato della connessione, prima che i pacchetti inizino a fluire tra di loro.
Le reti che effettuano la connessione sono dette reti a circuito virtuale(limplementazione molto
diversa dallimplementazione nel livello di trasporto, qui sono implementate sia nei router che nei
sistemi periferici e non solo ai bordi della rete), quelli che non la offrono sono dette reti datagram.
Modelli di servizio
Quali sono i servizi offerti dal livello rete? Questo dipende dal modello di servizio della rete che
definisce le caratteristiche del trasporto end-to-end di dati tra i sistemi periferici di invio e ricezione
Vediamo alcuni servizi che il protocollo di rete fornisce al livello di trasporto dellhost mittente
quando invia i segmenti:
11001000000101110001011010100001
I router non mantengono le informazioni di stato relative alle connessioni, ma solo quelle relative
all'inoltro. Le informazioni sulle tabelle di inoltro sono aggiornate ogni 1-5 minuti, per cui i
pacchetti possono arrivare in disordine.
Architettura router
Porte di ingresso
Il lookup avviene:
1. usando le informazione nellheader del pacchetto, si determina la giusta porta di uscita
guardando la tabella di instradamento
2. il forward basato solo sullindirizzo IP
3. il forward basato su qualsiasi campo nellheader del pacchetto
Altri componenti
output ports, memorizza i datagrammi che sono stati inoltrati dallo switch fabric e ritrasmettono il
pacchetto sul collegamento, svolge la funzione di livello fisico, di collegamento proprio come le
porte di ingresso(solitamente, nei collegamenti bidirezionali, ogni porta di uscita verso un
collegamento accoppiata con la porta di ingresso di quel collegamento, con una line card).
NB la funzione di lookup appena vista viene svolta anche dal routing processor, in router, per cui in
router con bassa capacit si richiama il routing processor.
Struttura di commutazione
La commutazione consiste nel trasportare un pacchetto da una porta di ingresso a una porta di
usctita, esistono varie tecniche per farlo:
2. Switching via bus, le porte di ingresso trasferiscono i dati alle porte di uscita tramite un bus
condiviso; tipicamente quando arriva un pacchetto dallinterfaccia di rete la porta di ingresso
aggiunger un ettichetta con su scritto a che porta il bus deve inoltrare il pacchetto, come
abbiamo gi visto in SO2 le porte di output riceveranno ciascuna il pacchetto, ma solo la
destinataria lo accoder, e rimuover lettichetta. La larghezza di banda della commutazione
limitata da quella del bus. NB possiamo trasferire un solo pacchetto per volta
3. Switching tramite una rete di interconnessione, abbiamo un percorso dedicato per ogni
possibile collegamento(interfaccia di input interfaccia di output), senza alcun percorso
condiviso, quindi 2n bus, se 2 due pacchetti sono destinati alla stessa porta di output uno dei
due dovr aspettare
Illustrazione 8: Ogni bus
verticale interseca ogni bus
orizzontale a un punto di
incrocio, che pu essere
aperto o chiuso(al momento
della commutazione), dal
controller della struttura di
commutazione
Accodamenti
Supponiamo che la velocit dei collegamenti sia uguale dappertutto.I pacchetti vengono trasferiti
da una coda a un altra e un pacchetto pu essere trasferito dalla porta di ingresso alla porta di
uscita nello stesso intervallo di tempo per cui un pacchetto arriva a una porta di ingresso.
Il traffico sia sulle porte di input che quelle di output dipendono dalla quantit di traffico sulla rete,
dalla velocit della struttura di commutazione, e dalla velocit della linea. Queste code possono
crescere fino a occupare tutta la memoria del router, e in questo caso si possono verificare perdite di
pacchetti.
Se la struttura di commutazione non sufficentemente rapida a smaltire i pacchetti si pu verificare
accodamento sulle porte di input, ma se ci sono molte richieste quali scheduliamo prima?Qui
supponiamo FCFS
Illustrazione 9: HBO
Ricordiamo che possiamo trasferire differenti pacchetti in parallelo quando le porte di uscita sono
differenti, nel primo caso supponiamo che il commutatore decida di trasferire il primo pacchetto in
alto a sinistra, in questo caso il pacchetto in basso a sinistra dovr attendere e anche il suo
predecessore, anche se ha luscita libera; un buon algoritmo di commutazione dovrebbe evitare
questo fenomeno, molto difficile!.
Porte di uscita
possibile che il cavo di rete non riesca a smaltire i pacchetti in arrivo dalla struttura di
commutazione, per cui deve bufferizzarli, molto importante avere:
1. uno schedulatore di pacchetti, avendo molti pacchetti accodati sulle porte di uscita
dobbiamo stabilire quale servire, possiamo utilizzare semplici FCFS, fino ai pi sofisticati
WFQ
2. policy che stabiliscano cosa fare quando arriva un pacchetto che non pu essere
bufferizzato(perch pieno), bisogna decidere se buttare il nuovo arrivato o sostituirlo con un
uno nella coda; pu risultare utile eliminare pacchetti dalla coda o marcarli, prima che la
coda si riempia in modo che il mittente sappia della congestione Tutte queste tipologie di
algoritmi sono detti ARQ.
SCENARIO TIPICO DI ERRORE
Supponiamo che la velocit di linea sulle porte di input/output abbiamo lo stesso tasso di
trasmissione Rline pacchetti al secondo e ci siano N porte di input e N porte di output, e supponiamo
che abbiano tutti la stessa lunghezza e arrivino tutti in modo sincrono, vale a dire, cio mentre
inviamo un pacchetto pu arrivarne un altro oppure nessuno. La struttura di commutazione ha tasso
di elaborazione di Rswitch e supponiamo che sia N volte pi veloce di Rline In questo modo
laccodamento sulle porte di input trascurabile, poich abbiamo N porte e possiamo elabolare N
volte pi velocemente, supponiamo che arrivino N pacchetti tutti destinati alla stessa porta di uscita,
quindi al tempo richiesto per ricevere un singolo pacchetto ne arriveranno N nuovi, la porta di
uscita pu trasmettere un solo pacchetto per volta(tempo di tramissione), e in questo intervallo
possono arrivare N nuovi pacchetti che devono essere accodati; la memoria potrebbe esaurirsi
velocemente.
Grandezza buffer
Esiste una regola empirica[RFC 3439], la quantit di memoria riservata al buffer devessere uguale
alla media dell RTT per la capacit del collegamento, es con un RTT di 250ms e un collegamento
da 1Gbps B= RTT * C =2,5 Gbit;
recenti studi suggeriscono che con N flussi TCP il buffer devessere grande cos.
Algoritmi di scheduling
Ancora su scheduling
Priority, potrei avere due differenti code, una con i pacchetti ad alta priorit e una con i pacchetti a
bassa priorit, quando devo inoltrare un pacchetto mando prima quello a pi alta priorit
PROTOCOLLO IP
1. IPv4
2. IPv6
IP.
Routing protocols, determina il percorso che i datagrammi seguiranno per arrivare a
destinazione, compila le tabelle di inoltro.
ICMP, rileva errori nei datagrammi, e risponde a richieste di informazioni.
FORMATO DATAGRAMMI IPv4
Versione, 4 bit, specificano la versione del protocollo IP del datagramma, poich IPv6 e
IPv4 hanno formati differenti e i router devono sapere con cosa hanno a che fare.
Lunghezza dellintestazione, 4 bit, specificano dove inizianoi dati, poiche IP ha un campo
Opzioni, non obbligatorio; normalmente lintestazione lunga 20 byte.
Tipo di servizio, distingue il tipo di datagramma, per esempio un datagramma riservato alla
telefonia o quelli che richiedono basso ritardo, ecc
Lunghezza del datagramma, 16 bit, lunghezza del datagramma in byte dati pi header, al
massimo 2^16 -1 byte
Identificatore, flag, spiazzamento hanno tutti a che fare con la frammentazione; IPv6 non
consente la frammentazione
Tempo di vita, per evitare che diagrammi persi viaggino per sempre nella rete stato incluso
il campo TTL a ogni router viene decrementato di 1 quando scende a 0 viene scartato.
Protocollo, Indica il protocollo a livello di trasporto al quale i dati vanno passati, quest
informazione indicata da un valore numerico
Checksum dellintestazione, a ogni hop il router calcola il checksum, sommando i campi
dellintestazione in complemento a 1.
Indirizzi IP sorgente e destinazione, Indirizzo mittente e destinazione(calcolato con DNS)
Opzioni, allungano il campo intestazione, tra le opzioni possiamo trovare timestamp, router
da percorrere, percorsi da effettuare ecc
Dati, segmento a livello di trasporto TCP/UDP; potrebbe trasportare anche altri tipi di
messaggi, come ICMP
Frammentazione datagrammi IP
A livello di collegamento non sempre possibile trasportare pacchetti di qualsiasi dimensione, per
questo motivo si definisce un MTU, cio la massima quantit di dati che un frame pu trasportare.
MTU pone un limite ai pacchetti di rete, poich da un router a un altro sono incapsulati in frame,
ci pone delle difficolt, un datagramma per arrivare a destinazione attraverser molti
router(presumibilmente), e sicuramente non tutti i router avranno lo stesso protocollo di rete, a
fronte di questo come faccio a spedire i pacchetti con differenti MTU?Utilizziamo la
frammentazione, supponiamo che un router riceva un pacchetto dal livello di collegamento, a
questo punto esamina lintestazione e determina il collegamento di uscita, ma il protocollo in uscita
ha MTU pi piccola della lunghezza del frammento IP, a questo il pacchetto viene spezzato in
pacchetti pi piccoli e poi vengono spediti.
Un altro aspetto legato alla frammentazione il riassemblaggio, questi pacchetti devono essere
riassemblati, farlo a livello di router non conviene, per via dei tempi di gestione, per cui se ne
occuperanno i livelli di rete dei sistemi periferici, per fare questo un il livello di rete deve riuscire a
capire quando un pacchetto e frammentato, riuscire a riconoscere tutti i frammenti ecc per
adoperare queste funzioni utilizza i campi spiazzamento, identificazione e flag
Vediamo un esempio
come deframmentiamo?
Indirizzamento IPv4
Alcune premesse, normalmente ogni host ha un solo collegamento con la rete, quando
limplementazione di IP dellhost vuole inviare un datagramma lo fa attraverso quel collegamento;
il confine tra host e collegamento detto interfaccia; una volta detto questo facile convincersi che
i router hanno 2 interfacce, avendo 2 collegamenti, uno per inviare datagrammi e uno per riceverli.
IP richiede che tutte le interfacce abbiano associato un indirizzo IP.
Lindirizzo IP una sequenza di 4(1 byte ciascuno) numeri espressi nella forma decimale puntata,
cio abbiamo che ogni byte espresso in decimale ed separato dagli altri con un punto es:
192.168.0.1, con 32 bit possiamo indirizzare 2^32-1 interfacce, estremamente irrealistico.
Gli indirizzi IP associati a host e router non sono scelti in modo casuale, parte dellindirizzo
dellinterfaccia determinata dalla sottorete al quale collegata(guardare illustrazione precedente)
Ai giorni nostri le interfacce dei router non si collegano direttamente con gli host ma abbiamo una
situazione del genere:
In internet gli indirizzi sono assegnati tramite la strategia CIDR, Lindirizzo mantiene la forma
esadecimale puntata A.B.C.D/X dove X indica il numero di bit dedicati alla sub net
Il gruppo pu creare 8
sotto-reti, ma quali
sono i vantaggi?
Nellillustrazione a
destra
Un vantaggio di questo metodo che un router, esterno allorganizzazione, quando deve inoltrare
un datagramma pu considerare solo i primi x bit, una volta giunti nella subnet il router guarder
solo il campo host(32-x bit) per individuare lhost.
Prima di CIDR si utilizzavano gli indirizzi di clsse, la parte network dellindirizzo IP poteva essere
lunga 1,2,3 byte, rispettivamente chiamati indirizzi di classe A,B e C, il che portava a definire sotto-
reti con o troppi pochi host indirizzabili o troppi. DIVISIONE TROPPO RIGIDA.
NB: nella netmask il numero di 1 indica il numero di bit statici, anche possibile che i router ai
quali in
Dhcp consente a un host di ottenere un indirizzo IP in modo automatico, gli verr anche
comunicato:
1. una maschera di rete
2. lindirizzo del router per uscire dalla sottorete(gateway)
3. lindirizzo del DNS server locale.
4. Il tempo di vita dellIP, in questo modo gli indirizzi IP non utilizzati potranno essere
riassegnati
Il DHCP pu essere configurato per offrire sempre lo stesso indirizzo IP a un determinato host
oppure gli viene assegnato un indirizzo IP dinamico.Sostanzialmente un server in ascolto di
richieste.
DHCP un protocollo plug&play, poich gli host si connettono alla rete e dinamicamente gli
viene assegnato un indirizzo IP, utilizzato anche nelle reti wirless, e nelle reti residenziali di accesso
a internet. Da questa definizione vediamo che anche un protocollo client-server.
Supponiamo che un utente sia collegato con il proprio smartphone alla rete delluniversit che si
sposti dalla biblioteca alla propria classe, fino a un altro piano delluniversit; tutte queste stanze
hanno una diversa subnet, e quindi spostandoci da una stanza allaltra dobbiamo ricollegarci, DHCP
risulta particolarmente adatto a questo compito. Altrettanto utile nelle reti di accesso agli ISP
residenziali, per esempio una rete ISP con 2000 clienti, che non ha mai pi di 400 clienti attivi, non
abbiamo bisogno di 2000 indirizzi, ne sono sufficenti 512 quindi a.b.c.d/23, quando un utente si
connette gli viene assegnato un indirizzo IP, e viene tolto dalla lista degli IP disponibili, quando si
sconnette viene rimesso tra i disponibili.
Ogni dispositivo connesso alla rete richiede un indirizzo IP, il proliferare di sotto-reti small office,
home office, implica che lISP fornisca un insieme(blocco di indirizzi contigui) di indirizzi per le
macchine connesse alla rete, supponiamo che alla rete LAN si aggiungano altri dispositivi, a questo
punto lISP deve fornire unaltro blocco di indirizzi(maggiore di quello di prima), e se lISP avesse
gi allocato tutti gli indirizzi contigui(quelli di cui disponeva) per quella LAN?
Il router ha uninterfaccia che fa parte della rete domestica, tutte le interfacce di rete hanno lo stesso
indirizzo di sotto-rete 10.0.0.0/24, uno spazio di indirizzamento simile detto privato(NB
moltissime reti private utilizzano questo stesso identico indirizzamento), cio ha senso solo
allinterno della rete locale, questi indirizzi possono essere utilizzati per scambiare pacchetti
allinterno della stessa rete locale, per indirizzarare pacchetti relativi allinternet devo utilizzare un
altra tecnica.
I router abilitati al NAT vengono visti come un dispositivo con un unico indirizzo IP unico, tutto il
traffico della rete locale ha indirizzo IP 138.76.29.7, e il traffico in entrata deve avere lo stesso
indirizzo per la destinazione; il router ottiene il proprio indirizzo dal DHCP dell ISP,
successivamente manda in esecuzione un server DHCP che assegna gli indirizzi alle macchine
locali.
Il campo porta lungo 16 bit, circa 2^16-1 connessioni simultanee con un solo IP.
Quando i pacchetti richiesti arriveranno il NAT far il processo inverso, cio consulter la tabella
sostituir i campi porta e indirizzo dei datagrammi, e invier sulla rete locale.
Alcune controversie
I numeri di porta sono stati concepiti per indirizzare i processi, e non gli host.
I router dovrebbero elaborare pacchetti fino al livello 3(rete,collegamento, fisico).
Viola il principio end-to-end, gli host dovrebbero comunicare direttamento tra di loro, senza
intromissioni di nodi n modifica di indirizzi IP.
Problemi connessioni P2P, il problema sta nel fatto che un peer con NAT non pu agire da
server e accettare connessioni TCP, per risolvere si aggiunge un peer intermedio che non fa
uso di NAT
IPV6
Motivi introduzione:
1. I 32 bit dellIPV4 erano troppo pochi per poter indirizzare tutte le macchine connesse in
rete.
2. Il formato dellheader consente una velocit di trasmissione maggiore
3. non c pi il fastidioso campo optional, quindi IPV4 ha un header di 40 byte
4. non necessita di frammentazione
5. Qualita del servizio migliore, dipende dal tipo di protocollo
Formato IPV6
Indirizzamento Esteso, indirizzo a 128 bit, supporta indirizzi unicast, multicast, brodcast, e
anche anycast, cio consegna di un datagramma a un qualsiasi host allinterno del gruppo(il
gruppo identificato dallindirizzo anycast), normalmente il pi vicino. Pu essere usata per
inviare una GET HTTP al pi vicino di una serie di siti.
Intestazione Ottimizzata, alcuni campi di IPV4 sono stati eliminati, otteniamo
unintestazione a 40 byte(lunghezza fissa), in questo modo IP ci metter meno a elaborarli,
inoltre una nuova codifica delle opzioni ne consente lelaborazione in maniera pi flessibile.
Etichettatura e priorit dei flussi, possibile fare in modo che un particolare flusso di dati
possa essere etichettato, poich il mittente vuole che sia gestito in maniera diversa, come un
QoS diverso da quella di default o un servizio realtime, in modo da poterli soddisfare,
esempio un flusso audio o video oppure traffico ad alta priorit per utenti che pagano. C
anche un campo a 8 bit, per identificare la priorit di 1 pacchetto.
Da IPV4 a IPV6
Tutti i nuovi router IPV6 sono retrocompatibili con IPV4, ma i router IPV4 non sono compatibili
con IPV6, come risolvere:
1. Spegnere tutte le macchine per un giorno e aggiornarle, 25 anni fa fu fatta una cosa simile e
fu un misero insuccesso.
1. Metodo a doppia pila, tutti i nodi IPV6 sono dotati di unimplementazione IPV4 completa,
in modo che possano inviare o ricevere sia datagrammi IPV4 che IPV6, devono avere, di
conseguenza, sia 1 indirizzo IPV4 che IPV6, e devessere in grado di distinguere se un
router(al quale magari vuole inviare qualcosa) IPV6 o no, per far questo si chiede al DNS
di restituire lindirizzo IPV6 del nodo, se questo non lo supporta sar restituito quello IPV4.
Illustrazione 25: Il nodo B contatta il DNS e scopre che il successivo nodo supporta solo
IPV4 quindi converte il pacchetto eliminando i campi in pi
Illustrazione 24: con un approccio a doppia pila certamente due nodi IPV4 saranno in grado
di scambiarsi pacchetti IPV6 e 2 nodi IPV6 saranno in grado di scambiarsi pacchetti IPV6,
ma anche possibile per due nodi IPV6 scambiarsi pacchetti IPV4, anche se E e F
supportano IPV6 il datagramma che gli sar passato non avr alcuni campi IPV6 poich C e
D non supporta IPV6
Tunnelling
Adozione
molto difficile aggiornare il livello di rete, senza far danni, per questo si rimanda il pi possibile;
mentre i protocolli a livello applicativo hanno conosciuto un rapido sviluppo.
SDN
Nelle reti tradizionali linstradamento basato solo sullindirizzo IP di destinazione del pacchetto,
allinterno delle reti si stanno sempre di pi diffondendo middlebox(switch di livello 2 o livello 3),
cio dispositivi che agiscono non solo sugli indirizzi IP, ma anche sui livelli inferiori(livello di
collegamento) o superiore es: porte dei socket; un esempio di questi dispositivi il NAT che
riscrivono IP e numero di porta; i firewall bloccano i pacchetti basandosi sia su porta che indirizzi
IP, ma anche il load balancer inoltrano i pacchetti, verso server, che hanno bisogno di un
determinato servizio, guardando la porta di servizio.
La gestione di questi servizi non semplice, e in questo SDN si sta adoperando per fornire servizi a
livello di rete e collegamento in maniera unificata.
OpenFlow(protocollo SDN)
Le tabelle match-action in openflow sono note come flow table e, ogni riga contiene:
Una serie di valori nel campo intestazione con il quale il pacchetto sar confrontato, nel caso
non ci siano corrispondenze il pacchetto viene scartato oppure mandato al livello superiore.
Un insieme di contatori, il contatore viene incrementato quando un pacchetto viene
associato a una determinata occorrenza della tabella.
Una serie di azioni che
devono essere
intraprese quando un
pacchetto viene
associato a una
determinata
Illustrazione 28: esempio azioni che possono essere intraprese, occorrenza della
nelle tabelle di flusso possibile utilizzare le wildcard tabella
Illustrazione 29: In basso gli 11 campi del pacchetto che entra nella tabella
dei flussi
collegamento e trasporto, quindi a livello di collegamento i frame non trasportano solo datagrammi
di livello 4.
Switch port= porta in entrata al packet switch, sul quale il pacchetto viene ricevuto.
Action
la tabella dei flussi ha molteplici azioni, nel caso per unoccorenza ne fossero specificate molte
vengono eseguite in questordine:
Illustrazione 30: In questo esempio notiamo quanto sia semplice
impore dei vincoli all'inoltro