Strato di Rete e di Trasporto

Transcript

Strato di Rete e di Trasporto
Andrea Carniani
WiLab at the University of Bologna
Modello di riferimento
Corso in Ingegneria Gestionale
•
•
Telecomunicazioni T-1 AA 2009/10
Strato di Rete e di Trasporto
Come è strutturata
C
t tt
t una rete
t di T
Telecomunicazioni?
l
i
i i?
Come devono essere fatte le procedure e le regole che regolano una
rete di TLC?
Le attuali reti sono organizzate in modo da rispettare opportuni modelli di
per l'interconnessione dei diversi sistemi in cui è strutturata
riferimento p
una rete
Andrea Carniani
WiLab at the University of Bologna
•
Modello di riferimento Open Systems Interconnection (OSI) proposto
dalla dall‘ International Organization for Standardization (ISO)
•
M d ll di riferimento
Modello
if i
t di Internet
I t
t (TCP/IP)
2
Telecomunicazioni T-1
Andrea Carniani
WiLab at the University of Bologna
Andrea Carniani
Modello ISO-OSI
WiLab at the University of Bologna
Modello ISO-OSI
Il modello di riferimento ISO-OSI è basato su
Capisaldi
p
del modello ISO-OSI
• Organizzazione in 7 strati (layers) identificati da un numero 1-7
Simmetria: 7 strati ha A e 7 strati ha B
Struttura gerarchica: lo strato n (A) parla direttamente solo con gli strati n+1
(A) [da cui riceve] e n-1 (A) [a cui fornisce i dati]
Modularità: anche se si sostituiscono i protocolli dello strato n (sia da A che da
B) e non cambia nulla
• Ci sono 7 strati nell’entità che invia il messaggio (A) e 7 nel destinatario (B)
• Lo strato n di A, prende i dati dallo strato n+1 (A) e li invia (aggiungendo qualcosa)
allo strato n-1(A)
• Lo strato n di B prende i dati ricevuti dallo strato n-1 (B) e li invia (togliendo
qualcosa) allo strato n+1 (B)
Il modello ISO-OSI rende chiara la differenza tra
• Ogni
O
strato n fornisce
f
un determinato servizio, la comunicazione tra pari-strato
(strato n di A con n di B) avviene attraverso le informazioni in più (header) che lo
strato n (A) ha aggiunto e che lo strato n (B) legge e toglie dal messaggio
Servizio: ovvero che cosa fa lo strato considerato
• Ogni strato fornisce un servizio diverso dall’altro
Protocollo: ovvero il “linguaggio” con cui i pari strato comunicano tra loro
Interfaccia: ovvero il modo con cui lo strato n+1 accede ai servizi dello strato n
Telecomunicazioni T-1
3
Telecomunicazioni T-1
4
Andrea Carniani
WiLab at the University of Bologna
Terminale A
Terminale B
strato 7
strato 7
strato 6
strato 6
strato 5
strato 5
strato 4
strato 4
strato 3
Andrea Carniani
Modello di riferimento
Comunicazione virtuale tra pari
strato (4-7) dei due terminali
strato 2
WiLab at the University of Bologna
I protocolli possono essere di due tipologie
strato 3
strato 2
strato
t t 1
strato
t t 1
RETE
Mezzo trasmissivo
•
Protocollo orientato alla connessione: la comunicazione con il livello dall’altra
parte viene stabilita attraverso una procedura di scambio reciproco di informazioni
(handshaking) (ad esempio A informa B che ha dati da inviare
(handshaking).
inviare, B risponde dicendo
che è pronta a riceverli, A invia i dati, B conferma la ricezione dei dati)
-Vantaggi: la comunicazione è più controllata (A sa se i dati sono arrivati a
destinazione è possibile usare tecniche di ARQ per gestire eventuali perdite di dati)
destinazione,
-Svantaggi: richiede sempre uno scambio bi-direzionale tra A e B e può essere
costoso se ci sono vincoli temporali stringenti
•
Protocollo non orientato alla connessione: la comunicazione con il livello dall’altra
parte viene avviata senza verificare se i dati inviati verranno effettivamente ricevuti
d B ((potrebbe
da
bb anche
h essere iinattivo)
i )
- Vantaggi: è molto semplice e veloce
- Svantaggi:
gg non g
garantisce nessuna verifica dell’affidabilità dei dati inviati
Mezzo trasmissivo
5
Telecomunicazioni T-1
Andrea Carniani
WiLab at the University of Bologna
Tipi di Protocolli
Andrea Carniani
Strato di Applicazione
WiLab at the University of Bologna
A li
Applicazione
i
(strato
( t t 7):
7) (scopo:
(
iinterfacciare
t f
i
utente
t t e macchina)
hi ) Fornisce un insieme di protocolli direttamente collegati con le applicazioni:
tale strato supporta tutte quelle applicazioni che hanno bisogno di inviare
dati da un
n terminale all’altro (o
(ovvero
ero hanno bisogno della rete)
rete). Inoltre
elabora i dati in accordo con le specifiche richieste dall’applicazione.
6
Telecomunicazioni T-1
Strati 6 e 5
Presentazione
P
t i
( t t 6) (scopo:
(strato
(
ttrasformare
f
i dati
d ti forniti
f iti dalle
d ll applicazioni
li
i i iin
un formato standardizzato e offrire servizi di comunicazione comuni, come
la crittografia, la compressione del testo) – Lo strato si occupa di gestire la
semantica e la sintassi delle informa
informazioni
ioni trasmesse
Esempio: lo strato 6 si occupa di codificare i dati in uno standard
concordato tra terminale A e B (ad esempio ASCII)
Osservazioni
•
•
•
•
L’applicazione non fa parte dello strato di applicazione (sta sopra)
Esempi di applicazione: trasferimento file, invio posta elettronica, web browsing,…
È errato identificare un'applicazione utente come parte dello strato di applicazione.
Protocolli tipici di strato 7: HTTP (per web browsing), FTP (trasferimento file), POP
(posta elettronica), SMTP (posta elettronica),…RTP (per invio dati in tempo reale),…
Telecomunicazioni T-1
Sessione (strato 5) (scopo: controllare la comunicazione tra applicazioni.
Stabilire, mantenere e terminare connessioni (sessioni) tra applicazioni
cooperanti.) - consente la gestione del dialogo (mono o bidirezionale), la
gestione dei token (ovvero chi deve comunicare e quando) o la
sincronizzazione tra i flussi (ovvero inserisce dei punti di controllo nel flusso
dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende
dall'ultimo punto di controllo andato a buon fine.)
7
Telecomunicazioni T-1
8
Andrea Carniani
WiLab at the University of Bologna
Andrea Carniani
Strato di trasporto
WiLab at the University of Bologna
Trasporto (strato 4) (scopo: permettere un trasferimento di dati trasparente ed
affidabile (implementando anche un controllo degli errori e delle perdite) tra due
terminali. Il compito primario è quello di effettuare la frammentazione dei dati
provenienti dallo strato superiore in elementi più piccoli, detti 'segmenti' e trasmetterli
in modo efficiente ed affidabile allo strato di trasporto del terminale B.
Altre funzioni: ottimizzare l'uso delle risorse di rete e di prevenire fasi di congestione
della rete.
Lo strato di trasporto del terminale A, in base alle indicazioni ricevute dallo strato sovrastante, crea tante
connessioni “virtuali”
virtuali parallele con lo strato di trasporto del terminale B (utile se si stanno eseguendo
contemporaneamente più applicazioni in parallelo o se una certa applicazione richiede la connessione con
più terminali)
È il primo strato (partendo dal basso) realmente end-to-end (E2E), cioe' da host sorgente a host destinatario.
Il software dei protocolli dello strato di trasporto risiede quindi solo nei terminali (non c’è
c è bisogno che risieda
anche nei nodi della rete)
E’ il primo strato (partendo dal basso) che permette di stabile una connessione “virtuale” tra uno strato del
terminale A ed un pari strato del terminale B.
Protocolli tipici di strato 4: TCP e UDP (standard de facto per internet)
•
•
•
•
9
Telecomunicazioni T-1
Andrea Carniani
WiLab at the University of Bologna
•
•
10
Telecomunicazioni T-1
WiLab at the University of Bologna
Strato fisico
Fisico ((strato 1)) ((scopo:
p trasmette un flusso di dati non strutturati attraverso un
collegamento fisico, occupandosi della forma e del voltaggio del segnale) -
•
•
•
•
Gestisce operazioni di accesso multiplo (quando più sorgenti dati devono condividere lo
stesso mezzo fisico))
Esegue operazioni di codifica di canale (FEC o ARQ)
Telecomunicazioni T-1
•
Non è un protocollo end-to-end perché le decisioni vengono prese guardando quello che
avviene tra nodo e nodo ((o tra terminale e nodo)) ma non tra terminale e terminale.
Il software dei protocolli di strato di rete risiede quindi sia nei terminali che in tutti i nodi
della rete
Lo strato di rete può usare protocolli orientati alla connessione o non orientati alla
connessione
Protocollo tipico di strato 3: IP (standard de facto per le reti internet)
Andrea Carniani
Osservazioni
•
•
Strato di collegamento
Collegamento
g
(strato
(
2)) ((scopo:
p p
permettere il trasferimento affidabile di dati tra
le diverse sezioni della rete.) Invia blocchi di dati con la necessaria
sincronizzazione ed effettua un controllo degli errori lungo la tratta. Tutto ciò
consente di far apparire (allo strato di rete) il mezzo fisico come una linea di
trasmissione esente (possibilmente) da errori. Gestisce il controllo delle
operazioni della sottorete di comunicazione.
•
Rete ((strato 3)) ((scopo:
p rende g
gli strati superiori
p
indipendenti
p
dai meccanismi e
dalle tecnologie di trasmissione usate per la connessione. Gestisce il controllo
delle operazioni della sottorete di comunicazione.) Una delle tipiche funzioni
dello strato di rete è quella di cercare il percorso migliore per inviare i dati dal
terminale A a quello B attraverso la rete (routing). Il livello di rete gestisce anche
funzioni di tariffazione.
Osservazioni
Osservazioni
•
Strato di rete
•
11
In questo strato si decidono:
Le tensioni scelte per rappresentare i valori logici 0 e 1
La durata in microsecondi del segnale che identifica un bit
L'eventuale trasmissione simultanea in due direzioni
La forma e la meccanica dei connettori usati per collegare l'hardware al mezzo
trasmissivo
La modulazione utilizzata
Telecomunicazioni T-1
12
Andrea Carniani
WiLab at the University of Bologna
ISO OSI
Modello riferimento
Internet (TCP/IP)
Andrea Carniani
Internet
A li
Applicazione
i
Presentazione
ese ta o e
•
Il modello
d ll ISO-OSI
ISO OSI di ffatto
tt non viene
i
implementato
i l
t t in
i nessuna rete,
t
- Vantaggi: molto ben strutturato, chiara definizione di cosa fanno i
servizi/protocolli/interfacce
- Svantaggi:
S antaggi è estremamente dettagliato (la ssua
a descri
descrizione
ione è llunga
nga
centinaia di pagine), è difficile realizzare protocolli efficaci (tendono ad
essere lenti). Supporta solo protocolli orientati alla connessione nel livello di
trasporto.
•
Modello Internet (o TCP/IP) è diventato standard de facto
- Vantaggi: protocolli estremamente efficaci
efficaci, usato da tutti
tutti. Il livello di
trasporto supporta sia protocolli orientati alla connessione (TCP) che non
(UDP)
gg descrizione del modello p
poco chiara ((sono stati creati p
prima i
- Svantaggi:
protocolli e poi il modello). Modello poco generale. Il livello host-to-network
è solo un interfaccia tra strato di rete e strato di collegamento.
Applicazione
Sessione
Trasporto
Trasporto
Rete
Internet
Collegamento
Fi i
Fisico
Telecomunicazioni T-1
Differenze tra i due modelli
di riferimento
WiLab at the University of Bologna
Host to
network
13
14
Telecomunicazioni T-1
Andrea Carniani
Andrea Carniani
WiLab at the University of Bologna
WiLab at the University of Bologna
Funzionalità dello
strato di rete
Lo strato di Rete è implementato nei nodi (router) e nei terminali
Strato di Rete
Telecomunicazioni T-1
Lo strato di Rete fornisce i seguenti servizi:
15
-
Determinazione del percorso tra terminale A e terminale B (routing)
-
Commutazione: quando un datagramma arriva ad un nodo questi deve
inviarlo al collegamento (link) appropriato di uscita
- Commutazione di circuito
- Commutazione di pacchetto (datagram/circuito virtuale)
Telecomunicazioni T-1
16
Andrea Carniani
WiLab at the University of Bologna
Andrea Carniani
Funzione di routing
WiLab at the University of Bologna
Routing: scelta del percorso su cui inviare i datagrammi: i router formano una
struttura interconnessa e cooperante; i datagrammi vengono trasferiti dall’uno
all’altro finché raggiungono il router in grado di consegnarli direttamente al
destinatario
La funzione di instradamento (routing) viene eseguita dai router tramite l’utilizzo
di tabelle di routing
g nodo
- presenti in ogni
- possono essere possibili scelte diverse con costi diversi
È lla più
iù antica
ti fforma di commutazione
t i
A
Next hop
10
171.69.245.10
Nasce per applicazioni in cui la sorgente
è attiva in modo continuo (es. la voce).
a
b
c
d
e
B
Esempio di tabella di routing
Network number
Commutazione di circuito
Se A deve comunicare con B, la rete
identifica un percorso tra A e B (attraverso
i vari nodi) e mantiene il percorso attivo e
riservato ad A e B p
per tutto il tempo
p in cui
i due terminali sono in comunicazione
• La connessione tra A e B viene mantenuta ed è fissa (sono sempre coinvolti gli stessi
nodi)
• Non ci sono ritardi dovuti al traffico nella rete perché adesso i collegamenti a, b, c, d, e
sono riservati alla comunicazione tra A e B
• Ideale per servizi di telefonia (analogica o digitale)
Il numero di rete 10 è raggiungibile utilizzando il router di indirizzo 171.69.245.10
• Il servizio voce del GSM (ma anche UMTS) funziona in questo modo
17
Telecomunicazioni T-1
Andrea Carniani
Commutazione di pacchetto
WiLab at the University of Bologna
• Nelle reti che trasmettono dati, la sorgente emette informazione in modo molto
disomogeneo (invia un gruppo di dati e poi rimane inattivo per diverso tempo)
tempo). Il modello di
commutazione di circuito risulterebbe molto inefficiente
A
• Gli eventuali algoritmi di creazione del percorso vengono invocati una sola volta
g
((es. il router R3 è pieno),
) i dati si
• E’ un metodo statico per cui se si verifica una congestione
accodano e non vengono smaltiti verso altri percorsi
• CV è in genere orientato alla connessione
• Sistema più efficiente: le risorse (i router ed i
link) vengono usati solo quando servono
R2
Il percorso tra A e B avviene sempre
attraverso i router R1-4.
• Rischio di attese lunghe (ritardi non noti a
priori)
OSS: le reti ATM (Asynchronous Transfer
Mode)) funzionano a CV
B
D
Telecomunicazioni T-1
Commutazione di pacchetto
WiLab at the University of Bologna
• Non ci sono problemi nell’ordine di arrivo dei pacchetti (saranno sempre in ordine dato che
fanno lo stesso percorso
I router R1 e R2 vengono usati sia per i
pacchetti di A che per i pacchetti di B
R1
Andrea Carniani
Circuito virtuale (CV): una volta creato il percorso tra A e B (quali router
attraversare) il percorso rimane inalterato tra un fase di inattività e l’altra
attraversare),
l altra.
Commutazione di Pacchetto: il percorso tra A e B viene creato di volta in volta che A ha
dati da inviare a B
B, i link tra A e B non sono riservati ai due terminali e quindi può capitare
che un blocco di dati inviato da A (pacchetto) arrivi ad un nodo e venga accodato perché ci
sono già altri blocchi che devono essere inviati. La commutazione di pacchetto ha senso
quando i p
q
pacchetti scambiati hanno dimensioni p
piccole
C
18
Telecomunicazioni T-1
19
Telecomunicazioni T-1
C
R1
A
R2
R3
R4
D
B
20
Andrea Carniani
Commutazione di pacchetto
WiLab at the University of Bologna
Datagram: ogni volta che A ha dati da inviare a B, viene creato un percorso nuovo
tra A e B ( possono cambiare i router intermedi)
• Gli eventuali algoritmi di creazione del percorso vengono invocati tutte le volte che A ha dati
da inviare
Il percorso tra A e B avviene una volta tramite
i router R1-4 un’altra volta tramite quelli
R1,R5,R4
OSS: il livello di rete di internet è a
commutazione di pacchetto datagram
Distinzione tra interfacce e terminali: il terminale viene connesso alla rete tramite
uno o più collegamenti fisici (es. un portatile può essere collegato sia con un cavo
di rete che attraverso il mezzo wireless).
wireless) Il confine tra il terminale e il collegamento
fisico è detto Interfaccia. Un terminale può quindi avere più interfacce.
R1
R5
A
R2
L’indirizzo IP è l’identificativo di una unica interfaccia (un terminale può
quindi avere più indirizzi IP)
R3
R4
B
D
21
Telecomunicazioni T-1
Andrea Carniani
Protocollo IP
Cosa rappresenta un indirizzo IP?
• E’’ un metodo dinamico per cui se si verifica
f
una congestione ((es. il router R3 è pieno),
) i
pacchetti successivi possono seguire altre strade.
C
WiLab at the University of Bologna
Il protocollo IP (Internet Protocol) è il protocollo dello strato di rete delle reti che
appartengono a Internet (le reti ATM possono essere connesse a Internet anche se
protocollo diverso, è necessario usare dei g
gateway
yp
per tradurre i vari
usano un p
protocolli)
Ci sono problemi nell’ordine di arrivo dei pacchetti (ogni pacchetto può seguire strade diverse
e quindi un pacchetto partito dopo può arrivare prima) Necessità di risincronizzare i pacchetti
g
in g
genere non orientato
• Datagram
alla connessione
Andrea Carniani
Assegnamento indirizzi IP
WiLab at the University of Bologna
22
Telecomunicazioni T-1
Andrea Carniani
Assegnamento indirizzi IP
WiLab at the University of Bologna
Come si ottiene un indirizzo di rete?
Come fa un amministratore di rete ad assegnare
g
un indirizzo IP ad una interfaccia?
L’amministratore della rete può contattare un ISP (Internet Service Provider) che può
fornirgli un gruppo di indirizzi
- Assegnamento manuale
L’amministratore della rete contatta l’ICANN (Internet Corporation for Assigned
Names and Numbers) nell’ambito di una specifica area
- Assegnamento dinamico (Dynamic Host Configuration Protocol DHCP): E
E’ un
protocollo che permette di assegnare dinamicamente un IP ad una interfaccia
Vantaggi
gg DHCP
ICANN svolge le seguenti funzioni
•Se ho una rete a 256 indirizzi composta da 150 computer fissi (desktop) e 150 portatili
(laptop), non potrei assegnare a tutte le macchine un indirizzo (ce ne sono troppe) . Inoltre i
portatili non sono sempre connessi alla rete (è probabile che appartengano ai 150 proprietari
dei desktop). E’ quindi conveniente assegnare ad ogni portatile un indirizzo dinamico (con il
DHCP), ho problemi solo se il numero di laptop contemporaneamente attivi supera 106!
- Assegna gli indirizzi IP (in particolare i bit che identificano una rete)
- Gestisce i tool server DNS
- Assegna nomi di dominio e risolve le dispute tra nomi
•Se
S arriva
i un ospite
it coll il suo portatile
t til non h
ha senso assegnarglili un iindirizzo
di i
fifisso, conviene
i
usare DHCP (ogni volta che si ricollega gliene viene assegnato uno diverso)
- Alloca indirizzi a registri regionali di internet (ARIN, RIPE, APNIC,…) che a loro
volta gestiscono e allocano gli indirizzi all’interno della loro regione
Telecomunicazioni T-1
23
Telecomunicazioni T-1
24
Andrea Carniani
Andrea Carniani
Protocollo IPv4
WiLab at the University of Bologna
Protocollo IPv4
WiLab at the University of Bologna
Indirizzamento Universale per classi
Un indirizzo IP è composto da 32 bit divisi in gruppi di 8 bit
bit. I primi N bit indicano la rete di
appartenenza (es. la rete di UNIBO), gli altri (32-N) servono per indirizzare il terminale attraverso
la rete
si possono indirizzare fino a circa 4 miliardi di interfacce (232)
L’associazione tra indirizzo fisico (4-pla di numeri) e indirizzo simbolico (es. www.unibo.it) è fatta
tramite il protocollo DNS (strato Applicazione)
Non tutti gli indirizzi possono essere assegnati alle reti
D l 192.0.0.0
Dal
192 0 0 0 all 239.255.255.255
239 255 255 255 assegnatii per applicazioni
li
i i multicast
lti
t (classe
( l
D)
Costi
32 bit
Dal 240.0.0.0 al 255.255.255.254 riservati per usi futuri (classe E)
crescenti
Classe A:
N=4=128 reti
Classe B:
N=8=16000 reti
Classe C:
255.255.255.255 è indirizzo di broadcast (va a tutte le interfacce della propria rete
locale)
circa 16 milioni di indirizzi
Classe A + classe B + classe C + classe D + classe E ≈ 4 · 109
circa 65000 indirizzi
N=24=2 milioni di reti
Problema principale riguarda la scarsità
à di reti di classe B che sono quelle più
ù idonee
a soddisfare le richieste di indirizzi di una rete aziendale
circa 254 indirizzi
Best effort
IPv4 fa il meglio che può sulla trasmissione dei dati, non garantisce nulla sulla qualità del servizio
25
Telecomunicazioni T-1
Andrea Carniani
WiLab at the University of Bologna
16 bit
vers
LI
16 bit
T serv.
Identif
T vita
Formato datagram IPv4
Lungh datagram
Flag
PSS
Offset framm.
Checksum intest
opzioni
Data
Andrea Carniani
WiLab at the University of Bologna
Formato datagram IPv4
Tempo di vita (8 bit): serve per evitare che i datagram viaggino per sempre nella rete (il
campo viene decrementato di 1 ogni volta che attraversa un router). Se arriva a 0 viene
scaricato dal router
Vers (4 bit): versione del
protocollo IP usato
g intestazione ((4 bit):
)
LI: lungh
espresso in multipli di 32 bit
Indirizzo IP sorgente
Indirizzo IP dest.
26
Telecomunicazioni T-1
Tipo servizio [Type of Service]
(8 bit): specifica i requisiti del
datagram (es. basso ritardo, alta
affidabilità,..) [agisce sulle politiche
del router di gestione datagram]]
Protocollo strato superiore [PSS} (8 bit): usato quando il datagram arriva al terminale
destinazione. Indica qualche protocollo di strato 4 viene usato [TCP=6, UDP=17). Il numero
di protocollo ha un significato simile al numero di socket nell’intestazione del segmento
Checksum intestazione (16 bit): si fa solo sull’intestazione
sull intestazione e aiuta i router a capire se il
datagram è danneggiato (se c’è errore il router scarica il datagram)
Indirizzo IP sorgente (32 bit) e destinazione (32 bit)
Opzioni (32 bit): campo previsto nell’IP V4 (tolto nell’IPV6)
Lungh datagram [16 bit]:
lunghezza totale in byte del
datagram IP [header
[header+dati]
dati] (max
65536 byte), lungh. tipica 1500
(576) byte
Dati: campo dati
OSS: I campi identificativo (16 bit), flag (3 bit) e offset di frammento (13 bit) servono per
le procedure di frammentazione/riassemblaggio dei datagram
Senza il campo opzioni (poco usato): l’header è lungo 20 byte
Telecomunicazioni T-1
27
Telecomunicazioni T-1
28
Andrea Carniani
WiLab at the University of Bologna
Problemi Protocollo IPv4
Spazio di indirizzamento in esaurimento a
causa del boom di internet:
IPv4 è un protocollo NON orientato alla
connessione:
Indirizzi insufficienti data la numerosità della
popolazione, il trend di crescita e
l’allocazione per classi che porta a IP
inutilizzati
- Non assegna nessun numero ai pacchetti;
Nascono problemi sui router che devono
contenere tante regole di instradamento
quante sono le reti assegnate all’ azienda;
Si cerca con stratagemmi ad hoc di ovviare a
questi p
q
problemi modificando le tabelle di
instradamento;
Non sempre sono soluzioni efficienti …
- Non assegna i datagram ad alcun flusso o
ad alcuna serie di pacchetti;
Si faticano a correggere gli errori, a
conoscere i tempi di consegna … il protocollo
IPv4 fa del suo meglio per consegnare i dati
e non considera la qualità di servizio richiesta
(Qos: Quality of Service)
Requisiti Protocollo IPv6
- Spazio di indirizzamento sufficientemente grande (che possa sostenere la richiesta di indirizzi
dovuti alla crescita demografica,
g
, allo sviluppo
pp della domotica…))
- Indirizzi Multi/Any- cast (novità Any-cast dove a rispondere è il più vicino al mittente)
- Migliorare la sicurezza (introduzione del Source Routing che permette di determinare a livello
di stazione il percorso che il pacchetto andrà a fare)
- Migliorare l’efficienza del routing
- Soddisfare le diverse richieste sulla Quality of Service (QoS)
- Introdurre il concetto di flusso (associando un identificatore di flusso a una serie di pacchetti
correlati,
l ti non per correggere errori,i ma per associare
i
a quell flflusso le
l QoS
Q S richieste)
i hi t )
- Supporto alla mobilità (si prevede di assegnare ad ogni utente due domini, uno fisso e uno
dinamico)
1) IPv6 deve risolvere il problema degli
indirizzi
29
Telecomunicazioni T-1
WiLab at the University of Bologna
WiLab at the University of Bologna
- Autoconfigurazione del DHCPv6 (servizio analogo al DHCP ma che ha la possibilità di
interagire con il DNS, in modo da assegnare i nomi agli host, garantendo così una più facile
riconfigurazione degli indirizzi ai gestori della rete)
2) IPv4 non adatto per le nuove
applicazioni
li
i i multimediali
l i di li
Andrea Carniani
Andrea Carniani
30
Telecomunicazioni T-1
Andrea Carniani
Protocollo IPv6
WiLab at the University of Bologna
Indirizzamento
Formato datagram IPv6
Version (4 bit): contiene il numero
“6” e
indica la versione del
protocollo
Base Header
- Viene superato il concetto di classe,
classe quindi non si ha più un assegnamento gerarchico
- L’indirizzo IPv6 è composto da 128 bit (quindi si possono indirizzare 2128 interfacce) e
si introduce la distinzione fra Internet e Intranet:
Version
Priority
Flow Label
Payload Length
Next Header
Source Address
• assegnamento di un indirizzo Globale per la rete Internet (come in IPv4)
• assegnamento di un indirizzo Locale per le reti Intranet
Modifica dell’intestazione (Header)
Destination Adress
- In IPv6 misura 40 Byte (di cui 32 per gli indirizzi + 6 per i campi addizionali) contro i 24
Byte dell’ IPv4 (con 8 Byte per gli indirizzamenti e 16 per i campi addizionali);
- Per le ffunzioni
n ioni aggi
aggiuntive
nti e dell’ IP
IPv6
6 si è definito un
n Extension
E tension Header presente
solamente se la funzionalità è effettivamente richiesta: questo porta a trattare
velocemente tutti quei dati senza richieste particolari (che sono la maggioranza)
evitando di complicare eccessivamente la vita dei routers nel caso abbiano a che fare
con informazioni prive di estensioni;
Telecomunicazioni T-1
D t
Data
31
Telecomunicazioni T-1
Hop Limit
Priority
y ((4 bit)) : consente al router
di fare considerazioni sulle priorità
dei diversi pacchetti:
- I primi otto valori assumibili (0-7)
per il controllo di
sono utilizzati p
congestione, (esempio: applicativi
TCP con controlli di congestione su
finestre di dimensioni variabili)
- I secondi otto valori riguardano i
controlli che il router deve eseguire
su pacchetti senza il controllo di
congestione (esempio nel real time,
dove a seconda del numero
decido:
valore=8 pacchetti da scartare per
primi nel caso di problemi alla rete;
valore=15 pacchetti da scartare per
ultimi
32
Andrea Carniani
WiLab at the University of Bologna
Andrea Carniani
Formato datagram IPv6
WiLab at the University of Bologna
Extension Header IPv6
Nell’ IPv4 si avevano campi opzionali per esplicare particolari caratteristiche che riguardavano i
pacchetti e il loro routing: ciò comportava lavori onerosi per i routers che dovevano verificare per
ognii pacchetto
h tt la
l presenza di suddette
dd tt informazioni;
i f
i i
Flow Label (24 bit): utilizzato per il controllo di flusso, assegna un numero univoco
per i pacchetti dello stesso flusso, in modo che i router trattino allo stesso modo
(priorità …) pacchetti dello stesso flusso;
Nell’ IPv6 si è superato il problema inserendo solo nei pacchetti che necessitavano di trattamenti
particolari l’ extension header: si possono avere più extension header per ogni pacchetto (dipende
da quante caratteristiche si devono specificare),
specificare) i quali saranno processati secondo l’ ordine in cui
sono introdotti (e in generale l’ ordine non è casuale ma stabilito dallo RFC)
y
Length
g ((16 bit):
) utilizzato p
per esprimere
p
la lunghezza
g
del campo
p dati che
Payload
segue l’ header: al max si può avere un campo dati di 64 Kbyte (per campi dati
maggiori si usa l’ extension header)
Next Header (8 bit): si utilizza questo campo per specificare il protocollo utilizzato
nello strato di trasporto, solitamente TCP e UDP (è una generalizzazione del
campo Protocol di IPv4)
1.
Header IPv6;;
2.
Hop-by-Hop Option Header;
Tipi di Extension header
3.
Destination Option Header (opzioni nodo destinatario e i nodi nel Router Header);
4.
Routing Header (type 0);
5.
Fragment Header;
Source Adress (128 bit): contiene ll’ indirizzo IPv6 del nodo che ha generato il
pacchetto
6
6.
Authentication Header;
7.
Encapsulating Security Payload Header;
) contiene l’ indirizzo IPv6 del nodo ricevente
Destination Adress ((128 bit):
8.
Destination Option Header (opzioni solo nodo destinatario);
9.
Upper-Layer Header;
Hop Limit: è un numero progressivo che si decrementa per ogni nodo che il
pacchetto attraversa, arrivato a zero il pacchetto viene scartato (utilizzato per
evitare i loop)
33
Telecomunicazioni T-1
Esempio Extension Header:
Routing Header
Andrea Carniani
WiLab at the University of Bologna
Next Header 8bit
Ndr Ext Len 8bit
Reser ed 8 bit
Reserved
Routing Type 8 bit
Segments Left
Strict/Loose Bit Map 24 bit
Adress 1 128 bit
………
Simile a source router di IPv4:
specifica una serie di nodi che il
pacchetto deve attraversare per
raggiungere la destinazione; può
obbligarlo a passare per i nodi
(Strict) o no (Loose)
Telecomunicazioni T-1
34
Andrea Carniani
WiLab at the University of Bologna
Strato di Trasporto
p
Routing Type: poiché si
possono avere diverse tipologie
di routing (quello descritto è il
tipo zero) si è deciso di
assegnare un campo
discriminatorio
Segments Left: indica il numero di nodi che devo ancora visitare, cioè gli indirizzi non ancora
utilizzati (è un puntatore al prossimo indirizzo da visitare): valore massimo 23
Reserved: per usi futuri, uguale a zero in trasmissione, ignorato in ricezione
Strict/Loose Bit Map: è una maschera contenente un bit per ogni indirizzo: se uguale a zero
tratta l’ indirizzo come Loose, se uguale a uno considera l’indirizzo come Strict
Adress: sono gli indirizzi ne ho al max 23 e mi indicano gli indirizzi da visitare lungo il cammino
Telecomunicazioni T-1
35
Telecomunicazioni T-1
36
Andrea Carniani
Strato di trasporto
WiLab at the University of Bologna
Il compito principale dello strato di trasporto è quello di creare una connessione
“l i ” ttra i processii applicativi
“logica”
li ti i che
h vengono eseguiti
iti sull tterminale
i l A e quelli
lli che
h
vengono eseguiti sul terminale B, permettendo un trasferimento dati trasparente ed
affidabile tra i due terminali. Per fare ciò si effettua una frammentazione dei dati
provenienti dallo strato superiore in elementi più piccoli (detti segmenti),
segmenti) i quali
devono essere trasmessi in modo efficiente ed affidabile (implementando un controllo
degli errori e delle perdite) allo strato di trasporto del terminale destinatario.
Lo strato di trasporto offre i seguenti servizi allo strato di applicazione (se si utilizza il
modello di riferimento di Internet)
- multiplexing/demultiplexing
Andrea Carniani
Il protocollo UDP (user datagram protocol) è il più semplice dei due protocolli dello
strato di trasporto di Intenet.
Intenet
OSS: non è orientato alla connessione (no handshake) [no canale di ritorno tra B e A]
D ll quattro ffunzioni
Delle
i ib
base implementa
i l
solo
l multiplexing/demultiplexing
l i l i /d
li l i
OSS: esiste il checksum ma poiché non c’è canale di ritorno serve solo a B per
verificare se i dati sono affidabili
Struttura segmento UDP
16 bit
- trasferimento affidabile dei dati
UDP
WiLab at the University of Bologna
16 bit
N porta sorgente
N porta dest.
Lungh.
checksum
Lungh: lunghezza del segmento UDP (in byte)
L’intestazione (header) di un segmento
UDP è 8 byte)
- controllo di flusso
Dati per livello di applicazione
- controllo di congestione
37
Telecomunicazioni T-1
Andrea Carniani
TCP
WiLab at the University of Bologna
Il protocollo TPC (Transport Control Protocol) è più complesso del UDP ma
p
le q
quattro funzioni base
implementa
Andrea Carniani
WiLab at the University of Bologna
TCP
BUFFER di spedizione: una volta stabilita la connessione tra A e B
B, il TCP è pronto
per inviare i dati a B
OSS: è orientato alla connessione (handshake)
- il processo client invia i dati attraverso la socket, una volta che il TCP ha letto i dati
dalla socket li mette in un buffer chiamato buffer di spedizione
Richiesta di connessione
Richiesta accettata
A
38
Telecomunicazioni T-1
Nei primi due scambi non ci sono dati inviati,
nel terzo potrei già farlo
- Il buffer è una memoria organizzata come FIFO (first in first out)
OSS: processo lungo e costoso
- Il buffer ha ovviamente una dimensione finita, se l’applicazione scarica troppi
dati, il buffer si congestiona
Conferma ricezione ack
Maximum Segment Size (MSS): è la quantità massima di dati che possono essere
prelevata dal buffer e incapsulata in un segmento
B
OSS la
OSS:
l dimensione
di
i
massima
i
del
d l segmento
t è MSS
MSS+lunghezza-header
l
h
h d
Il TCP nasce per comunicazioni tra due utenti, cosa succede se voglio fare
multicast?
OSS: dimensioni tipiche di MSS 1500 byte, 536 byte, 512 byte
Il multicast con TCP è impossibile
impossibile, per queste applicazioni devo usare UDP (non c’è
cè
invio affidabile dei dati)
Telecomunicazioni T-1
39
Telecomunicazioni T-1
40
Andrea Carniani
WiLab at the University of Bologna
Struttura Segmento TCP
N porta sorgente
16 bit
checksum
Lungh. Intestazione (LI): [4 bit] (espressa in blocchi di 32 bit), in genere il campo
vale 5
L’intestazione (header) di un segmento TCP è
in genere di 20 byte (UDP ne ha solo 8)
Campi: 2 bit non sono usati altri 6 contengono
campi singoli ad 1 bit
N riscontro
campi
Struttura Segmento TCP
N porta dest.
N sequenza
LI
WiLab at the University of Bologna
Finestra di ricezione: indica la dimensione (16 bit) della finestra di ricezione (campo
usato per il controllo di flusso)
Struttura segmento TCP
16 bit
Andrea Carniani
Fin. Ricezione (RW)
Numero di sequenza: Il TCP spezza i messaggi che riceve dallo strato di
applicazione e li numera (per byte): in particolare, il numero di sequenza è
l’id tifi ti d
l’identificativo
dell primo
i
b
byte
t di d
dati
ti contenuto
t
t nell messaggio
i
Puntatore: opzione che permette di puntare a
dati ritenuti più urgenti (non usato)
0 1
Puntatore
opzioni
354
124
Segmento TCP (1): numero di
sequenza: 0
Dati per strato di applicazione
467
Il Messaggio è lungo 468 byte
Segmento TCP (2): numero di
sequenza: 124
Segmento TCP (3): numero di
sequenza: 354
Il num di sequenza serve per l’ARQ
41
Telecomunicazioni T-1
Andrea Carniani
WiLab at the University of Bologna
Struttura Segmento TCP
Numero di riscontro: il numero di riscontro che A inserisce nel segmento corrisponde al numero
di sequenza del prossimo segmento che A si aspetta di ricevere da B
Andrea Carniani
Multiplexing/Demultiplexing
WiLab at the University of Bologna
Terminale B
Cosa serve?
Strato di applicazione
IL TCP è orientato alla comunicazione e quindi si crea una comunicazione bidirezionale tra A e B
(si dice che il TCP è full-duplex). La bidirezionalità viene usata per un controllo incrociato
dei segmenti scambiati.
processo
socket
p se A riceve un segmento
g
con numero di sequenza
q
0 e campo
p dati lungo
g 400 byte
y è
Esempio:
chiaro che il prossimo segmento che si aspetta di ricevere da B deve avere numero di
sequenza 400. Per tale motivo mette nel numero di riscontro il numero 400.
processo
socket
processo
socket
Strato di trasporto
Demultiplexing (se si prelevano dati
dallo strato di rete e si consegnano ai
processi)
Multiplexing (se si prelevano i dati
dai processi e si consegnano allo
strato di rete
Scarto i segmenti che sono fuori ordine: E’ molto semplice ma spreco delle risorse perché B deve
trasmettere due volte i byte da 640-755)
b)
Come fa lo strato di trasporto ad
associare i dati che riceve dallo strato
di rete con i diversi processi che si
stanno eseguendo? (se ad esempio
sono in corso due sessioni web e un
trasferimento file)
L’operazione che consente di fare
questo prende il nome di
Problema dell’ordine
dell ordine dei segmenti: può capitare che A riceva dei segmenti da B fuori ordine
(prima ricevo il segmento con i byte 0-399 poi quello con i byte 640-755 ed infine quello con
400-639). Le specifiche non dicono nulla al riguardo e quindi le scelte sono lasciate a chi
scrive il protocollo, possibili scelte sono:
a)
42
Telecomunicazioni T-1
D ti ricevuti
Dati
i
ti dallo
d ll strato
t t di rete
t
Li conservo e aspetto che arrivino quelli intermedi: Più complesso (devo avere un buffer per
memorizzare i segmenti)
Telecomunicazioni T-1
43
Telecomunicazioni T-1
44
Andrea Carniani
Multiplexing/Demultiplexing
WiLab at the University of Bologna
Andrea Carniani
Multiplexing/Demultiplexing
WiLab at the University of Bologna
Il numero di ogni porta è definito mediante un numero compreso tra 0 e 65535 (16 bit)
Come fa lo strato di trasporto a realizzare il multiplexing/demultiplexing?
I primi 1024 (0-1023) sono utilizzati per applicazioni note, quelli da 1024-65535 sono liberi
Lo fa usando il socket, ovvero l’identificativo della porta che il processo usa per inviare dati nella
g
destinatario+PORTA sorgente+PORTA
g
destinatario).
)
rete ((IP sorgente+IP
Come funziona l’utilizzo dei numeri di porta?
Esempio:
Multiplexing: Lo strato di trasporto riceve i dati dallo strato di applicazione attraverso le varie
socket e in ogni segmento aggiunge nell’header l’indicazione della socket di origine. Un
segmento non può contenere dati provenienti da due socket diverse.
diverse Il segmento viene inviato
allo strato di rete che lo trasforma in uno o più datagram.
Supponiamo che esista l’applicazione “gamma” (la cui porta di riferimento è la 46428) e che il
terminale A (con indirizzo aaa) voglia creare una connessione con il terminale B (con indirizzo
bbb) per inviare dei dati.
Demultiplexing: Lo strato di trasporto, una volta ricevuto il segmento dallo strato di rete, va a
l
leggere
l’h
l’header
d dello
d ll strato
t t di trasporto
t
t (all’interno
( ll’i t
d
dell quale
l sii ttrova un campo che
h id
identifica
tifi il
socket di destinazione) e lo consegna al processo destinatario.
Lo strato di applicazione di A (client) invia i dati (ci vuole anche l’indirizzo) allo strato di trasporto
attraverso la SAP (Service Access Point: punto di accesso al servizio)
Lo strato di trasporto di A crea una nuova socket per gestire le comunicazioni con l’applicazione
g
((il numero della socket viene scelto dallo strato di trasporto
p
((in g
genere aleatorio),
), ad
“gamma”
esempio 19157)
p
deve q
quindi conoscere sia il numero della p
porta ((socket)) relativa al
Lo strato di trasporto
processo del terminale A (che sta generando i dati) sia quello della porta del processo del
terminale B (che li deve ricevere). Nell’header saranno quindi presenti un
Lo strato di trasporto di A mette nel proprio header la porta sorgente (19157) e la porta
destinazione (46428)
Campo identificativo di porta sorgente e identificativo di porta destinazione
45
Telecomunicazioni T-1
Andrea Carniani
Multiplexing/Demultiplexing
WiLab at the University of Bologna
- Il segmento arriva allo strato di trasporto di B che legge l’header e capisce che il segmento va
inviato alla socket 46428 relativa all’applicazione
all applicazione “gamma
gamma
Se ‘applicazione
applicazione “gamma”
gamma che è in esecuzione su B vuole inviare dei dati al terminale A
A, usa la
porta sorgente di A (19152) come nuova porta destinazione, e mette 46428 come porta
sorgente (inversione dei numeri di porta)
socket
Telecomunicazioni T-1
Porta destin.
19152
46428
Porta sorgente
Porta destin.
46428
19152
Multiplexing/Demultiplexing
WiLab at the University of Bologna
Nei protocolli orientati alla connessione (es. TCP) questo non avviene.
In questo caso ogni socket viene identificato da una 4-pla di numeri (indirizzo
d ti
destinazione
i
e sorgente,
t porta
t destinazione
d ti
i
e sorgente).
t )
processo
Porta sorgente
Andrea Carniani
Se il protocollo non è orientato alla connessione,
connessione segmenti che sono inviati da
terminali diversi ma che hanno la stessa porta destinazione (es. 46428) (e ovviamente
lo stesso indirizzo destinazione) arrivano sempre alla stessa socket del terminale B.
A cosa serve il numero di porta sorgente?
processo
46
Telecomunicazioni T-1
Il livello di trasporto di B usa la 4-pla per de-multiplare il dato alla giusta socket.
socket
Se due segmenti hanno lo stesso indirizzo destinazione, la stessa porta destinazione,
ma indirizzi sorgente diversi (possono anche avere un numero di porta sorgente
uguale) verranno inviati a due diverse socket di B.
OSS: Schema semplice
che
h vale
l per protocolli
t
lli di
livello di trasporto non
orientati alla connessione
(es. UDP)
47
Telecomunicazioni T-1
48
Andrea Carniani
Andrea Carniani
Trasporto affidabile dei dati
WiLab at the University of Bologna
Trasporto affidabile dei dati
WiLab at the University of Bologna
Come fa lo strato di trasporto a realizzare un servizio affidabile dei dati?
Lo strato di trasporto può garantire il trasporto affidabile dei dati dal terminale A a B.
B
OSS: In internet TCP lo fa, UDP non lo fa.
Lo fa attraverso il meccanismo di ARQ (Automatic Repeat Request) (è necessario un
protocollo orientato alla connessione)
P
Perché
hé sii fa
f allo
ll strato
t t di trasporto
t
t e non allo
ll strato
t t applicativo?
li ti ?
Il meccanismo di ARQ si compone di tre meccanismi
Si potrebbe anche fare allo strato applicativo (alcune applicazioni lo fanno) ma ha un
paio di svantaggi:
- rivelazione di eventuali errori in ricezione
- notifica dell’eventuale presenza di errori al trasmettitore
- è oneroso (chi crea un’applicazione nuova deve di volta in volta implementarlo)
- ritrasmissione
- rallenta l’applicazione
Sono possibili diversi meccanismi di ARQ
Perchè non si fa allo strato di rete?
- Stop and wait
Anche qui in linea di principio si potrebbe fare la verifica di affidabilità in ogni tratta, il
protocollo di rete di internet non lo fa perché lo fa già il protocollo di trasporto
- Stop and wait pipeline
-…
49
Telecomunicazioni T-1
Andrea Carniani
Trasporto affidabile dei dati
WiLab at the University of Bologna
Stop and wait
• A invia il primo segmento
• aspetta la conferma (ACK) da parte di B,
• se non arriva nulla entro un certo intervallo di tempo (tempo di attesa) oppure giunge
una notifica di errore (tramite ACK duplicato), ritrasmette il segmento
B
Dato 1
A
50
Telecomunicazioni T-1
Trasporto affidabile dei dati
WiLab at the University of Bologna
p and wait
Stop
Andrea Carniani
Meccanismo non molto efficiente ma estremamente semplice
Il meccanismo implementato dal TPC è più complicato
Cosa succede se il messaggio di ACK è difettoso?
A non è in grado di capire se l’ultimo segmento è stato ricevuto correttamente
oppure no
no.
In genere se A non riceve niente o riceve qualcosa di difettoso, A ritrasmette
l’ultimo segmento inviato
Dato 1
A
ack1
Dato 2
B
ack1
Tempo di attesa
Tempo di attesa
ACK duplicati
Dato 1
ack1
Dato 2
Telecomunicazioni T-1
51
Telecomunicazioni T-1
52
Trasporto affidabile dei dati
WiLab at the University of Bologna
Stop
p and wait p
pipeline
p
Andrea Carniani
Trasporto affidabile dei dati
WiLab at the University of Bologna
Checksum
Andrea Carniani
Stop and wait pipeline
Come faccio ad accorgermi che un dato contiene degli errori?
A invia segmenti senza aspettare l’ACK
I protocolli TCP e UDP contengono nell’header un campo chiamato checksum.
Ogni segmento viene suddiviso in parole di 16 bit
Se riceve un ACK duplicato oppure non riceve nulla dopo un tempo di attesa, invia
tutti i segmenti che non hanno ricevuto un ACK.
A
B
Dato 1
Dato 2
Dato 3
Dato 4
Tempo
attesa
ack1
Dato 2
Dato 3
- le parole vengono “sommate” (in senso logico, exclusive OR)
Ora B riceve due copie dei dati 2,3
e4
4. Come fa ad accorgersi che
sono copie?
- si fa il complemento a 1 della somma di tutte le parole di 16 bit che costituiscono il segmento
A inserisce nell’header del segmento
uno 0 (se è la prima volta che lo
trasmette) oppure 1 (se è una
ritrasmissione)
Esempio: il segmento è composto da tre parole
- al segmento di aggiunge il risultato del checksum
Dato 4
Nel meccanismo di stop and wait
basta un bit, per altri meccanismi di
ARQ possono essere necessari più
bit
Andrea Carniani
WiLab at the University of Bologna
Somma: 1100101011001010
0101010101010101
Compl 1 (checksum): 0011010100110101
Compl.
1011101110111011
1000100010001000
53
Telecomunicazioni T-1
0110011001100110
Controllo di flusso
Al terminale B, si fa la “somma” di tutti i campi (compreso
il checksum): se non risulta 1111111111111111 allora si è
verificato
ifi t un errore
54
Telecomunicazioni T-1
Andrea Carniani
WiLab at the University of Bologna
Controllo di congestione
Cosa serve?
Cosa serve?
Supponiamo che A invii dei dati a B e che i dati che arrivano allo strato di trasporto di B vengono
memorizzati in un buffer (buffer di ricezione) in attesa che lo strato di applicazione li legga
(tramite la solita socket).
Mentre il controllo di flusso serve per garantire che i dati che A invia a B non vadano
persi, il controllo di congestione non ha un impatto diretto sul collegamento tra A a
B, ma serve per preservare la rete da possibili congestioni.
Cosa succede se lo strato di applicazione non li legge ed i dati continuano ad arrivare?
Il meccanismo della ritrasmissione (ARQ), da un lato rende il trasferimento dei dati
affidabile, dall’altro introduce nuovo traffico della rete. Se la rete è già
congestionata, i segmenti non arrivano a destinazione (o arrivano in ritardo oltre
dal tempo di attesa) e quindi si scatenano altre ritrasmissioni che aumentano la
congestione della rete (effetto a valanga).
La dimensione del buffer è finita e quindi c’è il rischio che i dati non possano essere
inseriti nel buffer
ff ((i dati vengono persi))
Per risolvere questo problema, il TCP controlla la “velocità” con cui A invia dati a B (e viceversa)
) La finestra contiene (grossomodo)
(g
)
attraverso la finestra di ricezione ((receive window).
l’indicazione di quanto spazio rimane nel buffer di ricezione.
Al contrario se la rete fosse sgombra, lo strato di trasporto dovrebbe aumentare la
velocità di trasmissione dei dati da A a B.
Quest’indicazione viene inviata nel segmento di risposta che B invia ad A. Quando lo strato di
trasporto di A riceve il segmento da B guarda anche a quanto ammonta la finestra di
ricezione e decide se inviare il dato o aspettare.
OSS: UDP non fa controllo di flusso per cui se l’applicazione non legge in fretta i dati dal buffer di
ricezione,
i
i
id
dati
ti possono andare
d
persii
Telecomunicazioni T-1
55
Per fare questo, il TCP utilizza un parametro chiamato finestra di congestione
(congestion window CW)
Telecomunicazioni T-1
56
Andrea Carniani
WiLab at the University of Bologna
Controllo di congestione
Andrea Carniani
WiLab at the University of Bologna
Controllo di congestione
La finestra di congestione è un parametro variabile che serve per limitare la velocità di emissione
dei dati da A a B (e viceversa)
E’ evidente che agendo sulla CW agisco sulla velocità con cui A invia i dati a B
E
B.
Il TCP decide se inviare (oppure no) il segmento solo se è verificata la disuguaglianza
- Se CW è troppo piccola: la velocità di trasmissione è troppo bassa (ovvero il
TCP aspetta troppo prima di inviare i dati)
UBS − UBR ≤ min{RW , CW }
UBS: ultimo byte spedito
- Se CW è troppo grande, di fatto il controllo di congestione sparisce (rimane solo
il controllo sulla RW)
UBR ultimo byte per il quale ha
ricevuto un ACK
RW: receive window
Indica il numero dei byte ancora in viaggio nella rete
Come faccio a capire che devo modificare la CW?
CW: congestion window
In g
genere il TCP guarda
g
se si verifica uno dei due eventi
Se l’ammontare dei dati inviati ma non ancora riscontrati (UBS-UBR) supera il minimo tra
RW e CW allora il TCP non invia i dati (aspetta finché non arriva qualche ACK)
- Time out: il TCP invia un dato e aspetta un certo tempo (TA) per vedere se
arriva l’ACK: se riceve un NACK o non riceve niente assume che il segmento sia
andato
d t perso
OSS: la RW entra nella formula perché in ogni caso non si possono inviare dati se la RW
è troppo bassa
- Ricezione di 3 ACK duplicati: se A riceve tre ACK duplicati (relativi cioè allo
stesso segmento) assume che quel segmento sia andato perso
perso.
g la CW?
In che modo scelgo
57
Telecomunicazioni T-1
Andrea Carniani
WiLab at the University of Bologna
Controllo di congestione
Andrea Carniani
WiLab at the University of Bologna
Controllo di congestione
Il precedente criterio ha lo svantaggio di essere molto lento (dato che parto da
CW=0 ci vuole tempo prima che la CW assuma valori elevati)
elevati). Se non c’è
cè
congestione, questo criterio riduce fortemente la velocità di trasmissione
Di quanto aumento o calo la CW? Possibile criterio
Diminuzione della CW: se la CW=C e arriva un evento di perdita di un
segmento (time out o ACK duplicati) la nuova CW è fissata a C/2 [dimezza ad
ogni evento perdita]
Criterio alternativo: alla partenza la CW è settata a MSS, finchè non si verifica
un evento di perdita, ad ogni riscontro la CW raddoppia, appena si verifica un
evento di perdita la CW dimezza e poi cresce solo linearmente.
Aumento della CW: ogni volta che ricevo un ACK aumento di uno step fissato
( d esempio
(ad
i MSS) lla CW
Evento perdita
Aumento additivo
CW
58
Telecomunicazioni T-1
Aumento additivo
CW
Decremento moltiplicativo
tempo
Decremento moltiplicativo
tempo
Evento di perdita
Telecomunicazioni T-1
59
Telecomunicazioni T-1
60
Andrea Carniani
WiLab at the University of Bologna
Controllo di congestione
OSS: UDP non effettua controllo della congestione: ciò è dovuto alla mancanza
di un canale di ritorno e quindi alla necessità di realizzare un servizio semplice e
veloce
OSS: Al momento la maggior parte delle applicazioni presenti su internet
utilizzano come protocollo di strato di trasporto il TCP (web, posta elettronica,…).
Cosa succederà quando nel prossimo futuro le applicazioni che usano UDP
gg
((es. q
quelle multimediali)?
)
costituiranno la maggioranza
Fortunatamente l’UDP non effettua ritrasmissioni e quindi diminuisce il rischio di
congestione.
Telecomunicazioni T-1
61