Sei sulla pagina 1di 29

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.

Come si pu vedere dalla


figura il livello di rete si
trova negli host e anche nei
router.

Routing e forwarding

Il livello di rete per trasferire i pacchetti da un host a un altro utilizza 2 funzioni:

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.

DATA PLANE CONTROL PLANE

Allinterno del livello di rete possiamo distinguere quindi due diversi piani:

1. Data plane, inoltro dei pacchetti attraverso la rete


2. Control plane, conoscenza dei percorsi che pu percorrere un router attraverso la rete, in
poche parole disegna la topologia della rete nelle forwarding table
Data plane

I router decidono dove instradare il pacchetto.

Inoltra i pacchetti al prossimo collegamento in uscita, nella direzione per raggiungere il


router destinazione
I pacchetti viaggiano attraverso i router
I router utilizzano ci che il control plane ha costruito per poter instradare i pacchetti verso il
prossimo collegamento in uscita.

Illustrazione 1: Come gi abbiamo


detto i router guardano le
informazioni di rete per instradare
i pacchetti

Control Plane

Determina come il datagramma viene indirizzato dai router lungo il percorso end to end tra
mittente e destinatario.

Esistono 2 approcci per implementare il control plane:

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.

Illustrazione 2: Algoritmo tradizionale, i router si scambiano i messaggi


attraverso un protocollo di instradamento, gli algoritmi sono implementati
nei router.
Illustrazione 3: Control plane con SDN

ANALOGIA BUS

Supponiamo di essere gli amministratori di un servizio di trasporto in una piccola citt

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.

Tabelle di instradamento e altre componenti router

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:

Le tabelle di instradamento sono


compilate dal Control Plane, con i
meccanismi gi analizzati

Illustrazione 4: Arriva un pacchetto un header 0111 il router lo


inoltrer verso l'interfaccia 2

Terminologia:

packet switch, dispositivo che si occupa del trasferimento dallinterfaccia di ingresso a


quella di uscita, in base allintestazione di rete.
Ne esistono di 2 tipi:

1. commutatori a livello di collegamento, stabiliscono linoltro a livello di collegamento


2. router, stabiliscono linoltro a livello di rete, sono dispositivi di livello 3, ma implementano
anche funzionalit di livello di collegamento, poich necessario per implementare linoltro
a livello di rete

Instaurazione della connessione

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:

1. Consegna garantita, il datagramma giunger prima o poi a destinazione


2. Consegna garantita con ritardo limitato, il pacchetto verr consegnato entro un limite di
tempo
3. Consegna ordinata, i pacchetti giungeranno nello stesso ordine con cui sono stati inviati
4. Banda minima garantita, emula il comportamento di un collegamento trasmissivo con bit
rate specificato, anche se leffettivo percorso end-to-end pu attraversare diversi
collegamenti fisici.
5. Jitter Limitato, il lasso di tempo tra linvio di 2 pacchetti consecuiti uguale a quello di
ricezione
6. Sicurezza, cifratura del payload(dati trasportati) di tutti i datagrammi.

Illustrazione 5: Alcuni modelli di servizio


Reti Datagram(non orientato alla connessione)

Internet una rete datagram, e non a circuito virtuale(VC).

Prima di inviare un pacchetto viene contrassegnato con l'indirizzo del destinatario.


Come fanno i router a inoltrare tali pacchetti utilizzando indirizzi di destinazione e forwanding
table?
Supponiamo che i nostri indirizzi siamo a 32 bit, ci comporta 2^32 indirizzi possibili che
rappresentati tutti nella tabella porterebbero a circa 4 miliardi di indirizzi(impossibile)

La ricerca LPM devessere


effetuata in pochi nanosecondi,
per far questo si utilizzano
DRAM e SRAM(per ridurre i
tempi di accesso) e spesso si
usano TCAM che restituisce la
porta di uscita in un ciclo di
clock indipendentemente
Illustrazione 6: soluzione per rappresentare 2^32 indirizzi
dalladdress
ES:

11001000000101110001011010100001

Su quale uscita dirigiamo il pacchetto?


Dobbiamo prendere la pi lunga sequenza
che matcha con l'indirizzo di destinazione,
per cui dirigeremo verso l'interfaccia 0

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

un router composto da:


routing processor,
gestisce le tabelle di
instradamento, gli algortimi
di routing, risponde a
malfunzionamenti, e
gestione delle prestazioni(
un software che gira su una
CPU, lavora in
millisecondi)
switching fabric, connette
porte di ingresso a porte di
uscita.

Illustrazione 7: sopra la linea control plane, sotto data plane


I componenti sono per la maggior parte hardware questo perch dobbiamo operare nellordine di
grandezza dei nanosecondi e a livello software non possibile.
Esempio
Abbiamo un collegamento in input a 10Gbps e un datagramma IP a 64byte, la porta di input ha soli
52 ns, per elaborare il pacchetto prima che arrivi il prossimo, se ci sono N porte su una line card, la
pipeline di elaborazione dei datagrammi deve operare N volte pi velocemente.

Porte di ingresso + porte di uscita + struttura di commutazione implementano la funzione di


inoltro(router forwarding plane)

Porte di ingresso

Svolgono diverse funzioni:

1. Funzione a livello fisico, di terminazione di ingresso in un router(mostrato in verde)


2. Funzioni a livello di collegamento, necessarie per comunicare con laltro capo del
collegamento in ingresso
3. Funzione di ricerca(con LongestCommonPrefix), serve per inoltrare i pacchetti nella giusta
porta di uscita ogni porta di input contiene una copia, in memoria(si utilizzano memorie
molto veloci, in modo da rendere la ricerca molto rapida) della forwarding table, in input, in
modo da non dover invocare ogni volta il servizio di instradamento, necessario mantenere
una coda poich i
datagrammi potrebbe arrivare pi velocemente di quanto lo switch fabric ci metta a smaltirli,
inoltre non detto che il commutatore centrale sia libero.

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

In SDN abbiamo il forward generalizzato


Le porte di ingresso svolgono anche altre funzioni come elaborazione a livello fisico e di
collegamento, numero di versione del pacchetto, checksum e TTL

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:

1. Commutazione in memoria, i router erano macchine vere e proprie, e la commutazione da


un buffer di ingresso e un buffer di uscita veniva effettuata tramite la CPU, quando arrivava
un pacchetto in ingresso la porta di ingresso svegliava la CPU tramite un interrupt, che
procedeva a copiarlo nella memoria del processo di instradamento, e come abbiamo gi
analizzato individuava la giusta porta di uscita, la velocit limitata dalla larghezza di banda
della memoria(se ci possiamo scrivere B pacchetti al secondo non possiamo andare pi
veloci di B/2, poich ogni pacchetto devessere letto e scritto, 2 op), inoltre pu essere
inoltrato un solo pacchetto per volta; alcuni router moderni adoperano la commutazione in
memoria, ma sono multiprocesso

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.

allistante t arrivano arrivano pi pacchetti destinati alla porta di uscita superiore(rossa);


supponendo un commutatore che opera al triplo della velocit di linea nellunit di tempo, cio nel
tempo per ricevere un pacchetto, il commutatore ha gi trasferito tutti e 3 i pacchetti nella porta di
uscita, il che potrebbe causare overflow.

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

sono possibili diversi algoritmi:


1. FIFO
2. WFQ
3. RoundRobin
dobbiamo mettere a disposizione anche delle discard policy, cio cosa fare quando un pacchetto
arriva quando la coda piena?

1. Drop-tail, elimina il nuovo arrivato


2. Priority, rimuove in base alla pririorit, quindi non detto che venga scartato,
3. Random, elimina un pacchetto dalla coda in modo casuale

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

lappartenenza o meno a una classe potr dipendere da alcuni


parametri del pacchetto, come IP o qualsiasi altra informazione
nellheader.

Illustrazione 10: esempio scheduling


con priorit Illustrazione 11: ciclicamente scandiamo la coda
e inviamo quelli a priorit pi alta, alternativa
Round Robin con un solo buffer

Anche in questa tecnica abbiamo diverse classi di


priorit, ciclicamente si scandisce la coda e inviamo un
pacchetto ad alta priorit e poi in un pacchetto a bassa
priorit e cos via.
WFQ

Trattasi di un round robin, a


ogni ciclo serviamo una coda
per un ammontare di tempo,
dipendente dalla priorit della
coda stessa.

PROTOCOLLO IP

Livello di rete di internet, esistono 2 versioni:

1. IPv4
2. IPv6

Illustrazione 12: Il livello di rete di internet

Il livello di rete di internet composto da 3 parti:

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

Presenta numerosi campi, tra cui:

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

I datagrammi IP hanno 20byte di intestazione IP + 20 byte di intestazone TCP e messaggio


applicativo.

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

se flag = 1, allora un frammento, lultimo frammento del pacchetto ha il bit posto a 0


Identificatore, tutti i frammenti di uno stesso pacchetto hanno lo stesso identificatore
spiazzamento, serve per riordinare i pacchetti

Vediamo un esempio

come deframmentiamo?

Illustrazione 13: datagramma da 4000 byte a fronte di un MTU da


1500 byte

20 byte sono di header,


per la frammentazione si
tiene conto solo della
grandezza del segmento.

I valori devono essere


multipli di 8 byte.

Illustrazione 14: deframmentazione in 3 pacchetti


Se un frammento si perde lintero pacchetto verr scartato.

Illustrazione 15: esempio precedente

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.

Lindirizzo IP pu essere spezzato in 2, network,


che identifica la sottorete e host che identifica
lhost nella sottorete.

Nellimmagine le interfacce 223.1.1.x del router e


le interfacce che collegano hanno i primi 24 bit
uguali(network), la rete che interconnette le
interfacce dei router con linterfaccie degli hosts
detta sub net

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:

Una subnet composta da device


con lo stesso indirizzo IP(parte
network), e in grado di comunicare
tra di loro senza router.

Illustrazione 16: swtich ethernet e wirless access point

A ogni subnet viene associato un indirizzo IP, es


223.1.1.0/24 /24 viene detta maschera di
sottorete, mi dice che i primi 24 bit sono fissi, e
identificano la sottorete. Lo 0 nellindirizzo
quello che si dice wildcard e indica qualsiasi
numero

Forse la definizione di subnet che


abbiamo dato un po limitata,
vediamone un altra.

Illustrazione 17: questo risponde alla domanda da dove


prendono gli indirizzi le organizzazioni?
Quante sono le sottoreti in
questo caso?
Certamente 223.1.1.0/24,
223.1.3.0/24, 223.1.2.6, ma ci
sono altre subnet 223.1.9.0/24,
che interconnette i router R2 e
R3, poi abbiamo 223.1.7.0/24 e
223.1.8.0/24; estendiamo quindi
la nostra definizione.

Per identificare le sottoreti


sganciamo interfaccie da host e
router in modo da creare isole di
reti isolate delimitate da queste
interfacce, ognuna di queste reti
detta sottorete; nellesempio
affianco vi sono 6 subnets.

Gestione dellindirizzamento dellinternet globale

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

Illustrazione 18: esempio indirizzo IP CIDR

A un organizzazione(universit, azienda ecc) viene assegnato un insieme di indirizzi continui,


con il prefisso in comune.

Il gruppo pu creare 8
sotto-reti, ma quali
sono i vantaggi?

Nellillustrazione a
destra

Illustrazione 19: I provider richiedo indirizzi all'ente ICANN


200.23.16.0/20 il blocco di indirizzi associato a un provider, il quale lo divide tra le sue 8
compagnie.

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.

Il che ci consente di avere tabelle di instradamento parecchio alleggerite.

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.

Indirizzo IP broadcast, quando inviamo un datagramma allindirizzo 255.255.255.255(subnet mask)


il datagramma verr inoltrato a tutti gli host nella sottorete al quale sto inviando.

NB: nella netmask il numero di 1 indica il numero di bit statici, anche possibile che i router ai
quali in

Host addressing DHCP

Supponiamo che un organizzazzione ha ottenuto un blocco di indirizzi, a questo punto vuole


indirizzare gli host, come li distribuisce?

1. Gli indirizzi IP delle interfacce dei router vengono settati manualmente


2. Gli indirizzi IP dellhost possono essere configurati manualmente, ma spesso si preferisce
utilizzare il DHCP

Dynamic host configuration protocol

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.

Come fa un host a comunicare con il server DHCP?

Il protocollo dhcp si articola in 4 punti:

1. Lhost che vuole un indirizzo IP(lhost


gi collegato alla) utilizza un messaggio
DHCP discover, segmento UDP e lo
invia alla porta 67, non sapendo
lindirizzo IP del server DHCP il client
DHCP crea un datagramma IP con
destinazione
BROADCAST(255.255.255.255
0.0.0.0(cio questo host)), il frame
inviato a tutti gli host della rete
2. Offerta del server DHCP, Se un server
DHCP collegato risponder con un
offerta IP, DNS, netmask, gateway e
lease time, lhost non ha ancora un IP
Illustrazione 20: Il router opera come agente di quindi mandiamo il messaggio in
appoggio, cio comunica agli host dove si trova broadcast, se ci sono diversi server
DHCP, in alcuni scenari abbiamo 1 server DHCP DHCP lhost ricever molte offerte
per ogni sottorete
3. Richiesta DHCP, lhost sceglier lofferta che gli garba di pi e risponder con un DHCP
request, che riporta i parametri di configurazione
4. DHCP risponde con un messaggio DHCP ACK

DHCP offre un servizio di rinnovo automatico


dellIP, quando scade il lease time.

Illustrazione 21: Richiesta IP

Testo 1: DHCP server IP 223.1.2.5


NAT(network address translation)

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?

La soluzione utilizzare un NAT

Illustrazione 22: esempio router abilitato al NAT

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 router per dirigere il traffico localmente utilizza una tabella di traduzione:

verifichiamo il funzionamento con un esempio:


lhost nella rete domestica con IP 10.0.0.1 richiede
una pagina da un web server, quindi fa una richiesta a
128.119.40.186 con porta di destinazione 80 e genera
una porta di origine(dove aspettare i dati) supponiamo
3345 e invia il datagramma nella rete locale, a questo
punto il NAT sostituisce lindirizzo IP del
datagramma con il proprio e genera una nuova porta di origine 5001(ovviamente deve scegliere una
porta che non gia presente nella tabella), a questo punto segna le corrispondenze nella tabella.

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.

Illustrazione 23: riassunto di ci che abbiamo appena descritto

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

Novit rispetto a IPV4:

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.

Altri campi interessanti:


1. Classe di traffico, 8 bit, per priorit
2. etichetta flusso, 20 bit, identifica un flusso di datagrammi
3. Lunghezza del payload, intero a 16 bit, identifica il numero di byte nel datagramma IPV6
che seguono lintestazione a 40 byte
4. Next header, protocollo a cui destinato il payload(UDP TCP)
Campi eliminati rispetto a IPV4

1. Frammentazione/Riassemblaggio, i router intermedi non possono frammentare, e se un


pacchetto dovesse risultare troppo grande per il collegamento? Il router intermedio manda
un ICMP al mittente il quale frammenter il pacchetto.
2. Checksum nellintestazione, poich livello di trasporto e buona parte dei protocolli a livello
di collegamento hanno un loro checksum, ricalcolare il cheksum per ogni router risulta
essere troppo costoso
3. Intestazione fissa a 40 byte.
4. Nuovo tipo di ICMP, con la vecchia versione di IP potevano comunicare condizioni di errore
e dare informazioni limitate a un sistema periferico(es: ping), con IPV6 pu fornire
messaggi pi sofisticati come Pacchetto troppo grande, Opzioni IPV6 non riconosciute
e assume le funzionalita di IGMP, utilizzato per gestire lentrata e luscita degli host nei
gruppi multicast

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.

Ci vuole un approccio pi a lungo termine, cio di aggiornamento graduale, sono possibili 2


approcci(applicabili singolarmente o insieme):

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

Si mette nel payload lintero pacchetto IPV6.


Supponiamo di avere un po di nodi, A deve inoltrare un pacchetto IPV6 a F, ma lungo la strada ci
sono nodi IPV4(che chiameremo tunnel), B inserisce nel payload del pacchetto inoltratogli da A
lintero pacchetto IPV6, questultimo viene indirizzato al nodo E, al lato di ricezione del tunnel e
inviato al primo nodo del tunnel; i nodi del tunnel lo inoltreranno come un normale IPV4 e E,
riconoscer che nel payload c un IPV6 lo estrarra e lo inoltrer come se lo avesse ricevuta da un
nodo IPV6 adiacente.

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.

Linoltro basato sullindirizzo IP si caratterizza in 2 fase: match, ricerca dellindirizzo IP nella


tabella di inoltro e, action, cio inoltro nella struttura di commutazione; linoltro SDN si basa su
un concetto molto pi generalizzato match-action, dover per match pu essere fatto non solo
sullindirizzo IP, ma anche su altri campi dellintestazione di altri protocolli, laction non include
solo linoltro nella struttura di commutazione, ma anche il bilancio di carico dei pacchetti attraverso
una o pi porte di uscita che portano a un servizio, la riscrittura dei campi dintestazione, bloccare
scartare un pacchetto etc
Inoltro generalizzato

i router SDN sono chiamati


packet switch

Illustrazione 27: le tabelle match-action vengono aggiornate da


un controller centralizzato, quindi i router evitano di comunicare
tra di loro
Illustrazione 26: tabella match-action

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

Tutti gli 11 campi


possono essere
confrontati nel match,
e includo campi di
livello di rete,

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.

Non tutti i campi dintestazione sono confrontabili.

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