Reti
Reti
✓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
Lucevono e trasmettono
2
DIRETTIA Indiretta
END SISTEM
↑
-1
#
11
X
--
COMUTATOR
Connettività diretta e indiretta
Struttura di Internet
✓Componenti fisiche:
✓end-systems (host/terminali): eseguono
software applicativo, in grado di inviare Rete mobile
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
qualche Mbps
✓ satellitari: da Kbps a 45Mbps
-
✓ Fibra ottica: basso tasso d’errore, alto costo, fino a 100 Gbps
-
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
8
Accesso residenziale: fibra ottica
Accesso residenziale
wireless
device
to/from headend or
central office
often combined
in single box
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
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
to
Internet
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
13
Architettura: Internetworking
✓Interconnessione di reti eterogenee, possibile
grazie a:
✓Internet Protocol
✓Accordi tra operatori di rete
✓Maglia di router interconnessi gerarchicamente
~ continent
14
Standardizzazione
15
Applicazioni e Protocolli
Appucazioni vi rete
✓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
R = 1 5 MOPS = 1 5
106
I
:
. .
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
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
CONTESA
· Quando il pachetto accede alla rete usa tutta la banda (feer ofert
.
·
congestione /saturazione :
copa di pacheti in attesa del Un
VANTAGG
Svantaggio
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
B
Pacchetto in coda (ritardo)
buffer libero: pacchetti in arrivo
scartati (perdita) se buffer non libero
2 ·
con preveni diverse
Commutazione di messaggio
Esempio:
O = 7.5106 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)
R: frequenza trasmissiva
host
2
Commutazione di pacchetto
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
4
Commutazione di pacchetto
Esempio:
O = 7.5106 bit
L = 1500 bit
R = 1.5 Mbps
ritardo end-to-end = ?
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
Commutazione di pacchetto
10 Mbps
C
A Ethernet
1.5 Mbps
B
coda di pacchetti
in attesa sul link
in uscita
D E
8
·
Riservo parte di Banda o per tot tempo
Vantaggio
SVANTAGGIO
Vantaggi
✓ Condivisione risorse
✓ Semplice, senza “setup” della chiamata
11
Commutazione di pacchetto vs.
circuito
Vantaggi
✓ Condivisione risorse
✓ Semplice, senza “setup” della chiamata
11
Come misurare le prestazioni delle
reti a commutazione di pacchetto?
✓Latenza
I
✓Perdita
I di pacchetti
✓Throughput
3
✓Prodotto banda-ritardo
&
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
2
Tipi di ritardo ~
Ordente AL W
COuter) < MSEL
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
trasmissione
A
propagazione
elaborazione coda
del nodo
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
sorgente router
Singolo pacchetto ,
va Avattata
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 …
6
14Ps
i =
1 = 10PXs 7
C
·
e una stima media potrete essere spato come moti assieme
X ,
Lo
= O
Intensita
vel traffico =
R
↑ + Tende a crescere la Loga
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
=
.
↓
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
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
✓…
C
S
8
Throughput
Rs bits/sec Rc bits/sec
Prodotto banda-ritardo
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 :
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
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
✓Livelli in Internet
✓Incapsulamento porta al luea di pachetto
2
Esempio di organizzazione a livelli
4
Altro esempio di organizzazione a livelli
6
Architettura di rete
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
10
applicazione
✓Trasporto: trasferimento di
messaggi applicativi da - Trasfere
Tra
processi
sistem
aducting
trasporto
processo a processo
Eno
Ero sist
11
Internet (Architettura TCP/IP)
PDU
moer
protocoll
Protocol Data Unit
5 Applicazione messaggio
3
SMTP HTTP RTP DNS
Ethernet 3G frame
2 Collegamento
DSL 802.11
1 Fisico
12
congestione Arvino
perdite
ev eror
e gestite
e
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
14
Commutatori
New fot
rigerem
Repeater (o hub) Physical Physical
15
Modello di comunicazione
COLEGAMENTO
↑ virtuale
16
Comunicazione
logica
Comunicazione
fisica
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
ALLORA
19
Cos’è un pacchetto?
20
Cos’è un pacchetto?
Intestazione Ethernet
Intestazione IP
Intestazione TCP
Dati
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)
22
Applicatore di rete
· + 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
↓
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
Ethernet 3G
2 Collegamento
DSL 802.11 frame
1 Fisico
Applicazioni di rete
Programmi (processi) in esecuzione
application
su end systems che comunicano transport
network
✓ Architetture
✓ Client-server
✓ Peer-to-Peer (P2P)
✓ Ibrida ( P2P + Client/Server)
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
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
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à
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.
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
·
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
Pagina Web
~
[Link]
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
4
Connessioni HTTP
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
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
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
~
~ entity body ~
~ corpo (opzionale)
10
Intestazioni di richiesta
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
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
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
14
Mantenere lo stato user-server: cookies
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
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
17
Web caching
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
20
HTTP/1.1: HOL blocking
il client richiede un oggetto grande e tre oggetti più piccoli
server
O1
O2
O1 O3
O2
O3
O4
O4
21
server
O2
O4
O3 O1
O2
O3
O1
O4
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
23
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:
-
de inviar
25
DNS: servizi
▪ Servizi:
▪ Traduzione nome-indirizzo IP
▪ Alias dei nomi - risponde
stesso ilonverse a non
26
DNS: database distribuito, gerarchico
.
Root DNS Servers
Root
.com DNS servers .org DNS servers .edu DNS servers TLD: Top Level Domain
27
28
Root Name Servers
29
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
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
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
34
hostname
Web stub
client resolver
IP address
response
User device
query
query
full resolver Internet
response
35
@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
37
Livello trasporto
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
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
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)
physical physical
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)
6
Multiplexing/demultiplexing
application
Demultiplexing
▪ I datagrammi ricevuti
Formato segmento TCP/UDP
contengono:
Que MOMENTO
▪ indirizzo IP sorgente e IP In
32 bits
destinazione ↑ 168/7
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] )
Porte well-known
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
11
application
application application
P1
P3 P4
transport
transport transport
network
network link network
link physical link
physical physical
12
Multiplexing/demultiplexing TCP
Ricordiamo: clientSocket = socket(AF_INET, SOCK_STREAM)
[Link](sentence)
13
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
15
16
Segmento
UDP
17
Checksum di UDP
18
Livello trasporto
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
2
Principi di trasferimento affidabile
scrivo un protocollo che
trasporto
rete
canale inaffidabile
↑ 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
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
evento mente
da sopra riceeva lu rete
sender receiver
LV ADUCATI
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
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 -
E rdt_rcv(rcvpkt) &&
↑
contiene
Ricevo vasotto
Error
Wait for Wait for isNAK(rcvpkt) Attesa Un -
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
8
rdt2.0: problema corompo anche la Al
- S R
↓ PACKETT/
che numera
[·
Scen
Ack
D
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)
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
extract(rcvpkt,data)
sopra
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt) - ACK
@ L. Massari reti di calcolatori 24/25
11
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
~
15
Walt aspettare
· troppo ion Lu Stop
V
ACKN and mart
perditadio
*
16
rdt3.0 sender
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
start_timer
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
19
Prestazioni stop-and-wait
sender receiver
first packet bit transmitted, t = 0
last packet bit transmitted, t = L / R
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
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 ↑
-
Ack
circ
Trouput svote tane
rit uguale a prima
·
Scons Windows
24
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
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
26
27
GBN – azioni sender (2/2)
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++
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
31
SR – finestre sender e receiver
S
Graducent
NON ARMETE
Le CONENE
32
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
▪ 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)
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
i
in Se
I
I
↓ spazzo numer di Sequenta
N Dimensione finestra
&
N
↑
·
M
#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
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)
11
Hoo
DataGrana Ar
@ L. Massari reti di calcolatori 24/25
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
Segmento TCP
n. di porta sorgente e destinazione
lunghezza
intestazione in
parole di 32 bit
n. di bytes
che il receiver
può accettare
6
Opzioni
Gr
PERIORENZE
• il calcolo di RTT
• evitare riuso delle sequenze (PAWS)
combinazione timestamp-sequenza
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
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
18
19
Receiver TCP (RFC 1122, RFC 5681)
generazione di ACK
conferme
↑ Dati e
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
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
22
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
24
S L S
I
C MSS = 1000 GYTE
Star Timer
&
Startmen
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
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
27
⑤ conte
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
29
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
@ L. Massari
reti di calcolatori 24/25
31
C S
O 100 KEYTE
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 -
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
# 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
32
33
Controllo del flusso
Network
34
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
36
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
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 ·
/( 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
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
2
Controllo del flusso e della congestione
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
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
8
Finestra di congestione
Spazio dei numeri di sequenza del sender
cwnd
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
11
AIMD
12
Additive Increase Multiplicative
Decrease
time
13
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.
15
16
SOGUAINICIALE 16
SLOW START =
Cong Win
0. TIME
EVENTO OUT NEW sogra =
-
= 10
SS
CAPRE
It :
80 GUTE
SOGNA 31 MSS
↓ prop
= 100 NSEC
SEQ = 150
,
Sers = 1010
100 * 1024
#seg =
1460
= 70
.
13 = +1
* DERT
acouno
a) inviat
-
E
↑
E)
(00tH) [5] *
SOGUA
↑ tot =
+ + scont er +
6) SEQ C
S
ACk
Sin
S
SYN ACK
S
+ ↓
prop
+
1 +
3 Pr
=
2
APa s E
A(k 251 1044
Thym
=
511064
P1 1017 257 + 100 1 suns
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
&
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
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
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
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
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
Modelli di servizio
8
Livello rete Internet
25
frammentazione
n. salti
Gir) in
C
rimanenti
protocollo
ETERNO
livello sup.
I
TCP/OR
Chi sta sopra
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 =
Esempi di MTU
28
Frammentazione (1/2)
▪ campo offset = 0
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
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
32
MTU = 500 GYTE
427 MSS
Ho = 18 Eute
It =
gobte
ip
I = 40 bit
10 MF OfSET TO LENGHT
D T
①480480
tot
Ultimo 200 O 532 -
7547
-
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
193 . 204 . 35 . 0
33
Gerarchia di indirizzamento
34
Codice di avviamento postale
PROVINCIA
(CS)
87100 REGIONE
(CALABRIA)
88046
PROVINCIA
(CZ)
98100
REGIONE
(SICILIA)
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]
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
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
1 13 .
0 .
0 . 0117
ultimi 23
.
240 .
0 .
0111
39
Indirizzo IP [Link]/26
40
Lunghezza del prefisso - maschera di
rete
host
rete
41
▪ 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
42
Distribuzione degli indirizzi IP
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]
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
1 1 1 1 1 1 1 ...............................1 0 0 0 0 0 0 0 0 0 maschera
45
10 .
0 .
0 . 0/48 SUONETING ~ bloch I 20 .
0. 20
.
0 no apartenga al eloco più arte
14 Rete SUBNET
RETE
SUB
.
0 . 460
Rete SUBNET
▪ 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
Architettura di un router
routing, management
processore di control plane (software)
instradamento millisecondi
struttura
di
commutazione
10
Porte di input
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
11
switch switch
fabric fabric
19
Accodamento alle porte di output
datagram
struttura buffer link
commutazione layer line
(freq. NR) protocol termination R
queueing (send)
20
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
48
Tabella di inoltro
49
Inoltro basato sulla destinazione
Larang (regole
altrimenti 3
50
Esempi
51
52
Esempio
m5 m6
Tabella
Tabelladidiinoltro
inoltrodidiR1?
R1?
@ L. Massari reti di calcolatori 24/25
53
Aggregazione degli indirizzi
m5 m6
54
m5 m6
m7
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
140 24 7 0/44
. . .
M4 M5
140 24 7 . . . 194/16 / m
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