Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni154 pagine

Reti

Il documento fornisce una panoramica della struttura di Internet, inclusi i concetti fondamentali di rete, accesso, e prestazioni. Viene discusso il ruolo dei dispositivi, come end-systems e commutatori, e le tecnologie di collegamento, evidenziando l'importanza della scalabilità e delle architetture di rete. Infine, si analizzano le applicazioni e i protocolli che regolano la comunicazione in rete, insieme ai criteri di misurazione delle prestazioni delle reti a commutazione di pacchetto.

Caricato da

claudiodervishi
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni154 pagine

Reti

Il documento fornisce una panoramica della struttura di Internet, inclusi i concetti fondamentali di rete, accesso, e prestazioni. Viene discusso il ruolo dei dispositivi, come end-systems e commutatori, e le tecnologie di collegamento, evidenziando l'importanza della scalabilità e delle architetture di rete. Infine, si analizzano le applicazioni e i protocolli che regolano la comunicazione in rete, insieme ai criteri di misurazione delle prestazioni delle reti a commutazione di pacchetto.

Caricato da

claudiodervishi
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Introduzione

✓Struttura di Internet:
✓Accesso alla rete: end-systems, applicazioni, mezzi
trasmissivi
✓Nucleo: struttura della rete, interconnessione,
commutazione di pacchetto
✓Terminologia e concetti fondamentali
✓Prestazioni: ritardi e perdite nelle reti
✓Pila protocollare e modelli di servizio

@L. Massari reti di calcolatori 24/25

Informazione, rete, connettività

✓Rete: interconnessione di dispositivi in grado di


scambiarsi informazione
✓Informazione:
✓Qualsiasi cosa rappresentabile in bit
✓I dispositivi possono “manipolare” l’informazione
✓Le reti consentono “accesso” all’informazione
✓Reti: forniscono connettività diretta o indiretta tra
dispositivi (nodi) nella rete
✓Dispositivi: end-systems, commutatori (router,
switch) Garantisce
-
leasy
Scalabilita Nord) agiungere un

Lucevono e trasmettono

@L. Massari reti di calcolatori 24/25

2
DIRETTIA Indiretta
END SISTEM

-1

#
11
X
--

COMUTATOR
Connettività diretta e indiretta

✓La connettività diretta non è scalabile


✓Soluzione: utilizzare nodi (commutatori) che
connettono indirettamente => “switch” e “router”
✓Forwarding: inoltro dei pacchetti al commutatore
successivo lungo il cammino verso la destinazione

@L. Massari reti di calcolatori 24/25

Struttura di Internet
✓Componenti fisiche:
✓end-systems (host/terminali): eseguono
software applicativo, in grado di inviare Rete mobile

e ricevere informazione ISP


✓collegamenti (canali di
rete
comunicazione/link) -
ci interessa la Veloci
domestica ZRETE

✓sottorete di comunicazione (nucleo ISP regionale

della rete): router, switch INOLTRO PACHETTI & RETE

✓Architettura di rete: accesso alla rete e


internetworking, rete di reti -
RETI

✓Applicazioni di rete (eseguite sugli end-


systems) e protocolli (specificano le
rete
istituzionale &rett

modalità di invio e ricezione dei pacchetti)

@L. Massari reti di calcolatori 24/25

4
Componenti fisiche: collegamenti
✓ I bit si propagano sotto forma di segnale attraverso un mezzo fisico
✓ Collegamenti diversi per tecnologia e frequenza trasmissiva
✓ Frequenza trasmissiva (bandwidth, rate, capacità): si misura in bit/sec (bps)
2 sinoum

✓ A onda libera (onde radio): caratteristiche che dipendono da ambiente e


distanza (riflessione del segnale, ostruzione da parte di oggetti, interferenza)
✓ terrestri: LAN (Wifi), 11Mbps, 54Mbps, wide-area (telefonia mobile),
-

qualche Mbps
✓ satellitari: da Kbps a 45Mbps
-

✓ Guidato (propagazione in un mezzo solido): CAVO -

✓ Doppino (UTP): economico, fino a 10 Gbps


-

✓ Cavo coassiale: più costoso, alte frequenza trasmissive


-

✓ Fibra ottica: basso tasso d’errore, alto costo, fino a 100 Gbps
-

NOTA: quando si parla di frequenze trasmissive, K=103 / M=106 / G=109


quando si parla di dati, K=210 / M=220 / G=230

@L. Massari reti di calcolatori 24/25

Componenti fisiche: sottorete di


comunicazione Separa Reti -Instradano

INTERNO DELLE RETt

✓Nodi (commutatori): router, switch, …


✓Operano a diversi livelli
✓Ricevono e ritrasmettono unità di informazione (pacchetti)

@L. Massari reti di calcolatori 24/25

6
Architettura di rete: accesso
✓Come l’end-system si connette al router di
confine dell’ISP Provider
-

✓Componenti:
✓ Scheda di rete (interfaccia di collegamento e
=>>
connettore)
✓ Mezzo
=>
trasmissivo: rame, fibra, radio
✓ISP forniscono accesso alla rete:
✓ Residenziale (compagnie telefoniche)
✓ Istituzionale/aziendale (rete locale cablata o
wireless)
✓ Wireless e mobile su scala geografica
✓ Caratteristiche:
✓ Frequenza trasmissiva: bandwidth ≡ rate ≡
capacità ≡ bit/sec
✓ Accesso condiviso o dedicato
PUNTO PUNTO

PU PERSONE

@L. Massari reti di calcolatori 24/25

Accesso residenziale: ADSL

✓Fino a 1 Mbps upstream, fino a 20 Mbps


downstream
✓Condivisione del doppino con la rete telefonica fino
alla centrale (divisione di frequenza)
✓Accesso al router del provider mediante rete dati
ad alta velocità

@L. Massari reti di calcolatori 24/25

8
Accesso residenziale: fibra ottica

✓Rete di nuova generazione ad alta velocità


✓Il doppino telefonico viene sostituito con fibra
ottica

FTTH - Fiber To The Home


FTTB - Fiber To The Basement
FTTC - Fiber To The Curb
FTTN - Fiber To The Neighborhood

@L. Massari reti di calcolatori 24/25

Accesso residenziale

wireless
device

to/from headend or
central office
often combined
in single box

cable or DSL modem

wireless access router, firewall, NAT


point (54 Mbps)
wired Ethernet (1 Gbps)

@L. Massari reti di calcolatori 24/25

10
Accesso istituzionale: rete locale
✓ Local Area Network (LAN) connettono gli end systems al router di
confine
✓ Cablate (doppino telefonico, cavo coassiale o fibra ottica) o wireless.
✓ Topologie: switched Ethernet o broadcast

institutional link to
ISP (Internet)

institutional router

Switch institutional mail,


Ethernet web servers

@L. Massari reti di calcolatori 24/25

11

LAN cablate
✓Switched Ethernet: ogni nodo è connesso ad un nodo
centrale detto switch, che ritrasmette il segnale in arrivo da
un nodo al nodo destinazione
✓Ethernet (IEEE 802.3):
L
protocollorefinise struttura dati e utilizzo

✓mezzo condiviso o dedicato


✓Ethernet a 10 Mbps, 100Mbps, 1Gbps e 10 Gbps

to
Internet

@L. Massari reti di calcolatori 24/25

12
LAN wireless
✓Rete d’accesso condivisa (canale
broadcast) connette end-systems al
router di confine, tramite stazione base
(access point)
✓802.11b/g (WiFi): da 11 Mbps
to Internet
✓I segnali cambiano in potenza a causa di
effetti, quali multipath fading causato da
riflessione → schemi di trasmissione
complessi
✓Le onde radio possono interferire e
sovrapporsi → protocolli CSMA (Carrier
Sense Multiple Access)/CA
L nopo che trasmette Riserva il canale

@L. Massari reti di calcolatori 24/25

13

Architettura: Internetworking
✓Interconnessione di reti eterogenee, possibile
grazie a:
✓Internet Protocol
✓Accordi tra operatori di rete
✓Maglia di router interconnessi gerarchicamente
~ continent

Tier 1 ISP Tier 1 ISP Google


point
Internet
exceng

IXP IXP IXP


PROVIDER REGIONAL

Regional ISP Regional ISP

access access access access access access access access


ISP ISP ISP ISP ISP ISP ISP ISP
Legenda L casa

@L. Massari reti di calcolatori 24/25

14
Standardizzazione

✓Gli standard definiscono la base per l’interoperabilità


✓RFC (Request For Comment): pubblicazioni degli
standard
Ente Area Esempi

ITU Telecommunications G.992, ADSL


H.264

IEEE Electrical engineering and 802.3, Ethernet


computing 802.11, WiFi

IETF Internet RFC 2616, HTTP/1.1


RFC 1034/1035, DNS

W3C Web HTML standard


CSS standard

@L. Massari reti di calcolatori 24/25

15

Applicazioni e Protocolli
Appucazioni vi rete

✓Applicazioni: Programmi (processi) in esecuzione su end


systems che comunicano attraverso la rete.
✓ Client/server UN APP TRASMETTE Un A p p LEVE

✓ Peer-to-peer Entrambi trasmettono e ricevono

✓Protocolli umani:
✓ inviati messaggi specifici
✓ azioni specifiche al ricevimento dei messaggi, o di altri eventi
✓Protocolli di rete:
✓ Regolano tutte le attività di comunicazione in Internet
✓ Definiti dagli RFC
un protocollo definisce il formato,
l’ordine dei messaggi scambiati tra
entità di rete, e le azioni intraprese alla
ricezione o trasmissione di un
messaggio
@L. Massari reti di calcolatori 24/25

16
CONCETTO OL COMUTAZIONE ON Un MESSAGGro

SORGENTE DESTINAZIONE ESEMPIO


X X

R = 1 5 MOPS = 1 5
106

I
:
. .

Banda ogni Noto

51
0 = 7 .
5 .
106 bits

MESSAGGIO
101

151
s
trasm == -
= 51

TENDO
↓ trasm
:

Nuovi = 51 .
3 = 159 = latenza

·
In realta er host inviano dacchetti

-
Leno-system spezza il messaggio (0) in pacchetti di Leit (pipenning del pachETT)

L(ort)
-
trasm paccetto
↑ (BIT/SEC)

I
· dati vengono trasmessi in rete con commutazione di pacchetti (switching del pacchetta

· cosi facendo er switch introducono un ritardo store-and-forward (memonzo e meinvio

SORGENTE Destinatore ESEmpro


X X
%
o = 7, 5 . 10 pit 2 = 1500 bit
LATENZ = 5 0011
,

Lain Pack
O

e E
1P

E
1P Geni
-
r= 1, 5 m6PS

5S
5000
5000 00
O
53 5000
V
NPACK =
1
=

4
,5 103 10-3
brats ,
L =

1 5
.

.
706
= = ins
W ,
comutazione di pachett

·
I commutator Introducono una latenza di store and forward

· Destinataro deve Rassemblare (spezzare ha un costo

· conovisione risorse di rete a Utenti più pachetti diversi a Utenti omerse


,

CONTESA

· Quando il pachetto accede alla rete usa tutta la banda (feer ofert
.

L no divisione di banda allocazione dedicata -


(Grosso prodena)

puo succedere ES switch Menora prena

CONTES Per Le RSORSE

·
congestione /saturazione :
copa di pacheti in attesa del Un

VANTAGG

· meno ritardo che nel invio di tutto il messaggio

· in caso di Errore perdo 1 pacretto e non tutto

Svantaggio

· overhead tor informationi di controllo

L intestazion (fondamentali)
part in pro per fue funzionare i protocolli
Come misurare le prestazioni delle
reti a commutazione di pacchetto?
✓Latenza
✓Perdita di pacchetti
✓Throughput
✓Prodotto banda-ritardo

© L. Massari reti di calcolatori 24/25

Ritardi e perdite nelle reti a


commutazione di pacchetto
✓un pacchetto attraversa una serie di router
✓i pacchetti attendono in coda il proprio turno
✓la coda (buffer) che precede un link ha capacità finita
✓un pacchetto che arriva ad una coda piena viene scartato

Pacchetto in trasmissione (ritardo)


A

B
Pacchetto in coda (ritardo)
buffer libero: pacchetti in arrivo
scartati (perdita) se buffer non libero

· la seguenza di pachetti a e 8 non segue alcun ordine fisse


© L. Massari reti di calcolatori 24/25

2 ·
con preveni diverse
Commutazione di messaggio

Esempio:
O = 7.5106 bits
Ritardo di trasmissione = O/R R = 1.5 Mbps
tempo necessario per trasmettere un ritardo end-to-end = ?
oggetto di O bit su un link di banda R (da sorgente a destinazione)

@L. Massari reti di calcolatori 24/25

Gli host inviano pacchetti di dati


✓ L’end-system mittente spezza il
messaggio applicativo in pacchetti
(blocchi di dati)
✓ Pacchetto: unità minima di informazione
trasmessa due pacchetti,
ciascuno L bits
✓ L’end-system trasmette i pacchetti sulla
rete d’accesso alla banda massima R
2 1

R: frequenza trasmissiva
host

Tempo necessario Ritardo di


per trasmettere un L (bits)
pacchetto di L bit = trasmissione =
del pacchetto R (bits/sec)
sul link di banda R

@L. Massari reti di calcolatori 24/25

2
Commutazione di pacchetto

✓I dati vengono trasferiti


nella rete con
commutazione di
pacchetto (packet
switching)
✓I router introducono un
ritardo store-and-forward

@L. Massari reti di calcolatori 24/25

Commutazione di pacchetto:
store-and-forward

L bits
per packet

3 2 1
source destination
R bps R bps

✓trasmissione in pipeline
✓sono necessari L/R secondi per trasmettere un
pacchetto di L bits su un link a R bps
✓store and forward: tutto il pacchetto deve arrivare al
router prima di essere ritrasmesso

@L. Massari reti di calcolatori 24/25

4
Commutazione di pacchetto
Esempio:
O = 7.5106 bit
L = 1500 bit
R = 1.5 Mbps
ritardo end-to-end = ?

@L. Massari reti di calcolatori 24/25

Commutazione di pacchetto
✓Il flusso di dati tra end contesa per le risorse
systems è diviso in pacchetti ✓ La richiesta
che attraversano link e
commutatori complessiva per
una risorsa può
✓Il destinatario riassembla superare la
✓Pacchetti di flussi diversi disponibilità
condividono le risorse di rete ✓ Congestione: code
✓Ogni pacchetto usa tutta la di pacchetti, attesa
banda del link per il link
✓Risorse allocate su richiesta
✓NO: divisione di banda,
allocazione dedicata, risorse
riservate
@L. Massari reti di calcolatori 24/25

6
Commutazione di pacchetto vs.
messaggio
✓Vantaggi:
✓Ritardo store-and forward molto più basso e ritardo end-
to-end inferiore rispetto a quello per trasmettere il
messaggio intero
✓in caso di errore, perdita del pacchetto e non del
messaggio
✓Svantaggio: overhead di informazioni di controllo

@L. Massari reti di calcolatori 24/25

Commutazione di pacchetto

La sequenza di pacchetti di A e B non segue alcun ordine fisso


(statistical multiplexing)

10 Mbps
C
A Ethernet

1.5 Mbps
B
coda di pacchetti
in attesa sul link
in uscita

D E

@L. Massari reti di calcolatori 24/25

8
·
Riservo parte di Banda o per tot tempo

· allocatore pella Banda

Vantaggio

no certezza del Link

SVANTAGGIO

· Devo preparare Il circuito

Se ALLOCO ma Non UsoSorse SpreCATE


Commutazione di pacchetto vs.
circuito

Vantaggi
✓ Condivisione risorse
✓ Semplice, senza “setup” della chiamata

Svantaggio: Eccessiva congestione → ritardo e perdita di pacchetti


necessari protocolli per trasferimento affidabile dei dati,
controllo della congestione

@L. Massari reti di calcolatori 24/25

11
Commutazione di pacchetto vs.
circuito

Vantaggi
✓ Condivisione risorse
✓ Semplice, senza “setup” della chiamata

Svantaggio: Eccessiva congestione → ritardo e perdita di pacchetti


necessari protocolli per trasferimento affidabile dei dati,
controllo della congestione

@L. Massari reti di calcolatori 24/25

11
Come misurare le prestazioni delle
reti a commutazione di pacchetto?
✓Latenza
I
✓Perdita
I di pacchetti
✓Throughput
3

✓Prodotto banda-ritardo
&

© L. Massari reti di calcolatori 24/25

Ritardi e perdite nelle reti a


DEMA
commutazione di pacchetto
✓un pacchetto attraversa una serie di router
✓i pacchetti attendono in coda il proprio turno
✓la coda (buffer) che precede un link ha capacità finita
✓un pacchetto che arriva ad una coda piena viene scartato Pacheto
~
L
Quato porta ll --rutraS
~ Link
R

Pacchetto in trasmissione (ritardo) ↓


velocita tras

B
Pacchetto in coda (ritardo) 1 Pachetto Alla VOLTA

GU AER ASPETTANO
buffer libero: pacchetti in arrivo
in CODA
scartati (perdita) se buffer non libero

© L. Massari reti di calcolatori 24/25

2
Tipi di ritardo ~
Ordente AL W
COuter) < MSEL

✓ritardo di elaborazione del nodo:


✓controllo errori
✓scelta del link di uscita
1x
# - X -

x
✓tipicamente < msec
-x
✓ritardo di coda:
✓tempo in attesa di elaborazione e di trasmissione sul link in
uscita
✓dipende dal livello di congestione del router
✓ritardo di trasmissione (store-and-forward):
✓tempo per trasmettere gli L bit del pacchetto sul link di
capacità R
✓L/R Ritardo trasmisure
=
✓ ritardo di propagazione:
✓ d = lunghezza del link fisico
✓ v = velocità di propagazione nel mezzo (~2.8x108 m/sec)
✓ d/v
Ritardo neMezzo tSe vene
mezo
© L. Massari reti di calcolatori 24/25

Quattro sorgenti di ritardo

trasmissione
A
propagazione

elaborazione coda
del nodo

© L. Massari reti di calcolatori 24/25

4
Latenza
altaro hand to have

✓Latenza: tempo necessario perchè un pacchetto arrivi
completamente a destinazione, dal momento in cui il
primo bit parte dalla sorgente

N router tra nodo sorgente e nodo destinazione

dend-to-end = dtrasm + dprop + N (delab + dtrans + dcoda + dprop )

sorgente router

Singolo pacchetto ,
va Avattata

© L. Massari reti di calcolatori 24/25

5 ·
Spesso Questi tempi sono sovrapposti (pipenne) tempi nascosti

Ritardo di coda

✓dipende da
✓Velocità arrivo traffico
✓Velocità trasmissione del link
✓Natura del traffico
✓a = frequenza media di arrivo dei pacchetti
✓intensità del traffico = La/R
✓ La/R « 1, dcoda ≈ 0
✓ La/R → 1, dcoda tende a crescere esponenzialmente
✓ La/R > 1, ritardo medio infinito …

© L. Massari reti di calcolatori 24/25

6
14Ps
i =
1 = 10PXs 7

C
·
e una stima media potrete essere spato come moti assieme
X ,

Frequenza Arivu ber Brf

Lo
= O
Intensita
vel traffico =
R
↑ + Tende a crescere la Loga

- y ritardo mepro infinito

Tr

ESEMPR
·
Trasmisure finita
· si sta propagando

·
mentre trasmetto gia si propaga
au
·
X S X
· tempo di propagatue finise appena triva il pote est

I I
1000 kM

V =
vel propagazione = 1
,
8 .
708
1024 8 or 8197
=
.

entando di trasmisione = teras 10-10'Bis


I = 0
. 8197MS
107
R = 10 mbps
Tom
E
1000 -

Ritardo propacatore = prop= = = 5 . 55 MS


1
.8 .
708M/
PKs = 1 K Brites ↑voi cambiare il pachetto ma non cambra


tras I prope trasmisione finisce in tempo

↓ prot canale
tira - completamente occurato in prasmissone
A E C p
/

-
R =
1kBPs

-
M =
16 kBIT
L = 8 Ker
Se Pack

P=
-
21 T
41 ↓prop =
1s

50
ve n e
Betwee ner

61
J
↑atam =
E s
TS Pe *S

es Py
9 S
latenza =
ad tras + 3 d
prop

V non Pe ↑

113

a Rezombie retombes < a Rinomb 8 retembps <

PT
Pr
Po

Pr Po
Pr

Po P
Ritardo di coda (cont.)
✓Se La/R > 1, arrivano più pacchetti di quanti possano essere
serviti
✓Ipotizzando buffer non limitati, dcoda → ∞
✓I router hanno buffer di dimensione finita e il ritardo di coda
non tende ad infinito
✓ I pacchetti vengono scartati
✓ La quantità di pacchetti persi aumenta con l’aumentare dell’intensità
del traffico

✓Se La/R <=1, il ritardo di coda dipende dalla natura del traffico
✓Se ogni pacchetto arriva periodicamente ogni L/R sec, dcoda =0
✓Se arrivano a raffica, dcoda varia per ogni pacchetto
✓ Per il primo dcoda =0
✓ Per il secondo dcoda =L/R
✓ Per l’N-simo dcoda =(N-1)*L/R
✓…

© L. Massari reti di calcolatori 24/25

Bandwidth vs. Throughput

✓throughput: frequenza (bit/tempo) effettiva di


trasferimento dei bit Quel -
che verarono NON QUELLA NONNALE

✓instantaneo: frequenza in un dato punto in un certo


istante di tempo
✓medio: frequenza su un periodo di tempo lungo

C
S

Canale che trasmette canale che trasmette


il server invia
bit alla frequenza di bit alla frequenza di
bit nella pipe
Rs bits/sec Rc bits/sec

© L. Massari reti di calcolatori 24/25

8
Throughput

✓Rs < Rc qual è il throughput medio end-to-end?


S C

Rs bits/sec Rc bits/sec

✓ Rs > Rc qual è il throughput medio end-to-end?


C
S
Rs bits/sec Rc bits/sec

Link bottleneck: link sul percorso che vincola il throughput

© L. Massari reti di calcolatori 24/25

9 · Throwputspesso inferore alla banda promessa

Prodotto banda-ritardo

sezione trasversale: banda

lunghezza: ritardo di propagazione

✓R x dprop = banda trasmissiva x ritardo di propagazione


✓rappresenta il numero massimo di bit che il link può
contenere
· indica quanti dati sono in viagoio

© L. Massari reti di calcolatori 24/25

11
ESErcizo
PR 40' bit
=
Sprop : R = e . ·
0
.
08 s = 160000 bi

A E

↓ 20000 . 403 m

↓ = 20000 Ke v = = 5 .
108M/ ↓ propt I = 0
.
08S
108/
.
,
v 1 5
.
.

R = e mbps >
466pS
8 00000 -
3
GTrasm =

2 . 706
= too .
10

0 =
800 . 000 Bit

tiras - f prop

Propr !
max n ent sul canale :

spato ocopato va un e pos


bit
An = 16b

pr = 1030 , 08 = 80000000
Prodotto banda-ritardo - esempio
banda=1 bps, ritardo =5 s banda=5 bps, ritardo =5 s
banda x ritardo = 5 bit banda x ritardo = 25 bit
1 bit
1s 1s 5 bit

1s 1s
1s 1s
1s 1s
1s 1s
1s 1s 1s 1s 1s 1s 1s 1s 1s 1s

© L. Massari reti di calcolatori 24/25

12
Introduzione
✓Struttura di Internet:
✓Accesso alla rete: end-systems, applicazioni, mezzi
trasmissivi
✓Nucleo: struttura della rete, interconnessione,
commutazione di pacchetto
✓Terminologia e concetti fondamentali
✓Prestazioni: ritardi e perdite nelle reti
✓Pila protocollare e modelli di servizio

@L. Massari reti di calcolatori 24/25

Pila protocollare e modelli di servizio

Reti complesse: end-system, commutatori, mezzi


trasmissivi, protocolli, …

necessità di organizzarne la struttura

✓Architettura a livelli PIU WELLI LEGATI TRADI CORO

✓Livelli in Internet
✓Incapsulamento porta al luea di pachetto

@L. Massari reti di calcolatori 24/25

2
Esempio di organizzazione a livelli

Redazione Lettera M Lettura Lettera


Spedizione Ricezione
Ufficio Ufficio
Furgoncini Furgoncini
Aerei S Aerei

Mittente Sistema di trasporto Destinatario

reti di calcolatori 24/25

Esempio di organizzazione a livelli

Redazione Lettera Lettura Lettera Foglio

Spedizione Ricezione Busta

Ufficio Ufficio Sacco

Furgoncini Furgoncini Sacchi

Aerei Aerei Tanti sacchi

Mittente Sistema di trasporto Destinatario Oggetto


Trasportato

reti di calcolatori 24/25

4
Altro esempio di organizzazione a livelli

(A.S. Tanenbaum, Computer Networks)

@L. Massari reti di calcolatori 24/25

Organizzazione a livelli Implementata su tutti i sopr

✓ Ogni livello implementa un servizio, Mi Fido del Livello adiacente

basandosi sui servizi offerti dal livello


inferiore
✓ Per ogni livello vengono definiti i
servizi forniti al livello superiore e le
primitive attraverso cui richiedere un
servizio
✓ Un servizio è specificato da un
insieme di primitive (spesso
implementate come chiamate di
sistema)
✓ L’interfaccia definisce i servizi e le
primitive che un livello mette a
disposizione del livello superiore
·
PROTOCOLL di Un Cento LIVELLO

(A.S. Tanenbaum, Computer Networks)

6
Architettura di rete

gerarchia di livelli + protocolli

✓ Architetture diverse sono catterizzate da:


✓ un diverso numero di livelli
✓ diversi nomi e servizi associati a ciascun livello

@L. Massari reti di calcolatori 24/25

Protocollo regole che regoland la comuncation

Protocolli umani: Protocolli di rete:


✓inviati messaggi specifici ✓Regolano tutte le attività di
✓azioni specifiche al comunicazione in Internet
ricevimento dei messaggi, ✓Definiti dagli RFC
o di altri eventi
un protocollo definisce il
formato, l’ordine dei
messaggi scambiati tra entità
di rete, e le azioni intraprese
alla ricezione o trasmissione
di un messaggio

9
Pila protocollare (protocol stack)
✓Insieme di protocolli dei diversi livelli
✓Protocollo di livello n: regole e convenzioni per la
comunicazione (logica) tra entità di livello n. E’
distribuito tra le entità di rete che implementano il
protocollo
✓Peer entities: entità che comunicano a livello n
scambiandosi messaggi (n-PDU)
L
L
unita di dat del protocolloo r vero N

tutte le entra implementano pila protolocale


che dare della

@L. Massari reti di calcolatori 24/25

10

Internet protocol stack


✓Applicazione: supporto delle
applicazioni di rete Inter facia viente app di rete

applicazione
✓Trasporto: trasferimento di
messaggi applicativi da - Trasfere

Tra
processi

sistem
aducting
trasporto
processo a processo
Eno

✓Rete: instradamento dei Route implementar


/ prim
solo
rete
pacchetti da sorgente a
3 sopaa solo

Ero sist

destinazione, attraverso la Trovare IL Percorso

sottorete di comunicazione collegamento


✓Collegamento: trasferimento fisico
dati tra nodi vicini Protocol
In rete
Per
Locale
la CONSEGNA

✓Fisico: bit ‘sul cavo’ …


TRASF VERO E Propro

@L. Massari reti di calcolatori 24/25

11
Internet (Architettura TCP/IP)
PDU
moer
protocoll
Protocol Data Unit
5 Applicazione messaggio

3
SMTP HTTP RTP DNS

4 Trasporto TCP UDP segmento


QUESTO relativo Al
3 Rete
SOLO
IP datagramma LIVELLO

Ethernet 3G frame
2 Collegamento
DSL 802.11

1 Fisico

@L. Massari reti di calcolatori 24/25

12

Livelli Architettura TCP/IP (1/2)


✓Applicazione: supporto delle applicazioni di rete
✓TELNET, FTP, SMTP, HTTP, DNS …
✓Trasporto: trasferimento di messaggi applicativi
tra processi su host sorgente e destinazione (end-
to-end)
✓rilevazione e correzione degli errori
✓multiplexing / demultiplexing Ricevere DatiAt App E consegnar a Quella Gusta

✓controllo della congestione e del flusso


✓protocollo TCP: affidabile, orientato alla
connessione, gestisce controllo del flusso e della Garantire
we l dath

congestione Arvino

perdite
ev eror
e gestite
e

✓protocollo UDP: inaffidabile, senza connessione


rfc1180 ‘A TCP/IP tutorial’ (1991)

@L. Massari reti di calcolatori 24/25

13
Livelli Architettura TCP/IP (2/2)
✓Rete: instradamento dei pacchetti attraverso la
sottorete di comunicazione, indipendentemente dal
tipo di collegamento. Servizio connectionless, best
effort. Non I sono controll

✓definizione del formato dei pacchetti e dell’indirizzamento


✓definizione degli algoritmi per l’instradamento
✓protocollo IP (Internet Protocol)

✓Datalink: trasferimento dati tra nodi adiacenti.


✓gestione collegamento (accesso a canale condiviso in reti
broadcast)
✓framing (divisione dei frame)
✓controllo errori
✓protocolli: Ethernet, 802.111 (WiFi), PPP.
@L. Massari reti di calcolatori 24/25

14

Commutatori

CAMBIA Router Network Network


RETE
↑ occaiuter

Nor toch & Switch (o bridge) Link Link


(1

New fot
rigerem
Repeater (o hub) Physical Physical

@L. Massari reti di calcolatori 24/25

15
Modello di comunicazione
COLEGAMENTO

↑ virtuale

✓Il livello n su un host comunica (logicamente)


con il livello n di un altro host (comunicazione
logica). Non c’è trasferimento diretto di dati
tra livelli n dei nodi comunicanti
✓Ogni livello interagisce solo con i livelli
adiacenti (comunicazione fisica)
✓Un livello passa al livello sottostante
✓dati
✓informazioni di controllo

@L. Massari reti di calcolatori 24/25

16

Comunicazione
logica

Comunicazione
fisica

@L. Massari reti di calcolatori 24/25

17
Incapsulamento
di rvello
intestature
sorgente
message M application
segment Ht M transport
datagram Hn Ht M network
frame Hl Hn Ht M link
physical
link
physical

switch

destinazione Hn Ht M network
M application Hl Hn Ht M link Hn Ht M
Ht M transport physical
Hn Ht M network
Hl Hn Ht M link router
physical

18

Comunicazione logica e fisica

Troppo grande per un patagrama

ALLORA

@L. Massari reti di calcolatori 24/25

19
Cos’è un pacchetto?

@L. Massari reti di calcolatori 24/25

20

Cos’è un pacchetto?

Intestazione Ethernet
Intestazione IP
Intestazione TCP
Dati

@L. Massari reti di calcolatori 24/25

21
Svantaggi di architettura a livelli

✓ Aggiunge overhead
✓ Nasconde informazione ([Link]. a livello
applicativo potrebbe essere importante
sapere se il canale sottostante è wireless o
cablato)

@L. Massari reti di calcolatori 24/25

22
Applicatore di rete

programm (processi in EXE SUL EEr sist

· + architettura

L CLENT SERVER
Creat Server
L P Err TO MEar
(nerested (riceve
L I e ecuente e forniture e invia)
·
noor + caltro
↓ BRUA

PER TO PER

·
entramei inoor sia cent Cheserver

CUENT SERVER

SERVER-IP NOTO

- sempre Attivo

-
più rucitieste da più clent (non 1ay)

CVENT-IP VARABIL

Athi
-

discontinui

-
non comunicano diretamente con alter Client

-
comunicano con il server

PIP
non atthi iP var
·
ci sono mool sempre

· offre e chiede servizz


SetLABILE
COMUNICAZIONE TRA PROCESSO

·
il novo che manda la nofesa (proc cuent aspetta esposte da (procserver)
· Noor hanno un indiezzo ma non basta per identificare il processo

·
soket tores = ipe identificatore del processo (num posta o
socket

SOCKET
· indirizzo di processo in esecutue

· il processo mittente si affra al infrastruttura offerta ballo strato di trasporto

pe consente la mesaggio al socket del processo ricevente


Internet Reference Model
PDU
Protocol Data Unit
5 Applicazione SMTP HTTP RTP DNS messaggio
4 Trasporto TCP UDP segmento
3 Rete IP datagramma

Ethernet 3G
2 Collegamento
DSL 802.11 frame

1 Fisico

@L. Massari reti di calcolatori 24/25

Applicazioni di rete
Programmi (processi) in esecuzione
application
su end systems che comunicano transport
network

attraverso la rete. data link


physical

✓ Architetture
✓ Client-server
✓ Peer-to-Peer (P2P)
✓ Ibrida ( P2P + Client/Server)

Non è necessario scrivere software


application
per il nucleo della rete transport
network

✓ i commutatori della sottorete data link


physical
application
transport
✓ non eseguono applicazioni di network
data link
physical
rete
✓ fanno da tramite e ignorano
il contenuto dei pacchetti
@L. Massari reti di calcolatori 24/25

1
Tipi di architettura

✓Client/server:
✓i nodi implementano o processo client o processo server
✓I client eseguono richieste
✓I server inviano risposte a seguito del ricevimento di
richieste
✓Peer-to-peer (P2P):
✓i nodi implementano sia il processo client sia il processo
server

@L. Massari reti di calcolatori 24/25

Architettura Client/Server
server:
✓ sempre attivo
✓ può ricevere richieste da
più client
✓ indirizzo IP noto
client:
✓ possono essere attivi in
modo discontinuo
✓ comunicano con il server
✓ non comunicano con altri
client direttamente
✓ indirizzi IP variabili

@L. Massari reti di calcolatori 24/25

2
Architettura P2P
✓ Non ci sono server sempre
attivi
✓ I peer richiedono servizio ad
altri peer ed offrono servizi
✓ Comunicazione diretta tra
end-systems (peer)
✓ I peer possono cambiare
indirizzo IP e sono attivi in
modo discontinuo
Molto scalabile: ogni peer
aggiunge carico e capacità

@L. Massari reti di calcolatori 24/25

Comunicazione tra processi

✓Due processi su end-system remoti comunicano


scambiando messaggi
✓Processo Client: processo che inizia la
comunicazione
✓Processo Server: processo che aspetta di essere
contattato
✓Lo scambio di messaggi tra processi applicativi
avviene grazie ai servizi offerti dai livelli inferiori

@L. Massari reti di calcolatori 24/25

3
Indirizzamento
✓Il processo mittente deve poter identificare il
processo ricevente
✓I nodi di rete hanno un indirizzo, ma non è
sufficiente: più processi potrebbero essere in
esecuzione sullo stesso nodo
✓Socket address: indirizzo dell’host (indirizzo IP a 32
bit) + identificatore del processo (numero di porta
o socket)
✓[Link] : coordinamento DNS root,
indirizzamento IP, protocolli.

@L. Massari reti di calcolatori 24/25

Socket
✓Socket: indirizzo di un processo in esecuzione su un end-system
✓ Porte di comunicazione (API/Application Programming Interface) tra
applicazione e rete (Sistema operativo) per l’invio e la ricezione di
messaggi a/da un altro processo applicativo
✓Introdotte in BSD4.1 UNIX, 1981
✓Scelta di:
✓ protocollo di trasporto (inaffidabile, affidabile)
✓ alcuni parametri a livello trasporto
✓Il processo mittente si affida all’infrastruttura offerta dallo strato
di trasporto per consegnare il messaggio al socket del processo
ricevente

application application
socket Controllato da
process process App. developer

transport transport
network network controllato
link Da S.O.
link Internet
physical physical

4
son
·
1 contanto Wallkar soket

· Lient apre sofet e dice iP e soret Server

·
il server ricelee crea comection Soft
Web e HTTP
▪ Web è servizio client/server; client e server
scambiano messaggi HTTP
▪ Il browser Web implementa il lato client, che
richiede al Web server una pagina Web
▪ I server Web memorizzano le informazioni
richieste
▪ HTTP (HyperText Transfer Protocol ) è il protocollo
applicativo del Web
▪ HTTP definisce la struttura dei messaggi e le azioni
di client e server

@L. Massari reti di calcolatori 24/25

Pagina Web

▪ Una pagina Web consiste in una pagina base HTML,


contenente oggetti (file HTML, immagini JPEG,
applet Java, file audio,…)
▪ Ogni oggetto è referenziabile con un URL (Uniform
Resource Locator): Solet
malcone

~
[Link]

protocollo indirizzo o nome risorsa


applicativo simbolico del server
numero di porta

@L. Massari reti di calcolatori 24/25

2
Interazione client/server
▪ Client: browser che richiede
una pagina HTML, riceve
(usando HTTP), e mostra
oggetti Web
▪ Server: il Web server
risponde (usando HTTP)
PC running
inviando gli oggetti richiesti. Firefox browser
▪ possono esistere versioni
dello stesso oggetto,
ottimizzate per client
server
diversi running
Apache Web
server

iphone running
Safari browser
@L. Massari reti di calcolatori 24/25

HTTP
▪ Il client apre una connessione TCP (crea un socket)
verso il server (porta 80)
▪ Il server accetta la richiesta di connessione TCP
▪ I messaggi di richiesta e risposta HTTP vengono ~
so una

scambiati tra browser (client HTTP) e server Web Soket Deada


(server HTTP) Da 80
▪ La connessione viene chiusa
▪ HTTP è stateless: non mantiene informazioni sulle
richieste del client

@L. Massari reti di calcolatori 24/25

4
Connessioni HTTP

▪ HTTP non-persistente: al più un oggetto inviato in


una connessione TCP, che poi viene chiusa
▪ HTTP persistente: più oggetti inviati nella stessa
connessione TCP, che poi viene chiusa

@L. Massari reti di calcolatori 24/25

HTTP non-persistente
Il client specifica URL:
[Link]
(contiene testo e referenze a immagini)
1a. Il client HTTP inizia una connessione
TCP al server HTTP (processo) su 1b. Il server HTTP su [Link]
[Link] sulla porta 80 (in attesa di connessioni TCP sulla
porta 80), “accetta” la
2. Il client HTTP invia un messaggio di connessione, e lo notifica al client
richiesta HTTP (contiene URL) in
3. Il server HTTP riceve il messaggio di
un connection socket TCP. Il
richiesta, invia un messaggio di
messaggio indica che il client vuole
risposta contenente l’oggetto
l’oggetto ‘didattica’
richiesto, e invia il messaggio
attraverso il socket
4. Il server HTTP server chiude la
5. Il client HTTP riceve il messaggio di
connessione TCP
risposta contenente il file html e lo
visualizza. Parsing del file html file,
trova gli oggetti referenziati
tempo
6. I passi 1-5 sono ripetuti per ognuno
degli oggetti

6
HTTP non-persistente
▪ Una connessione TCP trasporta
una richiesta e una risposta
▪ I browser possono essere
configurati per aprire più
connessione in parallelo per
scaricare gli oggetti referenziati
initiate TCP
▪ RTT Round Trip Time: tempo connection
necessario perchè un pacchetto RTT
piccolo vada da client a server e
request
torni indietro file
▪ Per ogni oggetto: tempo di risposta time to
RTT transmit
= 2RTT+ ritardo di trasmissione file
dell’oggetto file
received

time time

@L. Massari reti di calcolatori 24/25

HTTP persistente
▪ Il server lascia la connessione aperta dopo l’invio
della risposta
▪ I messaggi successivi (tra stessi client e server)
sono inviati nella stessa connessione
▪ Il client invia le richieste in pipeline, senza dover
aspettare la risposta del server (default in HTTP
1.1) non appena trova gli oggetti referenziati
▪ Richiesto circa un RTT per tutti gli oggetti
referenziati

@L. Massari reti di calcolatori 24/25

8
Richiesta HTTP
▪ Messaggio di richiesta HTTP (rfc1945, rfc2616, rfc7540):
▪ ASCII

riga di richiesta
(GET, POST, GET /[Link] HTTP/1.1\r\n
HEAD) Host: [Link]\r\n
User-Agent: Firefox/3.6.10\r\n
Accept: text/html,application/xhtml+xml\r\n
intestazione Accept-Language: en-us,en;q=0.5\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
Keep-Alive: 115\r\n
Connection: keep-alive\r\n
fine \r\n
dell’intestazione

@L. Massari reti di calcolatori 24/25

Richiesta HTTP: formato generale

method sp URL sp version \r \n request


line
header field name: value \r \n
header
~
~ ~
~ lines

header field name: value \r \n


\r \n

~
~ entity body ~
~ corpo (opzionale)

reti di calcolatori 24/25


@L. Massari

10
Intestazioni di richiesta

@L. Massari reti di calcolatori 24/25

11

Metodi
▪ POST: le pagine web spesso contengono form di input,
inviato dal client al server nel corpo del messaggi di
richiesta
▪ GET: è possible includere dati (dopo un ‘?’) nel campo
URL del messaggio
▪ HEAD: richiede solamente gli headers che sarebbero
inviati se l’URL fosse richiesto con un metodo GET
▪ PUT: upload di un nuovo oggetto sul server

@L. Massari reti di calcolatori 24/25

12
Risposta HTTP
riga di stato (protocollo status-code status-phrase)
HTTP/1.1 200 OK\r\n
Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
Last-Modified: Tue, 30 Oct 2007 17:00:02
GMT\r\n
intestazione ETag: "17dc6-a5c-bf716880"\r\n
Accept-Ranges: bytes\r\n
Content-Length: 2652\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html; charset=ISO-8859-
1\r\n
\r\n
dati, [Link]. il data data data data data ...
File HTML
richiesto
@L. Massari reti di calcolatori 24/25

13

Codici di stato della risposta

200 OK
▪ La richiesta ha avuto successo e si invia l'informazione in risposta
301 Moved Permanently
▪ L'oggetto richiesto è stato spostato: il nuovo URL è specificato
nell'intestazione Location:
400 Bad Request
▪ Errore generico, la richiesta non è stata compresa dal server
404 Not Found
▪ Il documento richiesto non esiste sul server
505 HTTP Version Not Supported
▪ Il server non dispone della versione di protocollo richiesta

@L. Massari reti di calcolatori 24/25

14
Mantenere lo stato user-server: cookies

▪ L’interazione client/server è stateless


▪ I siti Web e i client usano cookies (RFC 6265) per mantenere uno stato
delle transazioni
Quattro componenti:
▪ Riga di intestazione del messaggio di risposta HTTP
▪ Riga di intestazione del successivo messaggio di richiesta HTTP
▪ Un file mantenuto sul sistema dell’utente e gestito dal browser
▪ Un database sul server
A cosa servono:
▪ Autorizzazione
▪ Carrello della spesa
▪ Offerte mirate

@L. Massari reti di calcolatori 24/25

15

Cookies

client server

ebay 8734
usual http request msg Amazon server
cookie file creates ID
usual http response
set-cookie: 1678 1678 for user create backend
ebay 8734 entry database
amazon 1678
usual http request msg
cookie: 1678 cookie- access
specific
usual http response msg action

one week later:


access
ebay 8734 usual http request msg
amazon 1678 cookie: 1678 cookie-
specific
usual http response msg action

16
Web caching (proxy server)
obiettivo: soddisfare le richieste del client al posto del server
effettivo
▪ Il browser può essere
configurato in modo che
tutte le richieste HTTP
vengano dirette al proxy proxy
(Web cache) server
client
▪ Oggetto in cache: la origin
cache restituisce server

l’oggetto
▪ Altrimenti la cache
richiede l’oggetto al
server e poi invia al client
client

@L. Massari reti di calcolatori 24/25

17

Web caching

▪ Il proxy è sia client sia server


▪ Il proxy è installato tipicamente da ISP
perchè Web caching?
▪ Riduce il tempo di risposta per il client
▪ Riduce il traffico sul link d’accesso

@L. Massari reti di calcolatori 24/25

18
GET condizionale
▪ L’oggetto ospitato nel web server
potrebbe essere stato modificato server
rispetto alla copia del client
(browser o proxy) client
▪ obiettivo: non inviare l’oggetto se la HTTP request msg
cache ha una versione aggiornata If-modified-since: <date> object
▪ no ritardo di trasmissione not
dell’oggetto modified
HTTP response
before
▪ minore utilizzo del link HTTP/1.0
<date>
304 Not Modified
▪ client: specifica nella richiesta HTTP
la data della copia in cache
If-modified-since: <date>
▪ server: la risposta non contiene HTTP request msg
l’oggetto se la copia in cache è If-modified-since: <date> object
aggiornata: modified
HTTP/1.0 304 Not Modified HTTP response after
HTTP/1.0 200 OK <date>
<data>
@L. Massari reti di calcolatori 24/25

19

HTTP/2
▪ Obiettivo: ridurre i ritardi in richieste HTTP per più
oggetti
▪ HTTP1.1 utilizza connessioni persistenti
▪ Il server risponde alle richieste secondo una politica FCFS
▪ Oggetti piccoli potrebbero dover aspettare la trasmissione
di oggetti grandi (Head-of the-line blocking)
▪ HTTP/2 aumenta la flessibilità del server nell’invio
degli oggetti al client:
▪ Metodi, status code, intestazioni invariati rispetto a HTTP 1.1
▪ Ordine di trasmissione in base a priorità specificata dal client
▪ Push degli oggetti anche se non chiesti dal client
▪ Divisione degli oggetti in frames, scheduling dei frames per
ridurre HOL blocking

@L. Massari reti di calcolatori 24/25

20
HTTP/1.1: HOL blocking
il client richiede un oggetto grande e tre oggetti più piccoli

server

GET O4 GET O3 GET O2 GET O1 object data requested


client

O1

O2
O1 O3
O2
O3
O4
O4

@L. Massari reti di calcolatori 24/25

21

HTTP/2: riduzione HOL blocking

Gli oggetti sono suddivisi in frames, trasmessi alternati

server

GET O4 GET O3 GET O2 GET O1 object data requested


client

O2
O4
O3 O1

O2
O3
O1
O4

@L. Massari reti di calcolatori 24/25

22
HTTPS
▪ HTTP non è criptato
▪ TLS (Transport-Layer Security) si interpone tra livello
trasporto (TCP) e livello applicazione
▪ Fornisce API utilizzata da livello applicazione
(trasparente all’utente)
HTTP/2

TLS

TCP

IP

HTTP/2 over TCP

@L. Massari reti di calcolatori 24/25

23

DNS: Domain Name System


▪ Nodi in Internet hanno due identificatori
▪ Nome: alfanumerico
▪ Lunghezza variabile
▪ Struttura variabile
▪ Facile da ricordare
▪ Difficile da elaborare da parte dei nodi di rete
▪ Indirizzo IP: numerico usati Di protocolli
▪ Lunghezza fissa (32 o 128 bit)
▪ Struttura fissa
▪ Difficile da ricordare
▪ Facile da elaborare da parte dei nodi di rete

Come associare ad un nome un indirizzo IP?

@L. Massari reti di calcolatori 24/25

24
Come associare ad un nome il
proprio indirizzo IP?
▪ DNS: implementazione di un servizio dedicato alla
risoluzione di nomi in indirizzi IP
▪ Risolve due problemi:
-

▪ Come i nomi sono associati agli indirizzi


▪ Come le applicazioni ottengono queste associazioni
▪ Due componenti: implementato)
L Come

▪ Database distribuito implementato in server


geograficamente distribuiti e organizzati
gerarchicamente impossibile -
Centrale uno

▪ Protocollo applicativo client/server utilizzato


per interrogare il database Eavere -

de inviar

@L. Massari reti di calcolatori 24/25

25

DNS: servizi
▪ Servizi:
▪ Traduzione nome-indirizzo IP
▪ Alias dei nomi - risponde
stesso ilonverse a non

▪ Mail server alias


▪ Distribuzione del carico tante richieste ~
n on tute sullo stesa
nove

▪ Associazione di più indirizzi IP ad un unico nome


▪ Perché non un DNS centralizzato?
▪ Singolo punto di guasto
▪ Volume di traffico
▪ Un database centralizzato su un singolo server DNS
non è scalabile

@L. Massari reti di calcolatori 24/25

26
DNS: database distribuito, gerarchico

.
Root DNS Servers
Root

.com DNS servers .org DNS servers .edu DNS servers TLD: Top Level Domain

yahoo amazon pbs nyu umass


DNS servers DNS servers DNS servers DNS servers
Authoritative
DNS servers

▪ Struttura ad albero in cui ogni nodo ha etichetta


▪ Tre classi di nodi:
• Root
• Top Level Domain (TLD)
• Second Level Domain (o autoritativi)
▪ Un nome di dominio è una sequenza di etichette (separate da .) da un nodo
alla root
@L. Massari reti di calcolatori 24/25

27

Root DNS servers


▪ 13 root DNS server ‘logici’, ognuno replicato, etichettati con una
lettera da a a m, gestiti da 12 organizzazioni
▪ Gestiti da ICANN

@L. Massari reti di calcolatori 24/25

28
Root Name Servers

@L. Massari reti di calcolatori 24/25

29

TLD e Server autoritativi


▪ Top-Level Domain (TLD) server: generici (per
domini .com, .org, .net, .edu,… ) e country code
(.uk, .fr,..it,…). Forniscono indirizzi IP di server
autoritativi
▪ Server autoritativi (secondo livello):
▪ Ogni organizzazione dotata di nodi Internet
pubblicamente accessibili (server web e di posta) deve
fornire i record DNS di pubblico dominio che
mappano i nomi di questi nodi in indirizzi IP. I server
autoritativi mantengono questi record
▪ Gestiti da compagnie, organizzazioni o provider

@L. Massari reti di calcolatori 24/25

30
Chi conosce cosa
▪ Root Name Servers conoscono nomi e indirizzi IP di
tutti i name server associati a tutti i TLD
▪ Ogni name server di un TLD conosce nome e
indirizzi IP di tutti i name server associati ai propri
domini di secondo livello
▪ Ogni server di secondo livello conosce
▪ nomi e indirizzi IP di tutti i nodi registrati sotto il proprio
dominio
▪ nomi e indirizzi IP dei name server associati al proprio
TLD
▪ Ogni name server conosce nomi e indirizzi dei Root
Name Servers

@L. Massari reti di calcolatori 24/25

31

Setup DNS
▪ Come associare ad un device un name server?
▪ Indirizzi IP statici: è necessario conoscere il Name
Server
▪ Indirizzi IP dinamici (DHCP). In questo caso DHCP
assegna automaticamente il Name Server, ma può
essere anche scelto manualmente

@L. Massari reti di calcolatori 24/25

32
Il protocollo DNS
▪ Modello client/server
▪ Client (stub resolver) in esecuzione sull’end-system
▪ Componenti client e server in esecuzione sui Name
Server
▪ Il client invia al server una richiesta contenente il
nome da tradurre
▪ Il client riceve una risposta dal server, contenente
l’indirizzo IP
▪ Messaggi di richiesta e risposta incapsulati in
segmenti UDP, porta 53, per efficienza
▪ Protocolli recenti DoT (DNS over TLS), DoH (DNS over
HTTPS) offrono sicurezza e privacy
@L. Massari reti di calcolatori 24/25

33

Name Server locale


▪ Non appartiene strettamente alla gerarchia dei
server
▪ Ogni ISP (università, società, ISP residenziale) ha
un Name server locale
▪ Quando un nodo effettua una richiesta DNS, la
richiesta viene inviata al server locale
▪ Ha cache locale con traduzioni più recenti
nome-indirizzo
▪ Opera da proxy e inoltra la richiesta alla
gerarchia di server DNS

@L. Massari reti di calcolatori 24/25

34
hostname
Web stub
client resolver
IP address

response
User device
query

query
full resolver Internet
response

Local Name Server


@L. Massari reti di calcolatori 24/25

35

Esempio: query iterativa


sendealvent eurotra

▪ Un nodo in [Link] vuole Se sa Gira root Name server
l’indirizzo IP di [Link] ↑
▪ Il local name server Proxy
interroga il root server per
ottenere indirizzo IP del
server TLD .it
↑ 2
3
TLD server .it
1 4
▪ Il client interroga il server
DNS .com per ottenere 8 5
l’indirizzo IP del server
autoritativo per [Link] nodo in local Name server
[Link] [Link]
▪ Il client interroga il server 7 6
autoritativo di [Link] per
ottenere l’indirizzo IP di
[Link] authoritative server
[Link]
[Link]

@L. Massari
reti di calcolatori 24/25

36
Cache hits e misses IP
address
cached??
hit
hostname ?
stub
ssh client
resolver
IP miss
address
User device answer

IP hit query
miss
address query
cached? resolver Internet
?? answer

Local Name Server


@L. Massari reti di calcolatori 24/25

37
Livello trasporto

▪ Servizi ▪ Trasporto orientato alla


▪ Multiplexing e connessione: TCP
demultiplexing ▪ Struttura del segmento
▪ Trasferimento dati
▪ Trasporto senza affidabile
connessione: UDP ▪ Gestione della
▪ Principi di connessione
trasferimento affidabile ▪ Controllo del flusso
▪ Controllo della
congestione

© L. Massari reti di calcolatori 24/25

Servizi a livello trasporto


✓ Fornisce comunicazione ↓ ogg apprato
application
logica tra processi su host transport
network
data link
diversi physical
network
network
data link
physical
data link
✓ I protocolli di trasporto physical
network
data link
sono solo sugli end-system: physical network
data link
physical
✓ il mittente suddivide il network

messaggio applicativo in data link


physical

segmenti e li passa a livello application

rete transport
network
data link
✓ il ricevente riassembla i physical

segmenti in messaggi e li
passa a livello applicazione
© L. Massari reti di calcolatori 24/25

M MESSAGGIO
2 ↓
HT AMP SEGMEnto

Ha segmento paragran

t
Servizi trasporto/rete
▪ Il livello trasporto:
▪ comunicazione logica tra processi
▪ fa affidamento sui servizi di livello rete
▪ gestisce il multiplexing/demultiplexing del traffico di
rete tra le varie applicazioni
▪ Il livello rete:
▪ comunicazione logica tra host
▪ implementato nella sottorete di comunicazione
▪ servizio inaffidabile

© L. Massari reti di calcolatori 24/25

Livello trasporto
▪ Protocollo UDP (User Datagram Protocol):
▪ servizio inaffidabile (estensione del servizio offerto da IP)
▪ Protocollo TCP (Transmission Control Protocol):
▪ servizio affidabile, orientato alla connessione
▪ Servizi non disponibili: garanzia di banda e di ritardo
▪ Segmento: PDU di livello trasporto

Segmento

H802.11 HIP HTCP App, e.g., HTTP

Datagramma
Frame
Piet protocolare
© L. Massari reti di calcolatori 24/25

4
Azioni a livello trasporto

Mittente:
application ▪ Riceve messaggio application
app. msg
applicativo
transport ▪ Crea segmento TThhtransport
app. msg
determinando il valore dei
network (IP)
campi dell’intestazione network (IP)

link ▪ Passa il segmento a IP link

physical physical

© L. Massari reti di calcolatori 24/25

Azioni a livello trasporto

Ricevente:
application ▪ Riceve il segmento da IP application
▪ Controlla i valori delle
transport
app. msg intestazioni transport
▪ Estrae il messaggio
network (IP) applicativo network (IP)

link ▪ Demultiplexing del link


messaggio a livello physical
physical applicazione tramite socket
Th app. msg

© L. Massari reti di calcolatori 24/25

6
Multiplexing/demultiplexing

multiplexing lato mittente demultiplexing lato ricevente


gestire dati provenienti da più usare valori nell’header per
socket, aggiungere header di consegnare i segmenti al socket
trasporto (usato poi per opportuno
demultiplexing)

application

application P1 P2 application socket


P3 transport P4
process
transport network transport
network link network
link physical link
physical physical

© L. Massari reti di calcolatori 24/25

Demultiplexing
▪ I datagrammi ricevuti
Formato segmento TCP/UDP
contengono:
Que MOMENTO
▪ indirizzo IP sorgente e IP In

32 bits
destinazione ↑ 168/7

▪ un segmento di livello trasporto porta sorgente porta


168/7 destinazione
▪ Ogni segmento contiene
altri campi intestazione
numeri di porta sorgente e
destinazione in Quel moment

▪ Indirizzi IP e numeri di porta payload


sono usati per consegnare i (messaggio applicativo)
segmenti al socket corretto

© L. Massari reti di calcolatori 24/25

8
Numeri di porta
▪ Campo di 16 bit per numero di porta: valori
[0:65535]
▪ 0 - 1023 (well-known) assegnati a processi server noti
▪ 1024 – 49151 registrati: assegnati a particolari
applicazioni (tipicamente proprietarie)
▪ 49152 – 65535 dinamici: non assegnati
▪ Gestiti da IANA ( [Link]
names-port-numbers/[Link] )

© L. Massari reti di calcolatori 24/25

Porte well-known

© L. Massari reti di calcolatori 24/25

10
Multiplexing/demultiplexing UDP
Ricordiamo: clientSocket = socket(AF_INET, SOCK_DGRAM)
[Link](message,(serverName, serverPort))

Client Server
▪ Viene creato un socket UDP ✓ Il livello trasporto esamina il
assegnando un numero di porta numero di porta destinazione
▪ Il livello trasporto crea un e consegna il segmento al
segmento contenente socket associato
nell’intestazione i numeri di
porta sorgente e destinazione
▪ Il segmento viene passato al
livello rete, che incapsula il
segmento in un datagramma Datagrammi con stessa porta
contenente indirizzo sorgente e destinazione ma diversi IP e/o
destinazione. porta sorgente sono diretti alla
stessa porta

© L. Massari reti di calcolatori 24/25

11

Demultiplexing UDP: esempio


[Link](‘’, 6428);

[Link]((‘’, 9157)) [Link](‘’,5775);

application
application application
P1
P3 P4
transport
transport transport
network
network link network
link physical link
physical physical

source port: 6428 source port: ?


dest port: 9157 dest port: ?

source port: 9157 source port: ?


dest port: 6428 dest port: ?
© L. Massari reti di calcolatori 24/25

12
Multiplexing/demultiplexing TCP
Ricordiamo: clientSocket = socket(AF_INET, SOCK_STREAM)
[Link](sentence)

▪ Il client crea un socket TCP e il processo server


crea un socket di connessione
▪ Un socket TCP è identificato da quattro valori ed è
associato ad un particolare processo client:
▪ indirizzo IP sorgente
▪ numero di porta sorgente
▪ indirizzo IP destinazione
▪ porta destinazione
▪ Il ricevente usa i quattro valori per demultiplare il
segmento verso il socket corretto

© L. Massari reti di calcolatori 24/25

13

Demultiplexing TCP: esempio


application
application application
P4 P5 P6
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical server: IP physical
address B

host: IP source IP,port: B,80 host: IP


address A dest IP,port: A,9157 source IP,port: C,5775 address C
dest IP,port: B,80
source IP,port: A,9157
dest IP, port: B,80
source IP,port: C,9157
dest IP,port: B,80
Tre segmenti destinati all’indirizzo IP B, con porta
destinazione 80 sono demultiplexed a socket diversi

14
UDP (RFC 768)
▪ Senza connessione:
▪ non c’è fase di inizializzazione
▪ ogni segmento UDP è gestito indipendentemente dagli
altri
▪ Servizio “best effort”, i pacchetti possono:
▪ giungere a destinazione non ordinati
▪ non giungere a destinazione
▪ Servizi:
▪ multiplexing/demultiplexing
▪ controllo errore

© L. Massari reti di calcolatori 24/25

15

Perchè usare UDP?


▪ Non introduce ritardo per fase di inizializzazione
▪ Semplice: non ci sono informazioni di stato della
connessione
▪ Basso overhead di intestazione nel segmento
▪ No controllo della congestione: le applicazioni
possono inviare alla velocità desiderata (rischioso
per la rete)
▪ Usato per applicazioni multimediali, tolleranti alle
perdite di pacchetti e sensibili alla banda, DNS,
SNMP, HTTP/3
▪ Affidabilità e controllo congestione implementabili
a livello applicativo
© L. Massari reti di calcolatori 24/25

16
Segmento
UDP

Lunghezza in byte del rilevazione errori


segmento, compresa
intestazione

© L. Massari reti di calcolatori 24/25

17

Checksum di UDP

▪ Calcolato dal mittente e inserito nell’header


▪ Complemento a 1 della somma di segmento UDP e
pseudoheader IP (allineati a blocchi di 16 bit)
▪ Pseudoheader: indirizzi IP sorgente e destinazione,
protocollo, lunghezza UDP
▪ In ricezione: complemento a 1 della somma
dell’header (incluso checksum): risulta 0 in assenza di
errori
▪ In caso di errori, il segmento viene scartato oppure
passato all’applicazione con avviso di errore
© L. Massari reti di calcolatori 24/25

18
Livello trasporto

▪ Servizi ▪ Trasporto orientato alla


▪ Multiplexing e connessione: TCP
demultiplexing ▪ Struttura del segmento
▪ Trasferimento dati
▪ Trasporto senza affidabile
connessione: UDP ▪ Gestione della
▪ Principi di connessione
trasferimento affidabile ▪ Controllo del flusso
▪ Controllo della
congestione

@ L. Massari reti di calcolatori 24/25

Principi di trasferimento affidabile UUP


BILE
Non affra

istradamento ruting
~
▪ Il livello rete è inaffidabile:
-
Non e compro suo
pare aftagita router prendel

▪ Presenza di errori
▪ Perdita e duplicazione di pacchetti
▪ Ordine dei pacchetti non garantito
▪ In caso di errori è necessario:
▪ Rilevare e/o identificare gli errori
▪ Correggere gli errori oppure notificare al mittente
▪ Chiedere la ritrasmissione I

▪ Tutto questo considerando le risorse di rete e le


risorse del destinatario ritrasmisioni contrutate per entare di saturare la rett

@ L. Massari reti di calcolatori 24/25

2
Principi di trasferimento affidabile
scrivo un protocollo che

Rende affioaerle il Canale

sia lato mitente che destinatario

processo processo processo processo


mittente ricevente mittente ricevente
applicatzione dati dati applicazione dati daia
trasporto trasporto Implafidabilita
canale affidabile -
lato mittente del lato ricevente del
astrazione del servizio affidabile protocollo di protocollo di
trasferimento dati S trasferimento dati
affidabile CONTrolle affidabile
DANY

trasporto
rete
canale inaffidabile

implementazione del servizio


affidabile

@ L. Massari reti di calcolatori 24/25

Reliable data transfer protocol (rdt)


L rot provocer

Lu add passa vati che vere inviare in

↑ maniera afrance
rdt_send(): chiamata da sopra
deliver_data(): chiamata da rdt per
(app). Passaggio dati da consegnare
consegnare dati al livello superiore
al ricevente
processo processo
ricevente Arriva In MESSAGGg
mittente
rdt_send() dati dati COMPLETO E CORRETTO
deliver_data()

implementazione dati
implementazione
lato mittente del lato ricevente del
protocollo di protocollo di
trasferimento dati pacchetto trasferimento dati
affidabile affidabile
udt_send() Header dati Header dati rdt_rcv()

canale inaffidabile
udt_send(): chiamata da rdt per
trasmettere al ricevente il
ug rdt_rcv(): chiamata quando il
pacchetto arriva al lato ricevente
pacchetto su canale inaffidabile Comunicazione bidirezionale su
del canale
canale inaffidabile
Lo il protocetlo chiara per
Lu trasporto riceve da Lu retE
Inviare dati su un canale inafetable
Sapendo che si vole afraBta
@ L. Massari reti di calcolatori 24/25 Fonte: Kurose Ross

4
·
QUELLO Che USEREMO

Macchina a stati finiti (FSM)


·
formansmo per pesstere un sistema e i suol Stati

Stato iniziale
Evento che causa la transizione di stato SEE LOOP

Azione conseguente
&
stato stato
S 1 evento
2
azione
Nope

Lo stato successivo è
determinato dal
prossimo evento
·
una machina se per met e una per rice

@ L. Massari reti di calcolatori 24/25

rdt1.0: trasferimento affidabile su


canale affidabile
▪ Canale sottostante affidabile
▪ no errori sui bit
▪ no perdita di pacchetti
▪ FSM per sender e receiver: ~ Saranno

▪ sender invia dati al canale sottostante


▪ receiver legge dati dal canale sottostante

evento mente
da sopra riceeva lu rete

Wait for rdt_send(data) Wait for rdt_rcv(packet)


call from packet = make_pkt(data)2 call from
above CEO
below extract (packet,data)
udt_send(packet) PACK
deliver_data(data) Zapromrack
I
( S I
AZZOrE
passo vati Lu rete AZOME CONSENO

sender receiver
LV ADUCATI

@ L. Massari reti di calcolatori 24/25

6
rdt2.0: canale con errori sui bit
▪ Meccanismi:
▪ riconoscimento errori (checksum)
▪ feedback: messaggi di controllo dal receiver al
sender sono a loro vota segmenti

• acknowledgements (ACK): il receiver conferma la


ricezione corretta del segmento
• negative acknowledgements (NAK): il receiver conferma
-
la ricezione del segmento con errori
▪ Ritrasmissione del segmento al ricevimento di NAK
▪ Protocollo ARQ (Automatic Repeat reQuest) basati su
riscontri positivi (ACK), riscontri negativi (NAK) e
ritrasmissione.
pack aspetto
▪ Protocollo stop-and-wait ~
marto un
al continge

7

@ L. Massari reti di calcolatori 24/25

Stopo
S

rdt2.0: FSM
ricevo e invio checksur

con

OA SOPeA

rdt_send(data)
E meccanismo di controlle

snkpkt = make_pkt(data, checksum) Dak con intestate
A -

PASSO SOTO udt_send(sndpkt)

E rdt_rcv(rcvpkt) &&

contiene

Ricevo vasotto
Error
Wait for Wait for isNAK(rcvpkt) Attesa Un -

sender call from ACK or Conferr


udt_send(sndpkt) E Renvio rdt_rcv(rcvpkt) && corrupt(rcvpkt)
above NAK A I
RESAND
udt_send(NAK) Invio sotto Na -

E rdt_rcv(rcvpkt) && isACK(rcvpkt)


Inonnuzzo
S Wait for

receiver
& Er o A NULLA
call from
-

PACK
below
I
Attera or confere non contere erori
de sotto ,
EspostoStoe rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
extract(rcvpkt,data)
& Estra660
deliver_data(data)
udt_send(ACK) 2 passio sopra solo pat

2 Invo sotto Ack

@ L. Massari reti di calcolatori 24/25

8
rdt2.0: problema corompo anche la Al
- S R

Problema: ACK/NAK con errori


▪ Il sender non sa se il receiver ha inviato ACK o NAK
▪ Ritrasmette → possibili duplicati [ &
ack

Gestione dei duplicati (rdt2.1): supucato

▪ Il sender aggiunge un numero di sequenza ad ogni segmento N

▪ Il sender ritrasmette il segmento se ACK/NAK corrotti S R

▪ Il receiver scarta i pacchetti duplicati Po

L RCONGSIUTI GRAZE NUM SEQ


Etifete

↓ PACKETT/
che numera


Scen
Ack
D

@ L. Massari reti di calcolatori 24/25

rdt2.1: sender - gestione errori


ACK/NAK Invio DATO

SEQUENZA
rdt_send(data)
~
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
(corrupt(rcvpkt) || trasmeto a
Wait for Wait for isNAK(rcvpkt) )
call 0 from ACK or
NAK udt_send(sndpkt) CECESUM PER ACK
above
CORETO
rdt_rcv(rcvpkt)
rdt_rcv(rcvpkt) -
Riparto && notcorrupt(rcvpkt) &&
&& notcorrupt(rcvpkt)
isACK(rcvpkt) Advato coretto
&& isACK(rcvpkt)
 in 
Wait for Wait for
ACK or


call 1 from
rdt_rcv(rcvpkt) NAK above
corrotto && (corrupt(rcvpkt) ||
isNAK(rcvpkt) ) rdt_send(data)
& Litrasmet
udt_send(sndpkt) sndpkt = make_pkt(1, data, checksum)

Seguenza
udt_send(sndpkt)

@ L. Massari reti di calcolatori 24/25

10 Invo 20
rdt2.1: receiver - gestione errori
ACK/NAK
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq0(rcvpkt) ~ so chegeo ricevere d
extract(rcvpkt,data)
deliver_data(data) ~
Estraggo dasso sopra

sndpkt = make_pkt(ACK, chksum) nvo ack corrotto


udt_send(sndpkt) ~ ~
rdt_rcv(rcvpkt) && (corrupt(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt)
coroto sndpkt = make_pkt(NAK, chksum)
i
sndpkt = make_pkt(NAK, chksum)
2
NarS udt_send(sndpkt) udt_send(sndpkt) NAK

Wait for Wait for


rdt_rcv(rcvpkt) && 0 from 1 from rdt_rcv(rcvpkt) &&
not corrupt(rcvpkt) && below below not corrupt(rcvpkt) && ~ none corrotto ma e ancora
S
Giustoma pinvol has_seq1(rcvpkt) has_seq0(rcvpkt) PACKY (SEQ Of
& (SEQU) All Fer r y
sndpkt= make_pkt(ACK, chksum) sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt) udt_send(sndpkt) & ACK FermOrL Lup
LOOM rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt) ~ Asteto
Mi y

extract(rcvpkt,data)
sopra
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt) - ACK
@ L. Massari reti di calcolatori 24/25

11

rdt2.2: protocollo NAK-free -


SNEWAre

▪ Invece di NAK, il receiver invia ACK relativo -


se e e seaguad mando

all’ultimo segmento ricevuto correttamente ACE Or 1

▪ E’ necessario inserire nell’ACK il numero di


sequenza del segmento confermato
▪ La ricezione dell’ACK duplicato provoca
&
ritrasmissione del segmento n forma all 1 centro

▪ TCP usa un approccio NAK-free


· azoni uguar cambiano i contratt

@ L. Massari reti di calcolatori 24/25

12
rdt2.1

rdt2.2: sender

vo
rdt_send(data)
sndpkt = make_pkt(0, data, checksum) ALE PREL

udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
Wait for Wait for isACK(rcvpkt,1) )
A CK CORENTE rdt_rcv(rcvpkt) call 0 from ACK0
&& notcorrupt(rcvpkt) above udt_send(sndpkt) ~ renvio
Avant && isACK(rcvpkt,1)
 rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
Wait for Wait for && isACK(rcvpkt,0) ~
rdt_rcv(rcvpkt) && Alk CoreTE
ACK1 call 1 from
( corrupt(rcvpkt) || 
above
S isACK(rcvpkt,0) )
rdt_send(data)
udt_send(sndpkt)
ALF PRE sndpkt = make_pkt(1, data, checksum)
RENVro udt_send(sndpkt)
I
13
↓ Nu co

rdt2.1
rdt2.2: receiver

my O
acero
~

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)


&& has_seq0(rcvpkt)
extract(rcvpkt,data) Crepack
deliver_data(data) N ricelo us d
sndpkt = make_pkt(ACK0, chksum) ~ Di Nuovo

rdt_rcv(rcvpkt) && udt_send(sndpkt)


RICEVO MS1 rdt_rcv(rcvpkt) &&
DiNu00
& (corrupt(rcvpkt) || (corrupt(rcvpkt) ||
has_seq1(rcvpkt)) Wait for Wait for
0 from 1 from has_seq0(rcvpkt))
udt_send(sndpkt) below below
S udt_send(sndpkt)
& ack o
ACk Y rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
-ricevo u
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK1, chksum)
udt_send(sndpkt)
14
kaku
rdt3.0: canale con errori e perdita di
pacchetti
▪ Il canale sottostante può anche perdere pacchetti. È
necessario meccanismo per rilevare la perdita di
pacchetti (dati o ACK)
▪ Se il sender non riceve alcuna notifica dal receiver
entro un tempo scelto opportunamente, il
segmento (o l’ACK) è andato perso e il sender
ritrasmette
▪ Come scegliere tale tempo?
▪ Il segmento potrebbe arrivare con forte ritardo:
problema dei duplicati, risolvibile con numeri di
sequenza

@ L. Massari reti di calcolatori 24/25

15

Ritrasmissione basata sul tempo

▪ Meccanismo di conto alla rovescia.


▪ Il sender deve:
▪ avviare il timer dopo la trasmissione di un segmento
(nuovo o ritrasmesso)
▪ interrompere il timer al ricevimento di un ACK
▪ rispondere alle interruzioni del timer
S &

Walt aspettare
· troppo ion Lu Stop
V
ACKN and mart
perditadio
*

@ L. Massari reti di calcolatori 24/25

16
rdt3.0 sender

rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
start_timer

Wait for Wait


call 0 from for
above ACK0
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
Wait Wait for
for call 1 from
ACK1 above

rdt_send(data)
sndpkt = make_pkt(1, data, checksum)
udt_send(sndpkt)
start_timer

17

rdt3.0 sender

rdt_send(data)
rdt_rcv(rcvpkt) &&
sndpkt = make_pkt(0, data, checksum) ( corrupt(rcvpkt) ||
udt_send(sndpkt) isACK(rcvpkt,1) )
rdt_rcv(rcvpkt) start_timer 
 Wait for Wait
for timeout
call 0 from
ACK0 udt_send(sndpkt)
above
start_timer
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
Wait Wait for
timeout for call 1 from
udt_send(sndpkt) ACK1 above
start_timer rdt_rcv(rcvpkt)
rdt_send(data) 
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) || sndpkt = make_pkt(1, data, checksum)
isACK(rcvpkt,0) ) udt_send(sndpkt)
start_timer

18
rdt3.0: receiver

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)


&& has_seq0(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK0, chksum)
rdt_rcv(rcvpkt) && udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
(corrupt(rcvpkt) || (corrupt(rcvpkt) ||
has_seq1(rcvpkt)) Wait for Wait for
0 from 1 from has_seq0(rcvpkt))
udt_send(sndpkt) below below
udt_send(sndpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK1, chksum)
udt_send(sndpkt)

@ L. Massari reti di calcolatori 24/25

19
Prestazioni stop-and-wait
sender receiver
first packet bit transmitted, t = 0
last packet bit transmitted, t = L / R

first packet bit arrives


RTT last packet bit arrives, send ACK

ACK arrives, send next


packet, t = RTT

Utilizzo (percentuale di tempo in cui il sender è in trasmissione) = ?


Throughput (dati applicativi nell’unità di tempo) = ?

@ L. Massari reti di calcolatori 24/25

22

Prestazioni
▪ Protocolli stop-and-wait poco efficienti
▪ Soluzione: il sender può inviare più pacchetti senza
dover aspettare i riscontri (pipelining)
▪ Occorre:
▪ aumentare l’intervallo dei numeri di sequenza
▪ dotare sender e receiver di buffer per memorizzare i
pacchetti non riscontrati
2 memonzzo wo che hocerto

Aspetto
i Buch

@ L. Massari reti di calcolatori 24/25

23
Pipelining: aumento dell’utilizzo e del throughput
sender receiver
first packet bit transmitted, t = 0 finestra or trasmusivre
last bit transmitted, t = L / R ↑
-

first packet bit arrives


RTT last packet bit arrives, send ACK
last bit of 2nd packet arrives, send ACK
last bit of 3rd packet arrives, send ACK
ACK arrives, send next errestr
mempe la
packet, t = RTT In
N =4

Ack

circ
Trouput svote tane
rit uguale a prima
·

Scons Windows

@ L. Massari reti di calcolatori 24/25

24

Protocolli pipelined (sliding-window)


▪ Due alternative: Go-Back-N (GBN) e Selective Repeat (SR)
▪ Il sender può avere non più di N pacchetti non confermati

Go-back-N: Selective Repeat: ~ Offer


▪ Il receiver conferma un ▪ Il receiver invia ACK

S
segmento solo se in individuali per ogni
ordine (ACK cumulativo) segmento
▪ Il sender ha un timer per il ▪ Il sender ha un timer ~Timer seatio
segmento più vecchio per ogni segmento non Segmento
Al

▪ quando il timer scade, riscontrato


ritrasmette tutti i pacchetti ▪ quando il timer scade,
non confermati ritrasmette solo il
segmento relativo
melier non ha Buffer

@ L. Massari reti di calcolatori 24/25

25
Sender Go-Back-N recto o
~
▪ Campo di k bit nell’intestazione, per sequenza
▪ E’ ammessa una finestra di massimo N segmenti
consecutivi trasmessi e non riscontrati - Finestra di
trasmissione
sequenta piu inviata non ancora ros ontrata
~
picole
send_base nextseqnum
riscontrato

inviato, non
riscontrato

Dimensione della finestra disponibile,


N non inviato

send_base = Numero di sequenza del segmento più


non pronto
vecchio non riscontrato

nextseqnum = Numero di sequenza del prossimo


segmento da trasmettere

@ L. Massari reti di calcolatori 24/25

26

GBN – azioni sender (1/2)

▪ Se la finestra non è piena (nextseqnum <


send_base+N)
▪ accetta i dati da livello superiore
▪ crea ed invia il segmento
▪ se non ci sono pacchetti non riscontrati (send_base =
nextseqnum) avvia timer
▪ incrementa nextseqnum
▪ Se la finestra è piena, i dati vengono memorizzati in
un buffer o rifiutati

@ L. Massari reti di calcolatori 24/25

27
GBN – azioni sender (2/2)

▪ Ricezione di ACKn conferma tutti i pacchetti


precedenti l’n-esimo (ACK cumulativo)
▪ send_base=ACKn+1 (protocollo sliding window)
▪ se non ci sono pacchetti non riscontrati (send_base =
nextseqnum) ferma il timer
▪ se ci sono pacchetti non riscontrati avvia il timer sul
segmento più vecchio non riscontrato
▪ Evento timeout: ritrasmissione di tutti i pacchetti
non riscontrati (Go-Back) e riavvio timer
▪ Ricezione segmento non corretto: niente

@ L. Massari reti di calcolatori 24/25

28

Receiver GBN
default
udt_send(sndpkt)
rdt_rcv(rcvpkt)
&& notcurrupt(rcvpkt)
 && hasseqnum(rcvpkt,expectedseqnum)
expectedseqnum=1 Wait extract(rcvpkt,data)
sndpkt = deliver_data(data)
make_pkt(expectedseqnum,ACK,chksum) sndpkt = make_pkt(expectedseqnum,ACK,chksum)
udt_send(sndpkt)
expectedseqnum++

✓ Se il segmento n è ricevuto correttamente ed in ordine


(dopo il segmento n-1)
✓ consegna dati al livello superiore
✓ invia ACKn
✓ attesa segmento n+1 (expectedseqnum)
✓ Se il segmento non è corretto o è fuori sequenza
✓ scarta il segmento (no buffer per il receiver)
✓ invia nuovamente ACKn-1 (riconferma l’ultimo segmento
ricevuto correttamente ed in sequenza)
@ L. Massari reti di calcolatori 24/25

29
GBN: sender DASOPRA
-
rdt_send(data) fretra son piena
~
if (nextseqnum < base+N) {
sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum)
udt_send(sndpkt[nextseqnum])
if (base == nextseqnum)
start_timer 2 se
finestra vuota
nextseqnum++
}
 else
refuse_data(data)
base=1
nextseqnum=1
timeout
start_timer
Wait
udt_send(sndpkt[base])
rdt_rcv(rcvpkt) udt_send(sndpkt[base+1])
&& corrupt(rcvpkt) …
udt_send(sndpkt[nextseqnum-1])

rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
base = getacknum(rcvpkt)+1
If (base == nextseqnum)
stop_timer
else
start_timer
@ L. Massari reti di calcolatori 24/25

30

Selective Repeat
▪ Il sender ritrasmette solo i pacchetti persi o
non corretti
▪ Il receiver conferma i singoli pacchetti ricevuti
correttamente, anche se non in ordine →
necessario buffer
▪ Ad ogni segmento è associato logicamente un
timer ~ singro segmentiner

▪ La finestra del sender può contenere anche


pacchetti già riscontrati (VErd)
▪ Le finestre di sender e receiver possono non
coincidere

@ L. Massari reti di calcolatori 24/25

31
SR – finestre sender e receiver

S
Graducent
NON ARMETE

Le CONENE

@ L. Massari reti di calcolatori 24/25

32

Selective Repeat – azioni sender

▪ Se il successivo numero di sequenza disponibile è


nella finestra, invia il segmento e fa partire timer,
altrimenti memorizza i dati o li restituisce a livello
applicazione
▪ L’evento di timeout provoca la ritrasmissione solo
del segmento relativo. Viene riavviato il timer
▪ Ricezione di ACKn, conferma solo il segmento n. Se
n = send_base, la finestra scorre in avanti (sliding
window) fino al primo segmento inviato e non
riscontrato (SEGUENTE GALLO)

@ L. Massari reti di calcolatori 24/25

33
Selective Repeat – azioni receiver
▪ Se riceve correttamente un segmento con numero
di sequenza compreso nella finestra:
▪ invia ACK
▪ il segmento viene memorizzato (se non era già stato
ricevuto)
▪ se il numero di sequenza è la base della finestra, viene
passato al livello applicazione insieme a tutti gli
eventuali pacchetti successivi consecutivi già
confermati
▪ La finestra scorre in avanti (sliding window) del
corrispondente numero di sequenza
▪ Riconferma pacchetti fuori dalla finestra
▪ Altrimenti ignora
@ L. Massari reti di calcolatori 24/25

34

Selective Repeat – dimensione finestra

▪ N=3
▪ numeri di sequenza:
0,1,2,3 troppo presto
Inso
~ SEQUENZE
▪ Il receiver non vede
differenza tra i due
pacchetti con sequenza 0
▪ Deve essere
N ≤ ½ (spazio numeri sequenza)

@ L. Massari reti di calcolatori 24/25

35
68N w = 3

1024
S R
SPAZO SEQUENZA 1
Akk
-

k Kin/ Ke 2
ASPECTET SEQ Num =K

t R ATTENUE A ACk-
T
k-
3 k 2
-
k-
1
S A

Finestra Die . 3 BASE [K-3 , k]

i
in Se

I
I
↓ spazzo numer di Sequenta

N Dimensione finestra
&
N

·
M

RANO SEQUENZE REGGIORE (MAN-1) -


(M -N) + 1 = en

#BN

ESERCIO ESAME

↓ propr =
6 prop R, S = 1 ms

↓ Trasm
(R = 1000 .
8
= 0. 8 MS
10 .
706

↓ TrasmRS = 0
,
08 ms

Andata ritorn
↑ r FORNO

m
R MTT = 0
. 8 + 1 + 0
.
08 + 4 + 1 + 1 = 4. 8815

2
X S
renestra
11 ↓ trasm 16
= 16 ·
0. 8 > Rom non rith

176
i ju
11 I

*
ack capire che back sto mandato al terrot
==
"
"
Dati inviat

16 ThroUspUT =
TEMPO TOT
(

17
confermaseeizare
STALLO
14 88
ACK 16 ,
S
16 88
,
&

3 a)
.
The Panta
1

I latenta =
es atrasm . 08 + 4
+ 0
3 X
3 . 61) 16 ,
88
ACKY

3 . 6 . 2) S ACAY

io
i
Livello trasporto

▪ Servizi ▪ Trasporto orientato alla


▪ Multiplexing e connessione: TCP
demultiplexing ▪ Struttura del segmento
▪ Gestione della apr cro
▪ Trasporto senza connessione
~

connessione: UDP ▪ Trasferimento dati ~ affragilia


▪ Principi di affidabile
trasferimento affidabile ▪ Controllo del flusso ~ conferiore
▪ Controllo della
congestione

@ L. Massari reti di calcolatori 24/25

TCP (1/2)
standard

▪ Definito negli RFC 793, 1122, 7323, …
▪ Point-to-point: connessione tra un sender ed un receiver
▪ Full-duplex: flusso di dati bidirezionale nella stessa
connessione
▪ Connection-oriented: handshake a tre vie prima dell’invio
dei dati e chiusura della connessione
▪ Pipelined: controllo del flusso e della congestione
regolano la finestra di trasmissione

Trasferimento affidabile
@ L. Massari reti di calcolatori 24/25

2
TCP (2/2)

▪ Basato su una versione del protocollo sliding


window con dimensione variabile della finestra di
trasmissione
▪ La PDU prende il nome di segmento
▪ La quantità massima di dati del segmento (MSS,
Maximum Segment Size) è negoziata quando si
attiva la connessione
MESSAGGIO AppUCATIO

11

Hoo
DataGrana Ar
@ L. Massari reti di calcolatori 24/25

TCP: buffer di ricezione/trasmissione

▪ I dati vengono accumulati in buffer sia in trasmissione sia in


ricezione:
▪ I dati vengono passati attraverso il socket ad un buffer di
trasmissione, da cui vengono prelevati per creare un segmento
▪ I dati ricevuti vengono memorizzati in un buffer di ricezione

application application
writes data reads data
socket socket
door door
TCP TCP
send buffer receive buffer
segment

@ L. Massari
reti di calcolatori 24/25

4
e
3
O 5 MAYE Secrente
s

n = 4460 by Th
It = 40 byTE
TCP
▪ In trasmissione il protocollo deve: Dati Cos da sora

▪ Accettare un flusso dati da livello applicazione


▪ Spezzare il flusso dati in segmenti; ogni segmento è vivrou o

incapsulato in un pacchetto a livello rete


L SEGAMENTO

▪ Trasmettere i segmenti tramite un sottostante livello rete


inaffidabile sott
-

▪ Gestire gli errori di trasmissione con la ritrasmissione dei


segmenti
▪ In ricezione il protocollo deve:
Sotto
▪ Ricevere i segmenti dal livello rete
▪ Segnalare i segmenti danneggiati
▪ Riordinare i segmenti ricevuti Ricostruiso tutto -
sopra
▪ Consegnare a livello applicativo i dati
~

@ L. Massari reti di calcolatori 24/25

Segmento TCP
n. di porta sorgente e destinazione

campo riscontro n. di sequenza


valido e ACK

lunghezza
intestazione in
parole di 32 bit
n. di bytes
che il receiver
può accettare

RST, SYN, FIN:


gestione connessione campi opzioni
(max 40 byte) Checksum
@ L. Massari reti di calcolatori 24/25 (come UDP)

6
Opzioni

▪ Definite durante l’apertura della connessione, o


durante la connessione
▪ Negoziazione MSS (default 536 byte, max 65,535 byte)
▪ Negoziazione Window scale, fattore di scala della finestra di
ricezione, che può aumentare fino a 232 bytes (per long fat
networks) L ENOPM /
QUANTHA PER LUNGE
▪ Timestamp, usato per: TEMPO -

Gr
PERIORENZE

• il calcolo di RTT
• evitare riuso delle sequenze (PAWS)

@ L. Massari reti di calcolatori 24/25

Opzione timestamp (RFC 7323)

▪ Calcolo RTT Elk ha copra

▪ il sender inserisce il timestamp tra le opzioni ~ S

▪ il receiver copia questo valore nelle opzioni del riscontro 10

▪ Ricevuto il riscontro, il sender calcola RTT come


differenza tra timestamp attuale e valore contenuto
A
nelle opzioni del riscontro 40

▪ PAWS – Protection Against Wrapped Sequence


numbers: un segmento è identificato dalla 40 .
40 = 3

combinazione timestamp-sequenza

@ L. Massari reti di calcolatori 24/25

8
TCP – numeri di sequenza e ACK
outgoing segment from sender
▪ Dati: sequenza ordinata di source port # dest port #
byte sequence number
acknowledgement number
▪ Sequenza: posizione del primo rwnd
checksum urg pointer
byte dati del segmento,
window size
rispetto alla sequenza iniziale N

▪ ACK: prossimo byte atteso


▪ Riscontro cumulativo: la sender sequence number space
perdita di un ACK non blocca
sent sent, not- usable not
la trasmissione se confermato ACKed yet ACKed but not usable
(“in- yet sent
da un ACK successivo flight”)
incoming segment to sender
source port # dest port #
sequence number
acknowledgement number
A rwnd
checksum urg pointer
@ L. Massari reti di calcolatori 24/25

5 00 EXTE
P &

↑ T
1234 1734

↑24
-
-
-

St
-
-

1251) 1847)

500 ByTE
-
ESEMPIO
S & SEG38 mas 50 exte
,

Ack
SEQTO
= 38
ACK = 740

L SEQ = 38
MSS = 400 EVE
A(k =
08
SEQ410
- 210
E ACK
· =

SEQ =
88

11 1 I SEQ =
240

~
↑ ACk = 370
SEQ = Y 6 SEQ
SEQ
=
738
=
470
>

&

C S

&SEGISC
SES
SY
Ack
↓ Syra
ACKEStY

~
TCP – trasferimento affidabile

▪ Pipelining dei segmenti


▪ ACK cumulativi
▪ Timer unico per la ritrasmissione (RFC 6298)
▪ Il receiver invia un ACK, che può essere a piggyback
di un segmento contenente anche dati
▪ Ritrasmissione in seguito a eventi:
▪ timeout
▪ ACK duplicati

@ L. Massari reti di calcolatori 24/25

18

Protocolli bidirezionali: piggybacking


▪ I pacchetti dati vengono trasmessi in entrambe le
direzioni, dal client al server e dal server al client
▪ Anche i riscontri vengono trasmessi in entrambe le
direzioni
▪ Per migliorare l’efficienza del protocollo viene
utilizzata una tecnica detta piggy-backing:
▪ un segmento che trasporta dati può trasportare anche
il riscontro relativo ai segmenti ricevuti
▪ Il client e il server usano entrambi due finestre
indipendenti di invio e di ricezione

@ L. Massari reti di calcolatori 24/25

19
Receiver TCP (RFC 1122, RFC 5681)
generazione di ACK
conferme
↑ Dati e

▪ In piggybacking, incluso in segmento contenente dati Tr


▪ ACK posticipati/delayed ACK: ricezione segmento in ordine, %350015
tutti i segmenti già riscontrati e nessun dato da inviare: attesa -
massima di 500 ms di un altro segmento in ordine prima di En concetto

inviare riscontro
▪ Ricezione segmento in ordine, con numero di sequenza
atteso e un segmento precedente non riscontrato: invio ACK
cumulativo
▪ Ricezione segmento fuori ordine: invio ACK con sequenza
attesa (per fast retransmit). Il segmento non viene scartato #
▪ Ricezione segmento mancante, alla base della finestra: invio
immediato di ACK cumulativo
10
▪ Ricezione segmento duplicato: segmento scartato e invio ACK

. io
con sequenza attesa
@ L. Massari reti di calcolatori 24/25
son

20 -2000

///
100 1000 2100

Delayed ACK (RFC 1122)

@ L. Massari reti di calcolatori 24/25

21
Sender TCP semplificato
▪ No ACK duplicati, no controllo flusso, no controllo
congestione
▪ Eventi:
▪ dati passati dal livello applicativo: TCP crea segmento, lo
passa a livello IP. Se non attivo, il timer viene avviato
▪ timeout: il TCP ritrasmette il segmento che ha causato
l’evento di timeout e riavvia il timer di ritrasmissione
▪ arrivo di un riscontro: un riscontro conferma tutti i byte
precedenti il byte di riscontro. Se ci sono segmenti non
riscontrati, riavvia il timer di ritrasmissione

@ L. Massari reti di calcolatori 24/25

22

Sender TCP (semplificato)


data received from application above
create segment, seq. #: NextSeqNum
pass segment to IP (udt_send)
NextSeqNum = NextSeqNum + length(data)
if (timer currently not running)
 start timer
NextSeqNum = InitialSeqNum wait
SendBase = InitialSeqNum for
event timeout
retransmit not-yet-acked segment
with smallest seq. #
start timer
ACK received, with ACK field value y
if (y > SendBase) {
SendBase = y
/* SendBase–1: last cumulatively ACKed byte */
if (there are currently not-yet-acked segments)
start timer
else stop timer
}
@ L. Massari reti di calcolatori 24/25

23
Sender TCP – Fast retransmit
▪ La perdita di segmenti viene dedotta da ACK
duplicati:
▪ Il sender spesso invia tanti segmenti
▪ Se un segmento è perso, ci saranno molti ACK duplicati
▪ Al terzo ACK duplicato per lo stesso segmento, il
sender deduce che il segmento successivo è andato
perso
▪ ritrasmissione veloce (fast retransmit): ritrasmissione
del segmento prima del timeout

@ L. Massari reti di calcolatori 24/25

24
S L S

I
C MSS = 1000 GYTE
Star Timer
&
Startmen

NEXT STEP = 1907


Se I
* WAIT 500 MS
10001
AL

ACKO
&
1000 ///
500m SEQ= You 1001
X

TIME Out

5. X

o
TR
ACk = 5004

SEQ =
1407 Ec
78007
,
0
~ ACE ACCUMUO
7000 >
-

= 5004 ,

SEQ ↑
500ms 1000 start Timer

zoor
2004
2004 ,
-

5
=
SEG
* Ack = 2007
Start Timer
X

1000 15001
, ⑨
tool
Sea
"
=

* ACK = 75007

zoonsa
100 ⑨
8004 ,
45004
SER
=
& ACK =

15007 ⑧
* ↓ * ACK =15001
EXPECTED SEG = 9007
ACK: 9007
& Start Tirem
FFF 15007
SEQ =

XS FX
S

ACK120001
-

10001 I 0001

#
Sea =

Ack=
9001 I ↓

or 1000
STARTIER

# SEQ = 9007
SEQ 41001

Ack =
& 11007 ⑨
,

ACK72004 non e
RTT e timer di ritrasmissione

▪ RTO (Retransmission Time-Out) deve essere > RTT,


altrimenti ritrasmissioni non necessarie
▪ I segmenti subiscono ritardi variabili, quindi RTT
non è un valore fisso ma varia nel tempo
▪ Se il timer è troppo piccolo esiste rischio di timeout
prematuri, con ritrasmissioni inutili.
▪ Se il timer è troppo grande, c’è scarsa efficienza nella
gestione delle ritrasmissioni.
▪ Algoritmo (Jacobson ‘88) che regola il timer in base alla
misurazione della rete (RFC6298)

@ L. Massari reti di calcolatori 24/25

25

Stima di RTT (1/2)


▪ Media esponenziale pesata (EWMA) dei valori
campioni: l’influenza dei campioni vecchi decresce
esponenzialmente
▪ SampleRTT = RTT campione = tempo tra la
trasmissione del segmento e il ricevimento del
riscontro relativo
▪ TCP esegue una sola misurazione di RTT alla volta: un
riscontro può essere cumulativo

@ L. Massari reti di calcolatori 24/25

26
Stima di RTT (2/2)
▪ Dopo la prima misurazione (al ricevimento del primo
ACK):
▪ EstimatedRTT = SampleRTT
▪ DevRTT = SampleRTT/2
▪ SampleRTT varia nel tempo:
EstimatedRTT = (1- α) * EstimatedRTT + α SampleRTT, 0<α≤1
▪ Parametro legato alla varianza di RTT
DEVazE ▪ DevRTT=(1-β)*DevRTT+β*|SampleRTT–EstimatedRTT| 0<β ≤1
▪ Valori tipici di α e β sono 0.125 e 0.25

@ L. Massari reti di calcolatori 24/25

27

RTO - THE Out

▪ RTO = EstimatedRTT + 4 * DevRTT


▪ RTT dei segmenti ritrasmessi non influisce su stima
RTT
▪ Problema: se la rete è congestionata, RTO non
viene aggiornato, le ritrasmissioni aumentano
now

⑤ conte

▪ Soluzione: Algoritmo di Karn


▪ per ogni segmento da ritrasmettere in seguito a
timeout, RTO è impostato al doppio del valore
precedente (back-off esponenziale)
▪ al ricevimento di ACK su segmento senza timeout, RTO
viene impostato usando l’algoritmo di Jacobson, in Uguale a prma
base ai valori più recenti di EstimatedRTT e DevRTT

@ L. Massari reti di calcolatori 24/25

28
Prestazioni di TCP
▪ Ipotesi:
▪ rete non in congestione
▪ buffer di ricezione grande
▪ no ritrasmissioni
▪ oggetto formato da numero intero di segmenti di dimensione MSS
bit

▪ Notazioni:
▪ O bit dimensione dati
▪ H bit dimensione intestazione segmento
▪ R bps velocità di trasmissione del link
▪ W = numero di segmenti della finestra di trasmissione

@ L. Massari reti di calcolatori 24/25

29

Trasmissione limitata dalla finestra di


trasmissione
(MSS+H)/R
~~
STALLO
Trasmissione in stallo
2dprop +H/R

W*(MSS+H)/R Trasmissione continua

Condizione di continuità
W* (MSS+H) / R > (MSS+2H)/R + 2dprop

RTT
@ L. Massari
reti di calcolatori 24/25

30
Prestazioni limitate dalla finestra di
trasmissione
✓ Throughput =(W*MSS) / RTT
stallo
✓ Utilizzo=[W*(MSS+H) / R ] / RTT

✓ Throughput = R*MSS / (MSS + H )


cont.
✓ Utilizzo = 1

✓N.B. parliamo di throughput applicativo cioè dati applicativi


trasmessi nell’unità di tempo

@ L. Massari
reti di calcolatori 24/25

31
C S
O 100 KEYTE

MSS = 536 GUTE

n
I trascurar ↓
+Asm
= 536 ·

8s = 0 151
.

· 403
28

= 50 MS
prop
Rit = 150 as =
I dproptaTras
R =
28 kbps
R+ +
= 2 = w

I
Worm F di trasmisice trasmisice

A apre con /no acertando

A -

187797 k6XTE S

PD BAKING
A

#
Chrude ↑

Syn
SYr ACk # PACK = Apertura + Dati + ack + chiusura continua ? 18 :

0 , 26e)
att
M

/
ACK + Dati
R = 10mbps c
= + 11737 . 1024 + 3 = 7967
500

henzapp)
= emSEC 3684
prop

It 40 byte # segment= s

Mss = 500 bytE # ACK = # Segment ↓ Speop + Tirout


CUA
w = 12

# PACK =?
Chiusura
TOT BitE = 0 :H + 0 + 1 . H .
3687 + 3 .
H =

=
TOT GYTE Fin ↓
trasm
= 500: os = 0
, Wel

Fin ACk
Durata coressive TIME RT = 1 2 -
+ 0
. 137 +
. 028
0 = 4 464ms
,
T # Pack= In pro

Out mu u
ACK
1 - prop H/m
perurtato Pas SPA W ↑
... 15

(
Controllo del flusso e della congestione

@ L. Massari reti di calcolatori 24/25

32

Controllo del flusso e della congestione

▪ finestra di ricezione (controllo del flusso): dipende


dalla dimensione del buffer di ricezione
▪ finestra di congestione (controllo della
congestione): basata su una stima della capacità
della rete
▪ Il sender adatta la propria frequenza di
trasmissione in base alla dimensione della finestra
più piccola

@ L. Massari reti di calcolatori 24/25

33
Controllo del flusso

Please slow down!

Network

@ L. Massari reti di calcolatori 24/25

34

Controllo del flusso


# bytes che il receiver è in
grado di accettare
application
L’applicazione può process
receive window
prelevare dati dal application
buffer ….
TCP socket OS
receiver buffer
… più lentamente di
quanto il receiver
TCP stia ricevendo TCP
(il sender stia
inviando)
Controllo del flusso
IP
Il receiver controlla il sender, in
modo che non saturi il buffer del
receiver, trasmettendo troppo,
troppo velocemente from sender

receiver protocol stack


@ L. Massari reti di calcolatori 24/25

35
Controllo del flusso - receiver
al processo applicativo

Il receiver comunica lo
RcvBuffer buffered data
spazio libero inserendo
rwnd in ogni segmento
rwnd free buffer space inviato al sender

TCP segment payloads


Quantità di byte bufferizzati
▪ RcvBuffer: buffer di ricezione
▪ rwnd: finestra di ricezione (spazio libero nel buffer)
▪ LastByteRead: ultimo byte letto (prelevato dall’applicazione) dal buffer
▪ LastByteRcvd: ultimo byte ricevuto e collocato nel buffer
LastByteRcvd – LastByteRead ≤ RcvBuffer
rwnd = RcvBuffer – [LastByteRcvd – LastByteRead]
@ L. Massari reti di calcolatori 24/25

36

Controllo del flusso - sender


▪ Il sender limita la quantità di
▪ LastByteSent: ultimo byte
byte trasmessi e non riscontrati
inviato
a rwnd
▪ LastByteAcked: ultimo byte ▪ Se la finestra è 0 e il receiver
riscontrato non ha nulla da inviare, non può
informare il sender quando si
▪ rwnd: finestra di ricezione libera spazio nel buffer
▪ Al ricevimento di ACK con
LastByteSent-LastByteAcked= dati notifica di finestra pari a 0 viene
inviati e non riscontrati attivato un timer di persistenza
▪ Allo scadere del timer viene
LastByteSent-LastByteAcked ≤ inviato un segmento da 1 byte
rwnd (window probe), che viene
riscontrato e consente la
notifica di una nuova finestra

@ L. Massari reti di calcolatori 24/25

37
S R
MSS 1 Buffer 4k

& A11
FA
·

·
STOP RUND
= *
*
STALD & ***

&

SEQ ACk
DESA4

or

I I
Sin
A APRE >
ACK SYNA 500 -
SYN
B A 500 segment S
ACK 80
SYNACk 507
8 Chiude -
dopo Ino Ack
507 81
Acka
P 81504
Buffer Gakf
501 593
Ackpy
↓ = 115
prop
P 593 504
H= 60 EUTE M3s : 578

R =
466PS c) Durata comunicazione ↓ prop

SEQA 500 SEQy = 80 A

I
8 RTT = 1 .
10-3 + (57760 60 2005 056NsE
,

3
64k

188 SEGmEnt
5128yE
b) tot byte Trasfert Durata = 3
I prod 3h + 3 (187 ·
Grease ,
ste +ret) + 175 ·

dete steth + dpt Tho


,

/( Apertura
SVUOTAtAlk ACk
Apro N SEG 2H0e

Tot byte = 3 :
60 +
(5ft()5003 h
A E
04k SYN 64 A

2
SYNACK
g ACKt DATh
S

0 =
1.830E R =
100 * 106p SEQA , SEQ,
"
MSS 20 drasp = 100 + 10 se
=
14f = Byte
ultimo
patr
H = 58 Ette
Buff =
60 kbyte seguenti =s = 1
,
810 Fin
S

-
Fin Alk

Er ACK
4) SEGsyn =
SEQA (
SEQAintOatI =
SEGatY
(mss + H) * 8

d) Frets 86, 55 * 10-6


SEQO :
SEQA + 1 + MSS
,
1k =
R
=

SEGN =
SEQath + (N - 1 MSS)
SEQUEno = SEQat 1 + (Numss) Rit =
Grease , + E +
-prop : 86 .
57 + 4
,
64 x 10 + 2 :
200 + 10

SEQ + 1
SEGACK =
p

MTf
- = 3k 3kdswird
3) RWints Gak STRASM

R Wind = 64 k
Synack

R vind
acky
dati = G3k

Reino =
Gek
Livello trasporto

▪ Servizi ▪ Trasporto orientato alla


▪ Multiplexing e connessione: TCP
demultiplexing ▪ Struttura del segmento
▪ Gestione della
▪ Trasporto senza connessione
connessione: UDP ▪ Trasferimento dati
▪ Principi di affidabile
trasferimento affidabile ▪ Controllo del flusso
▪ Controllo della
congestione

@ L. Massari reti di calcolatori 24/25

Controllo del flusso e della congestione


· Strozzatura

@ L. Massari reti di calcolatori 24/25

2
Controllo del flusso e della congestione

▪ finestra di ricezione (controllo del flusso): dipende


dalla dimensione del buffer di ricezione
▪ finestra di congestione: basata su una stima della
capacità della rete
▪ Il sender adatta la propria frequenza di trasmissione
in base alla dimensione della finestra più piccola

@ L. Massari reti di calcolatori 24/25

Controllo della congestione


▪ Problema: troppe sorgenti inviano troppi dati troppo
velocemente perchè la rete riesca a gestirli
▪ Effetti: perdita di pacchetti (overflow nei buffer dei
router) e ritardi eccessivi (coda nei buffer dei router)
▪ Approccio end-to-end: nessuna segnalazione
esplicita da parte della rete (TCP)
▪ Approccio assistito dalla rete: i router inviano
feedback agli end system (SNA, DECbit, TCP/IP ECN,
ATM)

@ L. Massari reti di calcolatori 24/25

4
Natura della congestione
Router
▪ Le code aiutano ad assorbire i
picchi di traffico, quando la
frequenza di input supera la
frequenza di output
▪ Se frequenza input > frequenza output a Pacchetti
lungo, la coda si riempie in coda

pacchetti persi e congestione


• La congestione è anche funzione del pattern
di traffico. Può avvenire anche se i link hanno
la stessa capacità
@ L. Massari reti di calcolatori 24/25

Effetti della congestione


▪ Ritardi e perdite aumentano rapidamente con il
carico, il throughput diminuisce a causa delle perdite

@ L. Massari reti di calcolatori 24/25

6
Allocazione di banda
▪ È importante allocare la capacità della rete in modo:
▪ Efficiente: è usata la capacità massima, ma senza
congestione
▪ Equo: ogni sender condivide equamente la banda
▪ Soluzione:
▪ I sender adattano la frequenza trasmissiva in base alla loro
vista della rete
▪ Questa variazione è continua in quanto il carico cambia
▪ Questa variazione deve essere tale che l’utilizzo della rete
nel complesso sia efficiente ed equo

@ L. Massari reti di calcolatori 24/25

Controllo della congestione in TCP


▪ Approccio end-to-end: la frequenza di trasmissione
varia al variare della congestione percepita
▪ Come si rileva congestione?
▪ Come variare la frequenza di trasmissione e quale
algoritmo per variarla?
▪ La perdita di pacchetti (timeout e 3 ACK) è sintomo
di congestione.
▪ Il mittente varia la frequenza di trasmissione
seguendo un algoritmo di controllo della
congestione

@ L. Massari reti di calcolatori 24/25

8
Finestra di congestione
Spazio dei numeri di sequenza del sender
cwnd

▪ Throughput ≈ cwnd bytes/s


RTT
▪ La trasmissione può diventare
last byte last byte continua
ACKed sent, not- sent
yet ACKed

▪ Il sender limita la trasmissione:

LastByteSent- LastByteAcked ≤ cwnd

▪ La finestra di congestione cwnd è dinamica, funzione della


congestione percepita

@ L. Massari reti di calcolatori 24/25

Algoritmo di controllo della


congestione
▪ Obiettivo: trasmettere alla massima velocità
possibile senza perdere pacchetti
▪ Approccio: incrementare cwnd finché non si
verifica la perdita di un segmento. In seguito
decrementare cwnd e ricominciare daccapo
▪ Fasi: slow start (partenza lenta), AIMD (incremento
additivo, decremento moltiplicativo) e fast recovery

@ L. Massari reti di calcolatori 24/25

10
Slow Start
▪ All’inizio della connessione cwnd è pari a 1 MSS
▪ Per ogni segmento riscontrato prima di un evento
di perdita, cwnd è aumentato di 1 MSS

▪ Crescita esponenziale della dimensione della


finestra, fino a quando si verifica un evento di
perdita o si raggiunge una soglia (ssthresh)

@ L. Massari reti di calcolatori 24/25

11

AIMD

▪ Additive Increase: la frequenza trasmissiva si


avvicina lentamente al valore della banda
disponibile. La finestra di congestione aumenta
linearmente. Nota come fase di Congestion
Avoidance (CA)
▪ Multiplicative Decrease: dopo un evento di perdita,
la finestra di congestione viene dimezzata

@ L. Massari reti di calcolatori 24/25

12
Additive Increase Multiplicative
Decrease

la dimensione della finestra cresce linearmente …


…. fino ad un evento di perdita (quindi finestra a metà)
congestion window size
cwnd: TCP sender

time

@ L. Massari reti di calcolatori 24/25

13

In caso di eventi di perdita …


▪ Soglia = max {2,cwnd/2}
▪ Se timeout: cwnd pari a 1 MSS, quindi crescita
esponenziale (come in Slow start)
▪ Se triplice ACK:
▪ TCP Reno: cwnd pari alla soglia, quindi Fast
Recovery e Congestion Avoidance
▪ TCP Tahoe: cwnd pari a 1 MSS, quindi crescita
esponenziale (come in Slow start)

@ L. Massari reti di calcolatori 24/25

14
TCP Reno: fast recovery (RFC5681)
▪ La ricezione di triplice ACK duplicato viene
interpretata come sintomo di leggera congestione
▪ cwnd = soglia + 3
▪ Per ogni ACK duplicato cwnd=cwnd+MSS (crescita
esponenziale)
▪ La ricezione della conferma del pacchetto fa
passare in Congestion Avoidance
The reason for not performing slow start is that the receipt of the duplicate ACKs not
only indicates that a segment has been lost, but also that … since the receiver can
only generate a duplicate ACK when a segment has arrived, that segment has left
the network and is in the receiver's buffer, so we know it is no longer consuming
network resources.

@ L. Massari reti di calcolatori 24/25

15

Controllo congestione TCP


New
New ACK!
ACK!
duplicate ACK
dupACKcount++ new ACK
new ACK
.
cwnd = cwnd + MSS (MSS/cwnd)
dupACKcount = 0
cwnd = cwnd+MSS transmit new segment(s), as allowed
dupACKcount = 0
 transmit new segment(s), as allowed
cwnd = 1 MSS
ssthresh = 64 KB cwnd > ssthresh
dupACKcount = 0 slow  congestion
start timeout avoidance
ssthresh = cwnd/2
cwnd = 1 MSS duplicate ACK
timeout dupACKcount = 0 dupACKcount++
ssthresh = cwnd/2 retransmit missing segment
cwnd = 1 MSS
dupACKcount = 0
retransmit missing segment New
timeout ACK!
ssthresh = cwnd/2
cwnd = 1 New ACK
dupACKcount = 0
retransmit missing segment cwnd = ssthresh dupACKcount == 3
dupACKcount == 3 dupACKcount = 0
ssthresh= cwnd/2 ssthresh= cwnd/2
cwnd = ssthresh + 3 cwnd = ssthresh + 3
retransmit missing segment retransmit missing segment
fast
recovery
duplicate ACK
cwnd = cwnd + MSS
transmit new segment(s), as allowed

@ L. Massari reti di calcolatori 24/25

16
SOGUAINICIALE 16
SLOW START =

timo = Con gesion aladance

Cong Win
0. TIME
EVENTO OUT NEW sogra =
-
= 10

SS

back dop ( soguaconsine Contin = soguat3 = 5

CAPRE

C Invia richiesa dic0o gye

S risponde inviano tookbyte

C chiube dopo conferra

MSC : 1460 bitE

It :
80 GUTE

SOGNA 31 MSS

↓ prop
= 100 NSEC

SEQ = 150
,

Sers = 1010

100 * 1024
#seg =
1460
= 70
.
13 = +1
* DERT
acouno
a) inviat
-

Wise = curo = 1048 1037 33 34 35


. ...

STALLO
T

E

E)
(00tH) [5] *
SOGUA
↑ tot =
+ + scont er +

6) SEQ C
S
ACk
Sin

S
SYN ACK
S
+ ↓
prop
+
1 +
3 Pr

Sir 250 - ackt


pat
S
Pr

SNACk 1010 254 2 P7


ACkPy

=
2
APa s E
A(k 251 1044
Thym
=
511064
P1 1017 257 + 100 1 suns

857 + 200 107 7 + 1468


ACKpy

PX 1014+ 1468 254 + 200 Umin =an


ADER richiest OGGETTO INTES ACK

3
1) Tot Byte = h + Ch + 000byte) + 100 kgue + (**H ) + ( ** H) + Thrount mate
&
Ly0at th
LOASYN ACHIUSc costruita

C S
BANDA Una

5) 2 R,

stallo

&

100 meto Rete e

Rz = 0
. 4 Ry = 1 trasm 106

RTT
%
(1960 + 400
+ e 100 * 10
1842018360
1000 * 10)
R
RTT -16 -9 76 * 2
R
+
# SEG R
Strasm
= Trasmess in Bit
(1460 + 80) * 8

M
RTT R 920 8 * 106
a trasm .

= # SEG
= =

16 tras Rit
Livello rete LIVELLO 3

▪ Introduzione: piano dei ▪ IP: Internet Protocol


dati e piano di controllo ▪ IPv4: formato
▪ Piano dati datagramma,
▪ Principi e servizi frammentazione,
▪ Forwarding e routing indirizzamento
▪ Struttura di un router ▪ IPv6
▪ Indirizzamento, inoltro ▪ NAT
generalizzato e SDN
▪ Piano controllo:
↑ Seguento Trasporto algoritmi di routing,
DataGrama
RETE SDN, ICMP
ERtnE

@ L. Massari reti di calcolatori 24/25

Livello rete
application
▪ Trasporta i segmenti da nodo transport
network
sorgente a nodo destinazione data link
physical
▪ Nodo sorgente incapsula i network
data link
network
data link
network
segmenti in datagrammi data link
physical physical
physical network network
▪ Nodo destinazione consegna i data link data link
physical
physical
segmenti al livello trasporto
network network
▪ I protocolli di livello rete sono data link
physical
data link
physical
network
presenti in ogni nodo (end- data link
physical
system, router) application
transport
network
data link network
▪ Il router esamina i campi network physical
network
data link
data link
physical
data link physical
dell’header nei pacchetti che lo physical

attraversano e sposta i
datagrammi dalle porte di input a
quelle di output
@ L. Massari reti di calcolatori 24/25

2
Livello rete - funzionalità

▪ inoltro/commutazione (forwarding/switching):
spostare il pacchetto da un link in ingresso al
router verso un link in uscita. Azione locale al
router
▪ instradamento (routing): determinare il percorso
che i pacchetti devono seguire da sorgente a
destinazione. Processo globale che coinvolge
tutti i router

@ L. Massari reti di calcolatori 24/25

Data plane/Control plane


Data plane Control plane
▪ Logica locale, determina ▪ Logica globale di rete, determina
come un datagramma deve essere
come un datagramma in commutato tra i router lungo il
arrivo alla porta di input percorso end-to-end da sorgente a
S del router viene inoltrato
alla porta di output.
destinazione
▪ Approcci:
~el mu00 migrore

COME ▪ Algoritmi di routing tradizionali


inoltrar p implementati nei router
0111 1
▪ Software-defined networking
2
3 (SDN) implementato in server
(remoti)

@ L. Massari reti di calcolatori 24/25

4
Piano di controllo: approccio tradizionale
Gli algoritmi di routing distribuiti in ogni router interagiscono
nel piano di controllo

Routing
Algorithm
control
plane

data
plane

0111 1
2
3

@ L. Massari

Piano di controllo: approccio SDN


Un controller remoto interagisce con agenti di controllo locali

Remote Controller

control
plane

data
plane

CA
CA CA CA CA

0111 1
2
3
@ L. Massari reti di calcolatori 24/25

6
Modelli di servizio

Quality of Service (QoS)


Network Service
Architecture Model Bandwidth Loss Order Timing

Internet best effort none no no no

ATM Constant Bit Rate Constant rate yes yes yes


Internet: modello “best effort”
ATM Available Bit Rate
Nessuna garanzia di: Guaranteed min no yes no

Internet i. Consegna
Intserv Guaranteedcorretta
yes yes yes yes
(RFC 1633
ii. Tempi) e ordine di consegna
Internet Diffserv
iii. Banda ) possible
disponibile
(RFC 2475 possibly possibly no

@ L. Massari reti di calcolatori 24/25

Modelli di servizio

Quality of Service (QoS)


Network Service
Architecture Model Bandwidth Loss Order Timing

Internet best effort none no no no

ATM Constant Bit Rate Constant rate yes yes yes

ATM Available Bit Rate Guaranteed min no yes no

Internet Intserv Guaranteed yes yes yes yes


(RFC 1633)

Internet Diffserv (RFC 2475) possible possibly possibly no

@ L. Massari reti di calcolatori 24/25

8
Livello rete Internet

Livello di trasporto: TCP, UDP

protocolli di instradamento protocollo IP


•scelta del percorso •convenzioni indirizzamento
•RIP, OSPF, BGP •formato datagramma
livello •gestione pacchetti
rete tabella di
protocollo ICMP
inoltro
•notifica errori
•segnalazioni del router
ARP, DHCP
Livello di collegamento
Livello fisico

@ L. Massari reti di calcolatori 24/25

25

Intestazione datagramma IPv4


versione IP lungh. servizi lungh. totale
intestazione differenziati

frammentazione
n. salti
Gir) in
C
rimanenti
protocollo
ETERNO

livello sup.
I
TCP/OR
Chi sta sopra

indirizzi sorgente controllo


e destinazione errore
@ L. Massari reti di calcolatori 24/25

26
Frammentazione
▪ Il livello collegamento impone una quantità massima
di dati (MTU) che un frame può trasportare (per
Ethernet 1500, per IEEE 802.11 2272)
▪ Se un datagramma IP ha dimensione superiore
all’MTU del link su cui deve transitare, deve essere
frammentato in datagrammi più piccoli (frammenti)
▪ Il datagramma deve essere riassemblato prima di
essere passato al livello di trasporto del nodo
destinazione
SEQUENZA

DATAGRAMN A

FlaME He
maximon transit Unit
miU =

@ L. Massari reti di calcolatori 24/25

27 Dipende Dall Rete - Internet 400 byte


I
ma se framento-divido
essthethrymiu . in diu pack rete
&
Evito-tecniche
per dimensionare max

Esempi di MTU

@ L. Massari reti di calcolatori 24/25

28
Frammentazione (1/2)

▪ Nell’intestazione del datagramma vengono posti:


▪ identificatore univoco, incrementato per ogni nuovo
datagramma
▪ campo MF = 0 Zero se non li bone
-

▪ campo offset = 0

@ L. Massari reti di calcolatori 24/25

29

Frammentazione (2/2)
▪ In caso di frammentazione, in ogni frammento:
▪ l’identificatore è quello del datagramma originario
▪ lunghezza parte dati = max multiplo di 8 tale che
sommato all’intestazione sia <= MTU (tranne l’ultimo
frammento)
▪ il campo offset indica (in multipli di 8 byte) la posizione
del primo byte dei dati del frammento rispetto al
datagramma originario
▪ il campo MF è 1 (tranne l’ultimo)
▪ l’ultimo frammento ha campo MF pari al campo MF del
datagramma originario

@ L. Massari reti di calcolatori 24/25

30
Riassemblaggio
▪ Quando un frammento giunge a destinazione:
▪ Il destinatario aspetta tutti gli altri frammenti (hanno
tutti lo stesso identificatore) fino allo scadere di un
timer opportuno
▪ Se un frammento viene perso (non c’è garanzia di
consegna) il datagramma originario viene scartato
▪ Il destinatario sa quando ha ricevuto tutti i
frammenti perché ogni frammento ha offset e
lunghezza:
▪ esiste un frammento con offset = 0 (primo)
▪ esiste un frammento con MF =0 (ultimo)
▪ per ogni valore X=offset+<dimensione parte dati>/8 di
qualche frammento con MF = 1, esiste frammento con
offset=X
@ L. Massari reti di calcolatori 24/25

31

PATH MTU discovery


▪ La frammentazione introduce overhead.
▪ Tecnica per conoscere il valore di MTU più piccolo
lungo il cammino da sorgente a destinazione

@ L. Massari reti di calcolatori 24/25

32
MTU = 500 GYTE
427 MSS

Ho = 18 Eute

It =
gobte
ip

I = 40 bit

10 MF OfSET TO LENGHT

170 O 60 426 400


ULino - 880
DATA
TOT
Princ 170 500 -
1
O 480
DATA

D T

①480480

tot
Ultimo 200 O 532 -
7547

1200 I 534 354


-

-
3200 180 521 -
/547

4 38 rumo

b) int184
4
.
g 64 120

MTO
= 26 bitE

ME off TL

10 I DATAGRAM
MF Offset Th PATH 297
2411 G

1 O - Im +
c
110 500488

1100
-
60 200
noo miu-hip = 86 bite

be

Lac8 o 94 198
Indirizzamento IPv4
▪ Indirizzo IP: identificatore di 32 bit, associato ad
un’interfaccia di rete (confine tra nodo e collegamento
fisico) di end-system o router
▪ Notazione decimale puntata: ogni byte è scritto in
forma decimale (tra 0 e 255) e separato con un punto
dagli altri byte

11000001 11001100 00100011 00000000

193 . 204 . 35 . 0

@ L. Massari reti di calcolatori 24/25

33

Gerarchia di indirizzamento

Forouzan, Mosharraf, Reti di Calcolatori, 2013

@ L. Massari reti di calcolatori 24/25

34
Codice di avviamento postale
PROVINCIA
(CS)

87100 REGIONE
(CALABRIA)

88046
PROVINCIA
(CZ)
98100

REGIONE
(SICILIA)

@ L. Massari reti di calcolatori 24/25

35

Sottoreti
▪ Sottorete:
▪ Interfacce i cui indirizzi IP
hanno in comune una
parte di indirizzo (high [Link]
[Link]
order bits)
▪ Le interfacce comunicano [Link]
[Link] [Link]
a livello 2, senza presenza
di router
[Link] [Link]
▪ Indirizzo IP = parte di [Link]

sottorete
sottorete (high order
bits) + parte di host [Link]
[Link]

(low order bits)


@Kurose Ross

@ L. Massari reti di calcolatori 24/25

36
Indirizzamento per classi

A l 000 0000
0

·benen144
8 10100000000000000
i
@ L. Massari reti di calcolatori 24/25 Forouzan, Mosharraf, Reti di Calcolatori, 2013
10114444444444444/
37
(1401 I

· poco flesienle allora maschera vi dete

Indirizzamento senza classi

gen vi
parte presso
~
RETE Suffisso

leute pot to
gute purt
23 14 67 94/17
. .
.

Prmo 23 0 .
.
0 . 0117 ~
ulimo 13 15
.
.
155 . 155/12
Zeiservato
BRONCAST

@ L. Massari reti di calcolatori 24/25


n = 32 – log2N
38
SOTTGRETE CASE 18 = A

1 13 .
0 .
0 . 0117

ultimi 23
.
240 .
0 .
0111

Lunghezza del prefisso - maschera di


rete
▪ 32 bit: sequenza di “1” nella parte di sottorete, e di
“0” nella parte di host faccio la nasciteratura
-

▪ La parte di sottorete ha lunghezza variabile


▪ Gli indirizzi degli host in una rete sono tanti quanti
i possibili valori nella parte che non è prefisso di
sottorete, meno due:
▪ tutti i bit a zero: indirizzo di sottorete (primo indirizzo)
▪ tutti i bit a uno: broadcast all’interno della sottorete
(ultimo indirizzo)
▪ Sottorete di dimensione minima (maschera /30):
link punto-punto
@ L. Massari reti di calcolatori 24/25

39

Lunghezza del prefisso – notazione CIDR

La lunghezza del prefisso viene aggiunta all’indirizzo, separata


da slash
rete host

11000001 11001100 00100011 01110110

Indirizzo IP [Link]/26

Notazione slash (CIDR)


Dato indirizzo in notazione CIDR, come ricavare informazioni
sul blocco di appartenenza (numero di indirizzi che contiene,
primo e ultimo?)
@ L. Massari reti di calcolatori 24/25

40
Lunghezza del prefisso - maschera di
rete
host
rete

11000001 11001100 00100011 01110110

11000001 11001100 00100011 01110110


11111111 11111111 11111111 11000000

11000001 11001100 00100011 01000000

▪ Dati un host con indirizzo H, una rete R con maschera M:


▪ primo indirizzo (indirizzo di rete R) è (H AND M)
▪ ultimo indirizzo (broadcast) è H OR (NOT M)
▪ numero di indirizzi è (NOT M) + 1

@ L. Massari reti di calcolatori 24/25

41

Allocazione gerarchica degli indirizzi

▪ Internet Assigned
Numbers Authority
alloca blocchi di
indirizzi contigui ai 5
Regional Internet
Registries (RIR)
▪ I RIR allocano
indirizzi a ISP e
operatori di rete

@ L. Massari reti di calcolatori 24/25

42
Distribuzione degli indirizzi IP

@ L. Massari reti di calcolatori 24/25

43

Indirizzi speciali
▪ [Link]/8 indirizzi di loopback
▪ reti private: host all’interno non possono comunicare
direttamente con nodi in Internet pubblica
▪ [Link]/8
▪ [Link]/12
▪ [Link]/16
▪ [Link]/4 riservata per indirizzi multicast
▪ [Link]/4 riservata per sperimentazione

[Link]
[Link]

@ L. Massari reti di calcolatori 24/25

44
Subnetting
▪ Un blocco di N=2n indirizzi, identificato dal prefisso
/k con k=32-n, può essere suddiviso in M sottoreti
(disgiunte)
▪ di uguale dimensione: ogni sottorete identificata da
m=log2M bit
k bit m bit n-m bit

rete sottorete host

1 1 1 1 1 1 1 ...............................1 0 0 0 0 0 0 0 0 0 maschera

▪ di diversa dimensione: approccio ricorsivo. Si suddivide il


blocco in M sottoreti, alcune delle quali vengono a loro
volta suddivise, fino ad ottenere la ripartizione richiesta

@ L. Massari reti di calcolatori 24/25

45
10 .
0 .
0 . 0/48 SUONETING ~ bloch I 20 .
0. 20
.
0 no apartenga al eloco più arte

14 Rete SUBNET

# winza. 34-48 10000701000000000 dol-1000000000000

RETE
SUB

... 0J00 :... 10 . 0 . 0 .


0/20
Gronctst
0/49 10
10 0 63 Rete SUBNET
. .
.
155
10000701000000000 001010000 00000000 10 .
0 0
. .

.
0 . 460
Rete SUBNET

100007010 00000000 00001000000000000 10 0 .


. 32 . 0/19
Maschera 255 .
155 198
. .
0
Livello rete - funzionalità

▪ inoltro/commutazione (forwarding/switching):
spostare il pacchetto da un link in ingresso al
router verso un link in uscita. Azione locale al
router
▪ instradamento (routing): determinare il percorso
che i pacchetti devono seguire da sorgente a
destinazione. Processo globale che coinvolge
tutti i router

@ L. Massari reti di calcolatori 24/25

Architettura di un router

routing, management
processore di control plane (software)
instradamento millisecondi

forwarding data plane


(hardware)
nanosecondi

struttura
di
commutazione

porte di input porte di output

@ L. Massari reti di calcolatori 24/25

10
Porte di input

Livello fisico: Livello data link: es.


ricezione di bit Ethernet, PPP

Inoltro decentralizzato: copia della tabella di inoltro nelle memoria delle porte
di input
▪ in base ai valori dell’intestazione e consultando (lookup) la tabella di inoltro,
il router decide la porta di output per il forwarding: inoltro basato sulla
destinazione (indirizzo IP destinazione) e inoltro generalizzato (insieme di
valori di diversi campi)
▪ obiettivo: tempo di ricerca inferiore alla velocità della linea di input Se no ~
COUA

▪ coda se la frequenza di arrivo dei datagrammi è maggiore della frequenza di


inoltro nella struttura di commutazione

@ L. Massari reti di calcolatori 24/25

11

Accodamento alle porte di input


▪ La struttura di commutazione è più lenta delle porte di
input
▪ ritardi di coda e perdite dovute a overflow nei buffer di
input
▪ Head-of-the-Line (HOL) blocking: un datagramma all’inizio
della coda blocca i rimanenti in coda

switch switch
fabric fabric

Contesa per la porta di output: può essere Il pacchetto verde


trasferito un solo datagramma rosso. subisce HOL blocking
il pacchetto rosso in basso attende in coda alla
porta di input
@ L. Massari reti di calcolatori 24/25

19
Accodamento alle porte di output

datagram
struttura buffer link
commutazione layer line
(freq. NR) protocol termination R
queueing (send)

▪ Buffering: la frequenza di arrivo dei pacchetti dalla struttura di


commutazione è maggiore della frequenza di trasmissione. I
datagrammi possono essere scartati causa congestione: discard
policy
▪ Gestione della coda: scheduling dei datagrammi in coda

@ L. Massari reti di calcolatori 24/25

20

Inoltro dei datagrammi IP


▪ Inoltro (forwarding): invio dei datagrammi al salto
successivo (destinazione finale o router intermedio) West
▪ I nodi memorizzano una tabella di inoltro
▪ Ogni riga della tabella corrisponde ad una ↑
destinazione nota e contiene:
▪ rete destinazione
▪ “next hop” verso la destinazione
Logica colle Q
▪ interfaccia per raggiungere il next hop -Q
▪ Tramite l’indirizzo dell’host destinazione contenuto
nel datagramma, si stabilisce la rete destinazione
(regola del prefisso più lungo)

@ L. Massari reti di calcolatori 24/25

47
Inoltro basato sulla destinazione
4 miliardi di indirizzi IP. Non
routing algorithm sono presenti singoli indirizzi
IP, ma range di indirizzi
local forwarding table
dest address output link
address-range 1 3
address-range 2 2 Campo di 32 bit per indirizzo
address-range 3 2
address-range 4 1

Indirizzo IP destinazione
nell’header del pacchetto

1
3 2

@ L. Massari reti di calcolatori 24/25

48

Tabella di inoltro

▪ Se la riga individuata contiene un next hop vuoto, si


passa al livello collegamento il datagramma,
specificando indirizzo destinazione uguale a quello
dell’end-system destinatario (consegna diretta)
▪ Se la riga individuata contiene un valore non vuoto,
questo indica l’indirizzo IP del prossimo router
lungo il cammino verso destinazione. Si passa a
livello collegamento il datagramma, specificando
come indirizzo destinazione quello router

@ L. Massari reti di calcolatori 24/25

49
Inoltro basato sulla destinazione
Larang (regole

indirizzi destinazione porta di output


da
11001000 00010111 00010000 00000000
a 0
11001000 00010111 00010111 11111111
da
11001000 00010111 00011000 00000000
a 1
11001000 00010111 00011000 11111111
da
11001000 00010111 00011001 00000000
a 2
11001000 00010111 00011111 11111111

altrimenti 3

@ L. Massari reti di calcolatori 24/25

50

Regola del prefisso più lungo


Nella consultazione della tabella si usa il prefisso più lungo che
corrisponde all’indirizzo destinazione

Prefisso Link Interface


11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
altrimenti 3

Esempi

11001000 00010111 00010110 10100001 quale interfaccia?

11001000 00010111 00011000 10101010 quale interfaccia?

@ L. Massari reti di calcolatori 24/25

51
52

Esempio

m5 m6

Tabella
Tabelladidiinoltro
inoltrodidiR1?
R1?
@ L. Massari reti di calcolatori 24/25

53
Aggregazione degli indirizzi

m5 m6

Tabella di inoltro di R2?

@ L. Massari reti di calcolatori 24/25

54

Regola del prefisso più lungo

m5 m6

m7

Tabella di inoltro di R2?

@ L. Massari reti di calcolatori 24/25

55
TABELL RY

3
DESTINATOE NEXT HOP Interfaccia · 0126 os

64/e6on
140 44 7 120
.
.
. -1 sole 140 24 7 .
.
.
0116 T m .

·
0/4
140 .
2
_ 4 .
7 .
64/26 / M1 · 128/76

140 44.
.
7 . 728/16 / MI ·
198/86 14/
DELOUE M5 M4

TABELLA RI DESTINATOE NEXT HOP Interfaccia

140 24 7 0/44
. . .
M4 M5

140 24 7 . . . 194/16 / m

DEFOUE Non Verano MG

TABELLA A DESTINAZIONE Next


hoppe interfacia

L1 / IPA
IPRy
u
L ,
14
cogr 0.0/19
. PalIn
13 IPR111
DEFAULT IP27 IPA
3 a) IPa = 20 .
64 . 37 .
7/19

IPp = 10 . 64 . 32 .
/13 TABELL RI

IPr = 20 .
64 . 32 . 31 19 LY - IPRI

iPrely = 10 .
64 . 31 .
4/19 20 64 0 0119
. . .

IPrtly IPRX

14 mill = 10 .
64 .
0 .
1/10 DEFAUE NOT VISIBLE 190 .
7 4
. .

IP 2113 = 20 . 64 .
16 . 7/80

IPC = 20 .
62 46 . .
/10 TABELL MM

.
3 () supereloclo 20 . 64 .
0 . 0/18 24 / 1pR124

LE ↓Idrale

11 20 . 64 . 32 . 0119 3 / IP 24
La 64 .
0 .
01 10 DEF IPRE IP Ru Ly

L3 64 . 16 .
01 10

:
!
3 01 00000
O
00000000
16 0004 : 000s

Potrebbero piacerti anche