Sei sulla pagina 1di 22

INTRO

STRUTTURA INTERNET
- Protocollo: definisce le regole che mittente e destinatario, cosi come
tutti i sistemi coinvolti, devono rispettare per comunicare
- Internet protocol stack
a. Application: sede delle applicazioni di rete per la comunicazione
tra host
Pacchetti = messaggi
b. Transport: si occupa di spostare i messaggi
dell’application layer tra gli endpoint (socket)
pacchetti = segmenti
c. Network: si occupa di spostare i pacchetti da sorgente a
destinazione
Pacchetti = datagrammi
d. Link: si occupa di spostare i pacchetti da un nodo al prossimo
sul percorso
i servizi dipendono dal protocollo in uso sul link
Pacchetto = frame
e. Physical: si occupa di spostare i singoli bit del frame da un
nodo al successivo
I protocolli dipendono dal mezzo fisico in uso
- Incapsulamento: ad ogni livello un pacchetto è formato da un header e
un payload; tipicamente il payload è formato dal pacchetto del layer
superiore
- Internet service provider (ISP)
a. Gerarchia: ISP livello 1 -> ISP regionali -> ISP d’accesso
b. POP (point of presence): uno o più router dove gli ISP-client
possono connettersi agli ISP-fornitori
c. Multihome: un ISP (tranne di livello 1) può scegliere di
connettersi a più ISP-fornitore
d. Peering: un gruppo di ISP (dello stesso livello gerarchico)
possono interconnettere le proprie reti, così da far passare
tutto il traffico direttamente su un’unica connessione
e. IXP (internet exchange point): una compagnia di terze parti può
offrire un punto d’incontro dove vari ISP possono fare peering
- Dorsale: collegamento logico che può essere fisicamente singolo o
multiplo, con la quale vengono interconnessi tronchi di rete (con
velocità e capacità inferiori) tramite multiplazione
APPLICATION LAYER
ARCHITETTURA
- Client/server: il server (solitamente un data center, formato da vari
host) soddisfa le richieste dei client
- P2P (peer-to-peer): l’applicazione comunica direttamente con gli host
(peer), che generano traffico e mettono a disposizione le proprie
risorse (self-scalability)
- NB: un’applicazione di rete comunica tramite processi, che mandano e
ricevono i messaggi tramite socket
HYPERLINK TEXT PROTOCOL (HTTP)
- un URL è composto dal hostname del server e il pathname dell'oggetto
- una pagina web consiste di oggetti (file) accessibili da un singolo URL
(base HTML file)
- stateless protocol: il server non mantiene informazioni sui client
- connessioni non-persistenti: viene aperta una connessione TCP per ogni
risposta (due RTT per oggetto trasmesso)
- connessioni persistenti: il server lascia aperta la connessione TCP per
le successive risposte (un unico RTT per la connessione e un RTT per ogni
oggetto trasmesso)
- pipelining: le richieste per gli oggetti possono essere effettuate
back-to-back, senza aspettare risposte per richieste pendenti
- cookies: permettono di tenere traccia degli utenti sul sito
a. cookie_header_line nel messaggio HTTP di richiesta/risposta
b. un file cookie mantenuto sul host dell'utente (ID)
c. back-end database sul sito web
- web cache: host che soddisfa le richieste HTTP al posto del web server
1. il browser stabilisce una connessione con il web cache e spedisce
una richiesta http
2. il web cache controlla se ha una copia dell'oggetto in locale ed
eventualmente lo restituisce tramite messaggio HTTP
3. se il web server non ha l'oggetto, apre una connessione TCP col
server d'origine, spedisce una richiesta HTTP per l'oggetto,
lo salva in locale e spedisce una copia (all'interno di un
messaggio http) al browser
a. vantaggi: può ridurre il traffico della rete e ridurre i tempi di
risposta

FTP
- Utilizza due connessioni TCP parallele: controllo su porta 21 e dati
su porta 20
- Per la durata della sessione il server FTP deve mantenere lo stato
dell’utente
DNS
- database distribuito implementato in una gerarchia di server, utilizza la
porta UDP 53
- è un protocollo che permette agli host di interrogare il database
distribuito (dns_query)
- provvede altri servizi quali
a. host aliasing: un applicazione può ottenere l'hostname canonico e
l'IP fornendo l'hostname_alias al DNS
b. mail-server aliasing
c. local distribution: per server web replicati, un set di IP viene
associato ad un hostname canonico
quando un client chiede l'IP al DNS, esso risponde con un IP dal set
- gerarchia
a. root: network server replicati
b. TLD (top-level domain): responsabile per domini quali com, edu,…
c. authoritative: mantengono i record pubblicamente accessibili, che
mappano i nomi del host all'IP
d. local (default name server): gli host inviano la dns_query a
questi server, gestiti dall'ISP, che la inoltreranno nella gerarchia
- caching: in una catena di dns_query , quando un server riceve una
dns_reply, può mantenerla in locale (per un tot di tempo)
- il mapping è mantenuto nel database sotto forma di RR (resource record),
che contiene i campi [name, value, type, TTL]
- RR con type = A
a. Name = hostname
b. Value = IP del hostname
- RR con type = NS
a. Name = dominio (foo.com)
b. Value = hostname di un authoritative-server che può ottenere l’IP
degli host nel dominio
EMAIL
- MUA (mail user agent): client per gestire le email
- Il client per recuperare le email utilizza un [mail access protocol]
- ogni utente ha una mailbox sul mail-server
- SMTP (simple mail transfer protocol)
a. stabilisce una connessione TCP persistente (porta 25) tra client e
server ed esegue un handshake
b. push protocol: il mail server mittente inoltra il file verso il mail
server destinatario (la connessione TCP è iniziata dal host che
vuole spedire il file)
- MAIL ACCESS PROTOCOL: POP3
a. Non conserva lo stato dell’utente tra le varie sessioni
b. può essere configurato come download-and-delete oppure come
download-and-keep
1. authorization: l'user agent spedisce username/password
2. transaction: l'user agent recupera i messaggi e/o può marcarli per
l'eliminazione
3. update: dopo che il client invia il comando exit, il mail-server
elimina i messaggi che sono marcati
- MAIL ACCESS PROTOCOL: IMAP
a. conserva lo stato dell’utente tra le varie sessioni
b. il server associa ogni email con una cartella
c. supporta tutti i vari comandi per email
- MAIL ACCESS PROTOCOL: http
a. Il client è il web browser e si utilizza il protocollo HTTP al posto
di SMTP/POP3 e IMAP
b. Il destinatario utilizza il proprio protocollo
DHCP
1. DHCP_server_discovery: il nuovo client trasmette in broadcast il
datagramma, con sorgente = 0.0.0.0 e porta UDP = 67
2. DHCP_server_offer: ogni DHCP-server nella rete risponde con un
offer_message in broadcast (MAC, IP, subnet_mask, lease_time)
3. DHCP_request: il client sceglie tra uno di questi offer_message e
risponde in broadcast con un request_message, indicando i parametri di
configurazione
4. DHCP_ACK: il dhcp-server risponde al request_message con un ACK
TRANSPORT LAYER
SERVIZI
- Il protocollo offre una connessione logica tra processi in esecuzione
su host differenti
- Socket: utilizzato dal pacchetto per far passare i dati da/verso la
rete
- Multiplexing: si tratta di raccogliere i data-chunk provenienti dai
vari socket (lato mittente) e incapsularli in segmenti per poi
passarli al network layer
- Demultiplexing: il network layer (lato destinatario) esamina il
segmento e identifica i socket destinatari
- Connectionless de/multiplexing:
a. Socket UDP = (IP destinazione, porta destinazione)
b. La il segmento contiene la porta sorgente (scelta dal client) e
la porta destinazione (scelta dal programma lato server)
c. La porta sorgente serve da indirizzo di ritorno
- Connection oriented de/multiplexing:
a. Socket TCP = (IP sorgente, porta sorgente,
IP destinazione, porta destinazione)
1. L’applicazione TCP (lato server) crea un socket di benvenuto con
porta X, che è in attesa di richieste da client TCP
2. Il client crea un socket e spedisce un segmento TCP contenente
porta X, un bit connection_establishment nell’header, e la porta
sorgente scelta dal client
3. Quando il server riceve questo segmento (2.) individua il
processo in attesa di connessione sulla porta X e crea un nuovo
socket identificato dalla tupla a.
USER DATAGRAM PROTOCOL (UDP)

- Non stabilisce una connessione (non introduce delay)


- Overhead di soli 8B per l’header
- La mancanza di congestion control può risultare in alti tassi di
perdita tra sorgente e destinatario
- L’applicazione UDP può essere strutturata in modo da essere affidabile
DEFINIZIONI
- m = dimensione del campo num_seq
- 𝑠𝑠𝑓𝑓 = primo (dei pacchetti più vecchi) non riscontrato
- 𝑠𝑠𝑛𝑛 = prossimo (pacchetto) da inviare
- 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = transmit_window
- 𝑟𝑟𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = receive_window

STOP-AND-WAIT

- controllo flusso
a. mittente e destinatario hanno 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 𝑟𝑟𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 1
(il mittente invia un pacchetto alla volta e
ne attende l’ack prima di spedire il successivo)
- ARQ (Automatic Repeat reQuest)
a. utilizza un num_seq in mod(2): se il pacchetto è fuori sequenza
viene scartato
b. l’ack indica il num_seq del prossimo pacchetto atteso dal
destinatario
c. per capire se un pacchetto è andato perso il mittente usa un
timer (se non riceve un ack alla scadenza del timer rinvia il
pacchetto)
GO-BACK-N

- controllo flusso
a. il mittente ha una 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 2𝑚𝑚 − 1
b. il destinatario ha una 𝑟𝑟𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 1
c. 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 scorre alla ricezione di un ack (senza errori) con
𝑠𝑠𝑛𝑛 < num_seq ≥ 𝑠𝑠𝑓𝑓
d. 𝑟𝑟𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 scorre di 1 posizione alla ricezione del pacchetto
(in sequenza)
- ARQ
d. num_seq in mod(2𝑚𝑚 ): se il pacchetto è fuori sequenza viene
scartato
a. ack cumulativi: tutti i pacchetti fino al num_seq indicato
nell’ack sono stati ricevuti correttamente
b. il mittente mantiene un timer per il più vecchio pacchetto
non riscontrato e, allo scadere, rinvia tutti i pacchetti
in attesa di riscontro
SELECTIVE REPEAT
- controllo flusso
a. 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 𝑟𝑟𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 2𝑚𝑚−1
- ARQ
a. il mittente ritrasmette solo i pacchetti non validi
b. ack individuali: il num_seq indica un pacchetto ricevuto
correttamente (non il prossimo atteso)
c. il destinatario mantiene sia i pacchetti in ordine che
fuori sequenza in un buffer e, ricevuti tutti quanti,
li passa (in ordine) al livello sovrastante
d. timer individuale per ogni pacchetto
NB: BIGGYBACK
- Quando un pacchetto trasporta dati da A-B, può anche trasportare gli
ack relativi ai pacchetti ricevuti da B e viceversa
TRANSMISSION CONTROL PROTOCOL (TCP)
- connection oriented: i due host stabiliscono una connessione tramite
handshake a 3-vie
- connessione full-duplex, point-to-point
- la grandezza del payload è limitata dal MSS (tipicamente settato al
MTU del link layer)
- il client trasmette uno stream di dati verso il socket, che vengono
raccolti in un buffer
- il tcp mittente preleva dei chunk dal buffer, gli aggiunge un header,
e li passa (segmenti) al network layer
- il tcp destinatario posiziona il payload nel suo buffer
- flow control
a. permette di regolare la velocità di trasmissione del mittente in
base alla velocità di letture del destinatario
(evita buffer overflow)
b. il mittente mantiene una receive_wnd ad indicare quanto buffer il
destinatario ha disponibile (sliding window)
- costo della congestione
a. lunghi delay di accodamento si verificano quando il rate d'arrivo
dei pacchetti raggiunge la capacità del link
b. il mittente deve ritrasmettere i pacchetti per compensare le
perdite dovute al buffer overflow
c. le ritrasmissioni del mittente per via dei lunghi delay causano
l'inoltro di copie non necessarie di pacchetti
d. un pacchetto scartato per via della congestione spreca la banda
del link
- congestion control
a. si assicura che tutti i nodi della rete abbiano un accesso equo
alle risorse
b. ogni mittente limita il rate con cui generano traffico in base
alla congestione percepita
c. un segmento perso indica congestione, quindi il rate d'invio
dovrebbe decrementare
d. un segmento riscontrato indica che la rete sta consegnando i
segmenti al destinatario, quindi il rate d'invio può essere
incrementato
TCP – ACK GENERATION POLICY
- arriva un segmento in ordine col numero di sequenza previsto, tutti i
dati precedenti sono stati già riscontrati (invio di un delayed ack)
- arriva un segmento in ordine col numero di sequenza previsto, un altro
segmento in ordine è in attesa di conferma
(invio immediato di un ack cumulativo)
- arriva un segmento fuori ordine col numero di sequenza > del valore
atteso (invio di un ack duplicato, indicando il numero di sequenza del
prossimo byte previsto)
- arriva un segmento che riempie parzialmente/completamente un gap nei
dati ricevuti
(invio di un ack se il segmento inizia dal limite inferiore)
TCP – CONGESTION CONTROL ALGORITHM
- slow start
1. congestion_wnd = 1 MSS, e incrementa di 1 MSS ogni volta che un
segmento trasmesso viene riscontrato
2. nel caso di perdite (congestione) dovute a timeout, il mittente
setta slow_start_threshold = congestion_wnd / 2,
congestion_wnd = 1 MSS e riinizia lo slow start
3. se congestion_wnd ≥ slow_start_threshold si passa a
congestion avoidance
- congestion avoidance
1. congestion_wnd aumenta di 1 MSS ogni RTT
2. nel caso di timeout si comporta come slow start (b)
- ricevuti 3 ack duplicati (a indicare che il segmento successivo
è andato perso) esegue un fast retransmit (ritrasmette il frame
mancante prima dello scadere del suo timer)
a. caso tahoe: setta slow_start_threshold = congestion_wnd / 2 e
congestion_wnd = 1 MSS, riparte da slow start
b. caso reno: setta la congestion_wnd a metà e setta
slow_start_threshold = congestion_wnd, entra in fast recovery
- fast recovery
1. la congestion_wnd incrementa di 1 MSS per ogni ack duplicato
ricevuto per il segmento mancante (ritrasmissione)
2. quando questo ack arriva, congestion_wnd = 1, si entra in
congestion avoidance
3. in caso di timeout si passa in slow start
NETWORK LAYER
DEFINIZIONI
- forwarding: quando un pacchetto arriva in input al router, deve
trasmetterlo sul link d’output opportuno
- routing: bisogna determinare il percorso che seguiranno i pacchetti
per arrivare alla destinazione finale (end-to-end)
- best-effort service: la ricezione in ordine e l’eventuale consegna dei
pacchetti non è garantita
- accodamento porte I/O: se il buffer non riesce a soddisfare il carico
di lavoro, si ha perdita di pacchetti
- scheduling: bisogna decidere quali pacchetti, in coda, trasferire
- HOL (head-of-the-line blocking): un pacchetto nella coda d’input deve
attendere in quanto bloccato da un altro pacchetto in testa alla coda,
anche se la sua porta d’output risulta libera
VIRTUAL-CIRCUIT NETWORK
- consiste di
a. un cammino tra sorgente e destinazione
b. vc_num, uno per ogni link sul cammino
c. i router coinvolti devono essere registrati nella routing table,
che include la traduzione dei vc_num
- i router mantengono le informazioni di stato della connessione
- ogni router coinvolto nel setup è consapevole del VC
DATAGRAM NETWORK
- ogni volta che un host vuole spedire un pacchetto, inserisce
l’indirizzo di destinazione e lo trasmette: passa per una serie di
router e, tramite la loro forwarding table, determinano l’interfaccia
d’usciata
(nel caso di corrispondenze multiple si sceglie la più lunga)
- le forwarding table possono essere modificate in qualsiasi momento,
quindi una serie di pacchetti possono seguire strade diverse e
arrivare fuori ordine
ARCHITETTURA ROUTER
- commutazione via memoria
a. una porta d’input con un pacchetto in arrivo invia un interrupt
al processore, che copia il pacchetto nella sua memoria,
controlla l’indirizzo nella forwarding table e lo copia nel
buffer d’output
b. se la bandwidth della memoria è B pacchetti al secondo, allora il
forwarding throughput < B/2
- commutazione via bus
a. la porta d’input aggiunge un header al pacchetto in entrata
(indica la porta d’uscita) e lo trasferisce sul bus
b. il pacchetto viene ricevuto su tutte le porte d’output, ma solo
quella che corrisponde all’header lo tiene, rimuove l’header, e
spedisce
c. il forwarding throughput è limitato dalla velocità del bus
- commutazione via rete d’interconnessione
a. consiste di 2N bus che connettono N porte d’input a N porte
d’output
b. NB: pacchetti provenienti da due porte diverse, destinati alla
stessa porta d’output, non possono procedere contemporaneamente
IP – INDIRIZZI
- Ogni host/router connesso ad internet deve avere un indirizzo IP
globalmente unico
- Subnet mask
- Subnetting: divisione di una singola rete in gruppi che hanno in
comune, nell’indirizzo IP, un determinato prefisso di routing
a.b.c.d/n, con n = subnet mask
- CIDR: generalizzazione dell’indirizzamento di subnet
- Quando un router, al di fuori della rete di destinazione, inoltra un
datagramma verso questa rete, deve considerare solo i primi n bit
(sufficienti per arrivare a qualsiasi host nella rete)
- I rimanente 32-n bit dell’indirizzo distinguono l’host all’interno
della rete (può a sua volta avere un ulteriore struttura di subnet)
- Per ottenere un blocco di indirizzi IP da usare all’interno della
subnet si contatta l’ISP, a è stato allocato un enorme quantità di IP
IPv4 – DATAGRAM FRAGMENTATION
- La quantità massima di dati che può trasportare un frame si chiama MTU
- Ogni link nel cammino tra mittente-destinatario può usare protocolli
diversi, ognuno con una (possibile) MTU diversa
- La soluzione è frammentare il payload in datagrammi più piccoli e
incapsularli in vari frame, che vengono riassemblati una volta
arrivati a destinazione
- A ciò servono i campi
a. identification: per determinare quali sono i frammenti dello
stesso datagramma
b. flag: con 0 indica l’ultimo frammento
c. offset: specifica la posizione del frammento all’interno del
datagramma
IPv6 – NOTE D’INTERESSE
- non è permessa la frammentazione dei pacchetti
- rimozione del campo checksum e options dall’header
- indirizzo a 128b, header fisso (40B)
- tunneling: se due nodi IPv6 vogliono comunicare, ma sul percorso si
hanno dei nodi IPv4, il pacchetto IPv6 viene incapsulato in IPv4
INTERNET CONTROL MESSAGE PROTOCOL (ICMP)
- utilizzato da host e router per comunicare informazioni di
network layer (tipicamente errori)
- i messaggi ICMP sono incapsulati in datagrammi IP (demux)
NETWORK ADDRESS TRANSLATION (NAT)
- il router NAT ottiene il proprio indirizzo dall’ISP DHCP-server, e a
sua volta fa da DHCP-server per gli host fornendo IP privati
- NAT translation table
a. il router, arrivato un datagramma diretto all’esterno della LAN,
rimpiazza l’IP locale con l’IP lato WAN e la porta locale con un
nuovo valore
b. aggiunge un nuovo record alla translation table
- UPNP: permette agli host esterni di iniziare sessioni con host dietro
un NAT, tramite TCP o UDP
AUTONOMOUS SYSTEM (AS)
- un gruppo di router sotto la stessa amministrazione, utilizzano lo
stesso intra-routing algorithm e così hanno informazioni su ogni altro
router dell'AS
- uno o più router sarà responsabile di inoltrare i pacchetti a
destinazione al di fuori dell'AS (gateway router)
- hot potato routing: consiste nel passare il traffico verso un altro AS
il più velocemente possibile (il router inoltra i pacchetti verso il
gateway col cammino-minimo tra tutti i gateway con un cammino verso la
destinazione)
ROUTING ALGORITHM - DISTANCE VECTOR (DV)
- distribuito, iterativo e asincrono
- ogni nodo mantiene
a. per ogni vicino V, il costo c(X, V) da X al vicino V
b. il vettore di distanza di X: 𝐷𝐷𝑋𝑋 (𝑌𝑌) = 𝑐𝑐(𝑋𝑋, 𝑌𝑌) ∀𝑌𝑌 𝑖𝑖𝑖𝑖 {𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑}
c. il 𝐷𝐷𝑉𝑉 di ogni suo vicino V
- ad intervalli, ogni nodo invia una copia del suo 𝐷𝐷𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 ad ogni vicino e
tramite l'equazione di bellamn-ford aggiorna il proprio:
𝐷𝐷𝑋𝑋 (𝑌𝑌) = 𝑚𝑚𝑚𝑚𝑛𝑛𝑣𝑣 {𝑐𝑐(𝑋𝑋, 𝑉𝑉) + 𝐷𝐷𝑉𝑉 (𝑌𝑌) ∀ 𝑌𝑌 𝑖𝑖𝑖𝑖 {𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑}
se 𝐷𝐷𝑋𝑋 è cambiato, X invierà l'aggiornamento ad ognuno suo vicino, che
a sua volta aggiornerà il proprio
- problema del conteggio all'infinito: il nodo A crede che il
cammino-minimo verso C sia tramite il vicino B; allo stesso modo B
crede che il cammino-minimo verso C inizia da A
risoluzione tramite poisoned-reverse: se A inoltra tramite B per
arrivare a C, allora A notifica B che 𝐷𝐷𝐴𝐴 (𝐶𝐶) = 𝑖𝑖𝑖𝑖𝑖𝑖
NB: se il loop coinvolge 3 o più nodi non verrà individuato dal
poisoned reverse
INTRA-ROUTING PROTOCOL - ROUTING INFORMATION PROTOCOL (RIP)

- implementa DV
a. ogni router non invia il 𝐷𝐷𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 ma la routing table, che include
sia i 𝐷𝐷𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 che la forwarding table
- il termine hop indica il costo: è il numero di subnet attraversate dal
cammino-minimo dal router sorgente alla subnet destinazione (max 15)
- se un router non riceve aggiornamenti da un suo vicino entro 180s,
viene considerato irraggiungibile: si modifica la routing table locale
e si aggiornano i vicini
- eseguito come processo routed, che mantiene le informazioni di routing
e scambia messaggi con i routed vicini
- i messaggi utilizzano UDP
a. rip_response_message: scambiati tra vicini ogni 30s, contiene una
lista di max 25 subnet destinazione all'interno dell'AS e la
distanza dal mittente verso esse
b. rip_advertisement: messaggio di risposta
c. rip_request: per richiedere i costi dei vicini verso una
destinazione
ROUTING ALGORITHM - LINK STATE (LS)
- ogni nodo invia in broadcast un ls_packet: contiene l’identità del
mittente e il costo dei suoi link
- ricevuti gli ls_packet ogni nodo ha una visione completa e identica
della rete (ls_database), ed esegue localmente l’algoritmo di dijkstra
a. calcola il cammino-minimo verso ogni nodo della rete
b. è iterativo: dopo la k-esima iterazione i cammini-minimi sono
noti a k nodi di destinazione
c. costruisce la forwarding table del nodo

INTRA-ROUTING PROTOCOL - OPEN SHORTEST PATH FIRST (OSPF)


- protocollo basato su LS
- i messaggi sono trasportati tramite IP
a. hello: inviati regolarmente da ogni router ai vicini, si viene a
conoscenza della loro identità e del costo, e si aggiorna il
proprio ls_database
se non si riceve entro un certo intervallo, il vicino si
considera inattivo
b. database_description: per trasmettere il contenuto del
ls_database da un router all’altro
c. ls_request: per richiedere informazioni su certi link da altri
router
d. ls_update: in risposta ad un ls_request, e inviati periodicamente
in broadcast
e. ls_ack: per riscontrare la ricezione di un ls_update
- vantaggi
a. sicurezza: gli scambi tra router OSPF possono essere autenticati,
e utilizzano i num_seq
b. supporta multiple same-cost path
c. supporto integrato per multicast/unicast
d. si può strutturare l'AS in gerarchie
INTER-ROUTING PROTOCOL - BORDER GATEWAY PROTOCOL (BGP)

- protocollo path vector (𝐷𝐷𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 con percorsi): ogni vicino invia i


percorsi (non solo destinazioni) e quando riceve un path vector
aggiorna il proprio in base alla sua politica
permette agli AS di
a. ottenere informazioni di raggiungibilità dalle AS vicine
b. propagare le informazioni di raggiungibilità a tutti gli altri
router all'interno dell'AS
c. determinare i percorsi migliori verso le subnet basandosi sulle
informazioni di raggiungibilità e politiche AS
- coppie di router (BGP-peers) si scambiano informazioni di routing su
connessioni tcp semipermanenti (BGP-session)
NB: le destinazioni non sono host ma CIDR prefixes, con ogni prefisso
rappresentante una subnet o una collezione di subnet
a. due router interni all'AS (IBGP)
b. due router di differenti AS (EBGP)
- un AS è identificato dal suo, globalmente unico, AS NUMBER
- i BGP-peers annunciano le routes (prefix + attributi)
a. AS-PATH: contiene gli AS attraverso cui l'annuncio è passato (hop
intermedi della route, utilizzato per prevenire
looping advertisement o per scegliere tra i vari path verso lo
stesso prefisso)
b. next-hop: è l'interfaccia router che inizia il AS-PATH (per
configurare la forwarding table del router)
- quando un gateway riceve un route_advertisement, usa la propria
import policy per scegliere se accettare o filtrare la route e se
settare certi attributi
- selezione route: utilizzando EBGP e IBGP per distribuire le route a
tutti i router dell'AS, un router potrebbe venire a conoscenza di più
di una route verso quel prefisso, e deve sceglierne uno
1. alle routes viene assegnato un valore di preferenza locale, si
sceglie quello con valore maggiore
2. la route con AS-PATH più corto viene scelta
3. la route con next-hop router più vicino viene scelta
(cammino-minimo minore)
4. se rimane ancora più di una route, il router utilizza gli
identificatori BGP per scegliere
ROUTING POLICY
- AS STUB: il traffico è generato/destinato allo STUB ma non transita
attraverso esso
- AS MULTIHOME: ha più di una connessione con altri AS ma non consente
il transito di traffico
- AS di transito: è collegato a più AS e consente il traffico
(network provider e dorsali)
- potrebbe essere importante che il traffico originante da un AS non
passi per certe AS, oppure un AS vuole controllare il traffico che
trasporta verso altre AS
- per gli inter-AS, la qualità (ex performance) dei router solitamente
non è importante, il caso inverso è vero per gli intra-AS
UNICAST
- comunicazione tra IP-sorgente e IP-destinazione
BROADCAST
- comunicazione tra IP-sorgente e N-destinazioni (indirizzo broadcast)
- routing algorithm - spanning-tree center based
1. si sceglie un nodo centrale
2. i nodi inviano messaggi tree-join verso il centro: vengono
inoltrati finché o arrivano ad un nodo che appartiene allo
spanning-tree, oppure sono arrivati al centro
3. il cammino che il tree-join ha seguito determina il ramo tra nodo
foglia e centro

MULTICAST
- comunicazione tra una sorgente e un gruppo di destinatari
- un multicast ip address identifica il gruppo multicast
- IGMP: protocollo che permette ad un host di informare il router a cui
è connesso che un applicazione vuole unirsi ad un gruppo multicast
messaggi
a. membership_query: spedito da un router a tutti gli host connessi
per determinare a quali gruppi multicast partecipano
b. membership_report: in risposta alla membership_query o generato
dagli host la prima volta che un'applicazione si aggiunge ad un
gruppo multicast
c. leave_group: (opzionale) il router presume che un host che non
risponde più al membership_query non fa più parte del gruppo
multicast
- routing algorithm - group-shared tree
1. i router-foglia, con host che fanno parte di un gruppo multicast,
spediscono un join_message verso il centro
2. il join_message viene inoltrato finché o raggiunge un router che
fa parte dell'albero multicast oppure raggiunge il centro
3. i router nei cammini dell'albero inoltrano i pacchetti multicast
verso i router che si sono aggiunti al gruppo
- routing algorithm - source-based tree
1. si costruisce un multicast forwarding tree per ogni nodo
sorgente X tramite algoritmo RPF partendo da X
2. pruning: un router multicast che riceve un pacchetto multicast di
un gruppo di cui nessun suo host fa parte, manda un messaggio di
potatura in upstream
LINK LAYER
ETHERNET TECHNOLOGY (802.3)
- N BASE-X
a. N = velocità dello standard
b. BASE = il mezzo fisico trasporta solo traffico ethernet
c. X = si riferisce al mezzo fisico stesso
- In una LAN basata su switch, si inoltra al massimo un frame alla volta
sul link d’uscita, quindi non ci sono collisioni e non c’è bisogno di
un protocollo MAC
ADDRESS RESOLUTION PROTOCOL (ARP)
- traduce un indirizzo IP in un indirizzo MAC, ma solo per gli host e
router nella stessa subnet
- ogni host e router ha un ARP table in memoria, e ogni record ha un TTL
1. se l’host mittente vuole comunicare con un destinatario non
presente nella sua ARP table, crea un ARP packet (query)
2. ogni interfaccia nella subnet, ricevuto il frame, confronta l’IP
e, se combacia, spedisce al mittente un ARP packet (response) con
la mappatura richiesta
3. l’host ora può aggiornare la sua ARP table e spedisce il
datagramma (incapsulato nel frame)
- spedire un datagramma al di fuori della subnet
1. il mittente della subnet 1 richiede tramite ARP il MAC del
first-hop router, e spedisce il frame per il mittente della
subnet 2
2. il first-hop router riceve e processa il frame, tramite ARP
ottiene il MAC del destinatario nella subnet 2, e inoltra il
frame
SWITCH
- Filtering: determina se un frame deve essere inoltrato su qualche
interfaccia o deve essere scartato
- Forwarding: determina a quale interfaccia indirizzare il frame
- Switch table: utilizzata per il filtering/forwarding
1. L’indirizzo MAC del frame in arrivo non è presente nella table:
lo switch invia in broadcast il frame
2. Il frame arriva da un segmento LAN che contiene l’indirizzo di
destinazione: lo switch scarta il pacchetto
3. L’indirizzo MAC del frame in arrivo è presente nella table: lo
switch procede al forwarding
- Un record della switch table contiene
a. Indirizzo MAC
b. L’interfaccia che porta a quell’indirizzo
c. Il momento in cui è stato inserito il record
- Self-learning
1. Inizialmente la switch table è vuota
2. Per ogni frame in arrivo su un’interfaccia, lo switch salva il
MAC contenuto nel campo source_address, l’interfaccia da cui
proviene, il tempo corrente
3. Lo switch rimuove un record se nessun frame viene ricevuto da
quell’indirizzo dopo un certo periodo
VLAN
- Le porte degli switch sono divise in gruppi (broadcast domain) e gli
host all’interno di una VLAN comunicano tra loro come se fossero gli
unici host collegati allo switch (port-to-vlan table)
- Per interconnettere le vlan si utilizza una porta speciale
(trunk port): i frame spediti ad una vlan sono inoltrati verso la
Trunk port e arrivano agli switch connessi
- I frame che passano per una trunk port sono del formato ethernet
802.1Q
1. Lo switch mittente aggiunge un campo VLAN tag, che identifica la
VLAN a cui appartiene
2. Il tag viene processato e rimosso dallo switch destinatario
- Le VLAN possono essere anche definite in base al MAC o in base a
protocolli network layer
MULTIPLE ACCESS LINK - CHANNEL PARTITION PROTOCOL
- TDM (TIME DIVISION MULTIPLEXING)
a. suddivide il tempo in time frames, a loro volta suddivisi in n
time-slots
b. ogni time-slot viene assegnato ad uno degli N nodi, che
utilizzerà se ha un pacchetto da spedire
- FDM (FREQUENCY DIVISION MULTIPLEXING)
a. suddivide il canale (R bps) in varie frequenze e ne assegna una
ad ogni nodo
- SVANTAGGI TDM/FDM
a. un nodo è limitato ad un rate medio di R/N bps anche quando è
l'unico a trasmettere
b. un nodo deve sempre aspettare il suo turno nella sequenza di
trasmissione, anche se è l'unico a trasmettere
- CDMA (CODE DIVISION MULTIPLE ACCESS)
a. assegna un codice differente ad ogni nodo, che userà per
codificare i data bit che invia
b. vari nodi possono trasmettere simultaneamente e i rispettivi
destinatari riceveranno i dati (sempre se conoscono il codice del
mittente) nonostante le trasmissioni di altri nodi
MULTIPLE ACCESS LINK - RANDOM ACCESS PROTOCOL
- SLOTTED ALOHA
a. tutti i frame hanno esattamente L bit
b. il tempo è suddiviso in slot di larghezza L/R secondi
c. i nodi sono sincronizzati, così che ognuno sa quando inizia lo
slot
1. quando un nodo ha un frame nuovo da inviare, aspetta l'inizio del
prossimo slot e trasmette l'intero frame
2. se non è avvenuta collisione, può preparare un eventuale prossimo
frame
3. se è avvenuta una collisione, il nodo la individua prima della
fine dello slot e ritrasmette il frame in ogni slot successivo
con probabilità P, finché non avvengono collisioni
- ALOHA
a. senza slot, completamente decentralizzato
b. quando arriva un frame, il nodo lo trasmette immediatamente
c. se il frame va in collisione, il nodo lo ritrasmette con
probabilità P, altrimenti aspetta un frame transmission time
d. efficienza 1/2 del SLOTTED ALOHA
- CSMA/CD (CARRIER SENSE MULTIPLE ACCESS / COLLISION DETECTION)
1. l'interfaccia di rete ottiene il datagramma, prepara il frame, e
lo posiziona nel buffer
2. se il canale è libero inizia la trasmissione, altrimenti aspetta
(carrier sensing)
3. mentre trasmette, l'interfaccia di rete controlla la presenza di
altri segnali e, se ne individua, annulla la trasmissione
(collision detection)
4. dopo aver annullato, si utilizza il binary exponential backoff, e
riinizia da 2.
- NB: BINARY EXPONENTIAL BACKOFF
a. quando si trasmette un frame che ha già sofferto N collisioni, il
nodo sceglie un valore a caso tra {0, 1, ..., 2^(n)-1 (per
ethernet max 10)
b. più è grande il propagation delay, maggiore è la probabilità che
un nodo carrier sensing non è ancora capace di rilevare una
trasmissione già iniziata da un altro nodo
MULTIPLE ACCESS LINK - TAKING TURNS PROTOCOL
- POLLING PROTOCOL
a. un nodo viene scelto come master e sonda (round-robin) ogni nodo
b. quando un nodo finisce di trasmettere N frame, il master segnala
al successivo che può trasmettere
c. svantaggi: polling delay; fallimento nodo centrale
- TOKEN PASSING PROTOCOL
a. un frame speciale chiamato token viene scambiato tra i nodi, in
ordine
b. il nodo che riceve il token se non ha frame da trasmettere lo
passa, altrimenti trasmette un massimo di N frame e poi passa il
token
c. svantaggi: il fallimento di un nodo blocca l'intero canale; se il
frame va perso bisogna ripristinato
WIRELESS
COMPONENTI
- wireless host
- wireless link
- base station
WIRELESS LINK
- degrado della potenza del segnale: le radiazioni elettromagnetiche si
attenuano passando per la materia; mentre negli spazi aperti il segnale
si disperde all'incrementare della distanza
- interferenza da altre sorgenti
- multipath propagation: accade quando porzioni della stessa onda
elettromagnetica viene rifratta, prendendo cammini di lunghezza
differente tra mittente e destinatario
- SNR (signal-to-noise ratio): è una misura della relativa potenza del
segnale (dB)

MODALITÀ
- infrastructure mode: i servizi di rete vengono forniti dalla BS
- ad hoc network: gli host stessi devono provvedere i servizi di rete
WIFI – IEEE 802.11

- BSS (basic service set): contiene una o più wireless station e una BS
centrale (access point)
- Un AP viene identificato tramite SSID (service set identifier)
- Per ottenere l’accesso ad internet, la wireless station deve associarsi
ad un AP
a. Solo l’AP a cui è associato gli invierà data-frames
b. Un AP invia periodicamente dei beacon-frame, che includono il SSID e
MAC dell’AP (passive scanning)
c. Potrebbe essere necessario fornire delle credenziali: tipicamente
l’AP passa le informazioni necessarie tra il wireless endpoint e
l’authentication server
- AP – active scanning
1. Il wireless host invia in broadcast un probe-frame che sarà ricevuto
da tutti gli AP nel range
2. Gli AP rispondono con un altro probe-frame, e la wireless station
può scegliere con quale AP associarsi, inviando un association-frame
3. L’AP risponde con un altro association-frame
WIFI - PROTOCOLLO CSMA/CA
- non implementa collision detection: visto che il segnale ricevuto è
più debole del segnale trasmesso, costruire HW che rileva collisioni è
costoso
- le wireless station trasmetto i frame per intero
- quando una wireless station di destinazione riceve un frame che passa
il CRC, aspetta uno SIFS (short inter-frame spacing) e poi invia un
ack:
a. se la wireless station mittente non riceve un ack in un certo
lasso di tempo, assume che un errore è avvenuto e ritrasmette il
frame, tramite CSMA/CA
b. se dopo un certo numero di ritrasmissioni non riceve il frame,
allora lo scarta completamente
- funzionamento del protocollo
1. se la wireless station trova il canale inutilizzato, trasmette il
frame dopo un certo DIFS (distributed IFS)
2. altrimenti la wireless station setta un timer tramite
binary exponential backoff, e se il canale è inutilizzato inizia a
decrementare, altrimenti lo blocca
3. arrivato a 0 la wireless station trasmette il frame e aspetta un
ack
4. arrivato l’ack, se la wireless station ha un altro frame da
inviare, riinizia da 2.
Se non arriva, la wireless station rientra nella fase backoff 2.
PROBLEMA DEGLI HOST NASCOSTI

- problema
1. la wireless station h1 sta trasmettendo un frame, ma durante
questo intervallo, h2 vuole inviare un frame allo stesso AP
2. h2 non è nel range per individuare h1, e trasmette comunque,
risultando in una collisione
- soluzione
1. quando una wireless station vuole inviare un data-frame, può
prima inviare un RTS (request to send) all’AP, indicando il tempo
richiesto a trasmettere il data-frame e l’ACK
2. l’AP, ricevuto il RTS, trasmette in broadcast un CTS
(cease to send) indicando che il mittente del RTS può spedire e
che le altre wireless station devono attendere
3. NB: introduzione di delay e consumo di banda
IP MOBILITY – STESSA SUBNET
- Se la wireless station h1 si sposta dalla bss1 alla bss2, collegate
tramite switch, allora h1 può mantenere lo stesso IP e connessioni TCP
in corso
1. H1 inizia a perdere il segnale della BSS1, riceve un beacon-frame
da BSS2, e inizia l’associazione
2. La BSS2 trasmette in broadcast un frame ethernet (con indirizzo
sorgente di h1)
3. Lo switch riceve il frame e aggiorna la forwarding table
- Se le BSS1 e BSS2 sono collegate tramite router, si usa il protocollo
MOBILE IP
BLUETHOOT
- IEEE 802.11.5
a. Opera in un range corto, a basso costo/consumo
b. WPAN: wireless personal area network
c. Opera nella banda 2.4GHz, TDM, 79 canali e slot di 625µs
- Architettura (rete AD HOC)
a. Piconet: rete composta da massimo 8 dispositivi
(1 primaria e varie secondarie)
Possono esserci varie stazioni secondarie inattive, in attesa che
si liberi un posto
b. Scatternet: una stazione secondaria di una piconet può essere
primaria in un'altra piconet, passando i messaggi da una
all’altra
NETWORK SECURITY
PROPRIETÀ CONNESSIONE SICURA
- Confidentiality: solo il mittente e il destinatario devono essere in
grado di capire il contenuto del messaggio trasmesso
- Message integrity: il contenuto del messaggio non deve essere
alterato, intenzionalmente o per errore, durante la comunicazione
- Endpoint authentication: sia il mittente che il destinatario devono
essere in grado di identificarsi tra loro
- Operational security: tramite dispositivi per proteggere la rete
interna
CRITTOGRAFIA
- Il messaggio originale viene chiamato plaintext
- Il plaintext viene cifrato risultando in un ciphertext
CIFRATURA SIMMETRICA

- Si utilizza una chiave simmetrica 𝑘𝑘𝑘𝑘𝑦𝑦𝐴𝐴 (condivisa)


- Mittente: 𝑘𝑘𝑘𝑘𝑦𝑦𝑎𝑎 (𝑚𝑚) = 𝑐𝑐 -> destinatario: 𝑘𝑘𝑘𝑘𝑦𝑦𝐴𝐴 (𝑐𝑐) = 𝑚𝑚
- Metodo block cipher
a. Il messaggio viene suddiviso in blocchi da K-bit
b. Ogni blocco viene processato in chunk da N-bit: sono codificati
tramite una funzione che simula una tabella di permutazioni
randomiche
c. Il blocco in output viene processato M volte, partendo da b.
CIFRATURA A CHIAVE PUBBLICA

- La chiave di cifratura pubblica 𝑘𝑘𝑘𝑘𝑦𝑦 + 𝐵𝐵 è nota a tutti


- La chiave di decifratura privata 𝑘𝑘𝑘𝑘𝑦𝑦 − 𝐵𝐵 è nota solo al destinatario
- Funzionamento intercambiabile: 𝑘𝑘𝑘𝑘𝑦𝑦 − 𝐵𝐵 �𝑘𝑘𝑘𝑘𝑦𝑦 + 𝐵𝐵 (𝑚𝑚)� = 𝑘𝑘𝑘𝑘𝑦𝑦 + 𝐵𝐵 �𝑘𝑘𝑘𝑘𝑦𝑦 − 𝐵𝐵 (𝑚𝑚)� = 𝑚𝑚

RSA – GENERAZIONE CHIAVI


FUNZIONI HASH CRITTOGRAFICHE

- Prendono in input m e calcolano una stringa di lunghezza fissa 𝐻𝐻(𝑚𝑚)


- Presi due messaggi X e Y, 𝐻𝐻(𝑋𝑋) ≠ 𝐻𝐻(𝑌𝑌) è sempre vero
- Funzioni principali: MD5 e SHA
- message authentication code
1. Il mittente crea un messaggio m e lo concatena con una [chiave
segreta condivisa] s -> 𝐻𝐻(𝑚𝑚 + 𝑠𝑠) = ℎ
2. Il mittente invia (𝑚𝑚, ℎ)
3. Il destinatario, ricevuto il messaggio precedente, calcola 𝐻𝐻(𝑚𝑚 + 𝑠𝑠)
e lo confronta con h
- firma digitale
a. garantisce la proprietà di non ripudio: il mittente non può
negare di aver firmato il documento e il destinatario può
verificare la validità del documento e della firma
1. il mittente firma l’hash del messaggio cifrandolo con la sua
chiave privata
2. il mittente invia (𝑚𝑚, ℎ), il destinatario decifra h utilizzando la
chiave pubblica, ricalcola e confronta l’hash
PUBLIC KEY CERTIFICATION
- una CA (certification authority) ha il compito di validare l’identità
dell’utente e rilasciare il certificato (contenente la chiave
pubblica)
FIREWALLS
- proprietà
a. tutto il traffico da/verso la rete interna passa per il firewall
b. solo il traffico autorizzato può passare
c. il firewall stesso deve essere immune da penetrazione
- traditional packet filter
a. esamina ogni pacchetto e determina, tramite regole
d’amministrazione, se lasciarlo passare o scartarlo
b. non efficace contro dispositivi con IP spoofed
- stateful packet filter
a. tracciano le connessioni TCP e le registrano in una connection
table
b. osserva l’inizio (3-way handshake) e la fine (fin-packet)
c. alla ricezione di un pacchetto controlla la connection table,
vede se fa parte di una connessione esistente e determina se
scartarlo o meno
- application gateway
a. è un server specifico verso cui passano tutte le application
data, che vengono scartate o meno in base alle politiche
d’amministrazione
b. un server per applicazione
c. più lento degli altri firewall
INTRUSION DETECTION SYSTEM
- deep packet inspection (proprietà): oltre all’header viene ispezionata
anche l’application data
- IDS
a. Può essere composto da vari sistemi di rilevamento
b. genera allerte quando osserva traffico potenzialmente malevolo
c. signature-based: mantiene un database di firme degli attacchi,
che confronta con i pacchetti in transito
d. anomaly-based: crea un profilo di traffico normale e genera
allarmi quando rileva comportamenti anomali
- IPS (intrusion prevention system): filtra il traffico sospetto
- DMZ: include il server dell’organizzazione, che deve comunicare con
l’esterno, e viene protetto tramite packet filter

Potrebbero piacerti anche