Introduzione (parte III)Introduzione (parte III)Introduzione (parte III)
Argomenti della lezioneArgomenti della lezione
Ripasso degli argomenti del primo corso: il livello di trasporto, il meccanismo di controllo delle congestioni e le applicazioni
Ripasso degli argomenti del primo corso: il livello di trasporto, il meccanismo di controllo delle congestioni e le applicazioni
Il livello di trasportoIl livello di trasporto
Supera alcuni dei limiti della sottorete di comunicazioneSupera alcuni dei limiti Supera alcuni dei limiti della sottorete di comunicazionedella sottorete di comunicazione
Ruolo cruciale per la realizzazioneed il funzionamento delle applicazioniRuolo cruciale per la realizzazioneRuolo cruciale per la realizzazioneed il funzionamento delle applicazionied il funzionamento delle applicazioni
Fornisce un’interfaccia software per le applicazioniFornisce un’interfaccia Fornisce un’interfaccia software per le applicazionisoftware per le applicazioni
Utilizza indirizzi (porte) per il multiplexing delle connessioniUtilizza indirizzi (porte) per Utilizza indirizzi (porte) per il il multiplexingmultiplexing delle connessionidelle connessioni
L’interfaccia socket di BerkeleyL’interfaccia socket di BerkeleyProcesso serverProcesso server
socketsocket
bind (indirizzo X)bind (indirizzo X)
send/receivesend/receive
closeclose
listenlisten
acceptaccept
(connessione)(connessione)
Processo clientProcesso client
socketsocket
send/receivesend/receive
closeclose
connectconnect(indirizzo X)(indirizzo X)
Indirizzi TCPIndirizzi TCP
ApplicazioniApplicazioniApplicazioni
Livello ditrasportoLivello diLivello ditrasportotrasporto
Livelli1, 2 e 3LivelliLivelli
1, 2 e 31, 2 e 3
TSAP(porte TCP)
TSAP(porte TCP)
processoprocessoserverservertelnettelnetprocessoprocesso
clientclient(telnet)(telnet)
2323
serverserverFTPFTP
2121
Alcune “well known” portsAlcune “well known” ports
FTP: 21Telnet: 23SMTP: 25DNS: 53WWW-HTTP: 80POP3: 110IMAP2: 143SNMP: 161
FTP: 21Telnet: 23SMTP: 25DNS: 53WWW-HTTP: 80POP3: 110IMAP2: 143SNMP: 161
Il livello di trasportoIl livello di trasporto
La sottorete di comunicazionepuò non essere affidabileLa sottorete di comunicazioneLa sottorete di comunicazionepuò non essere affidabilepuò non essere affidabile
I pacchetti IP sono datagram (senza connessione né riscontro)I pacchetti IP sono I pacchetti IP sono datagram datagram (senza connessione né riscontro)(senza connessione né riscontro)
È quasi sempre necessario garantire la corretta ricezione di tutti i dati, nell’ordine giusto
È quasi sempre necessario È quasi sempre necessario garantire la corretta ricezione garantire la corretta ricezione di tutti i dati, nell’ordine giustodi tutti i dati, nell’ordine giusto
La numerazione non è orientata ai segmenti, ma al byteLa numerazione non è orientata ai segmenti, ma al byte
Il numero di sequenzadi un segmento è sempre il numero di sequenza del primo byte contenuto nel campo dati
Il numero di sequenzadi un segmento è sempre il numero di sequenza del primo byte contenuto nel campo dati
Nei messaggi di riscontro viene sempre indicato il numerodi sequenza del byte successivo che il ricevitore sta aspettando (rispetto all’ultimo ricevuto in ordine)
Nei messaggi di riscontro viene sempre indicato il numerodi sequenza del byte successivo che il ricevitore sta aspettando (rispetto all’ultimo ricevuto in ordine)
TCP: numeri di sequenzaTCP: numeri di sequenza
TCP: numeri di sequenzaTCP: numeri di sequenza
tem
po
tem
po
tem
po
tem
po
invio di 10 byte + riscontro prec.(seq=48, ack=162)
invio di 10 byte + riscontro prec.(seq=48, ack=162)
invio di 3 byte + riscontro
(seq=162, ac
k=59)invio di 3 byte + riscontro
(seq=162, ac
k=59)
invio di 5 byte + riscontro(seq=59,ack=165)
invio di 5 byte + riscontro(seq=59,ack=165)
host Bhost Bhost Ahost A
TCP: numeri di sequenzaTCP: numeri di sequenza
Nei messaggi di riscontroNei messaggi di riscontro deldel protocolloprotocolloTCPTCP viene sempre indicato il prossimo viene sempre indicato il prossimo
numero di sequenzanumero di sequenzache il ricevitore si aspettache il ricevitore si aspetta
QuindiQuindi, se la, se la sequenza inizia dasequenza inizia da 7200, 7200, perper confermare l’avvenuta ricezione confermare l’avvenuta ricezione dei primidei primi 350 byte350 byte il ricevitore inviail ricevitore invia
un acknowledge conun acknowledge con numeronumerodi sequenzadi sequenza 7551 (7551 (cioècioè 7200+350+1)7200+350+1)
Il client conferma la ricezione del segmento SYN del server: SYN=1, seq=client_isn+1, ack=server_isn+1
Il client conferma la ricezione del segmento SYN del server: SYN=1, seq=client_isn+1, ack=server_isn+1
TCP: apertura della connessione(handshake a tre vie)TCP: apertura della connessione(handshake a tre vie)
Il client spedisce un segmento SYN(flag SYN=1) notificando il suo numeroiniziale di sequenza (client_isn)
Il client spedisce un segmento SYN(flag SYN=1) notificando il suo numeroiniziale di sequenza (client_isn)
Il server risponde autorizzandola connessione: SYN=1, notifica il proprio numero iniziale di sequenza (server_isn) e conferma il segmento SYN del client (ack=client_isn+1)
Il server risponde autorizzandola connessione: SYN=1, notifica il proprio numero iniziale di sequenza (server_isn) e conferma il segmento SYN del client (ack=client_isn+1)
1.1.
2.2.
3.3.
serverserver
tem
po
tem
po
richiesta di connessione(SYN=1, seq=client_isn)
richiesta di connessione(SYN=1, seq=client_isn)
autorizzazione alla conness. (SYN=1,
seq=server_i
sn, ack=clie
nt_isn)
autorizzazione alla conness. (SYN=1,
seq=server_i
sn, ack=clie
nt_isn)
tem
po
tem
po
clientclient
ACK (SYN=0, seq=client_isn+1,ack=server_isn+1)
ACK (SYN=0, seq=client_isn+1,ack=server_isn+1)
TCP: apertura della connessioneTCP: apertura della connessione
TCP: chiusura della connessione(handshake a quattro vie)TCP: chiusura della connessione(handshake a quattro vie)
L’host A spedisce all’host B un segmento FIN (flag FIN=1) notificando l’intenzione di chiudere la connessione
L’host A spedisce all’host B un segmento FIN (flag FIN=1) notificando l’intenzione di chiudere la connessione
1.1.
L’host B invia un riscontro e la connessione viene chiusa in un verso; B può continuare a inviare dati
L’host B invia un riscontro e la connessione viene chiusa in un verso; B può continuare a inviare dati
2.2.
Quando l’host B termina la trasmissione invia un segmento FINQuando l’host B termina la trasmissione invia un segmento FIN
3.3.
L’host A invia un messaggiodi riscontroL’host A invia un messaggiodi riscontro
4.4.
TCP: chiusura della connessioneTCP: chiusura della connessione
notifica di chiusura(FIN=1, seq=x)
notifica di chiusura(FIN=1, seq=x)
ACK
(ack=x+1)
ACK
(ack=x+1)
notifica di chiusura
(FIN=1, seq=y)notifica di chiusura
(FIN=1, seq=y)
ACK(ack=y+1)
ACK(ack=y+1)
serverserver
tem
po
tem
po
tem
po
tem
po
clientclient
Header TCPHeader TCP32 bit
hlen window size
sequence number
options(0 o più parole da 32 bit)
source port destination port
acknowledgment number
(unused)RST
SYN
FIN
PSH
ACK
URG
checksum urgent pointer
Controllo della congestionedel TCPControllo della congestionedel TCP
Controllo della congestioneControllo della congestioneControllo della congestione
Stesso meccanismo per:Stesso meccanismo per:
Controllo di flussoControllo di flussoControllo di flusso
Gestione dei pacchetti danneggiatiGestione dei pacchetti danneggiatiGestione dei pacchetti danneggiati
Protocollo Protocollo slidingsliding windowwindow
Permettono la trasmissione di piùsegmenti in successione, ancheprima di aver ricevuto i riscontridei precedenti
Permettono la trasmissione di piùsegmenti in successione, ancheprima di aver ricevuto i riscontridei precedenti
Ogni segmento spedito è numeratocon un numero progressivosu n bit (da 0 a 2n-1)
Ogni segmento spedito è numeratocon un numero progressivosu n bit (da 0 a 2n-1)
La numerazione è legata ai bufferdi memoria di trasmettitoree ricevitore
La numerazione è legata ai bufferdi memoria di trasmettitoree ricevitore
Protocolli “sliding window”Protocolli “sliding window”
Protocolli “sliding window”Protocolli “sliding window”
Il trasmettitore mantieneuna finestra di trasmissioneIl trasmettitore mantieneuna finestra di trasmissione
I segmenti appartenenti alla finestra vengono memorizzati per eventuali ritrasmissioni
I segmenti appartenenti alla finestra vengono memorizzati per eventuali ritrasmissioni
Numeri di sequenza dei segmenti che può spedireNumeri di sequenza dei segmenti che può spedire
Indica i segmenti che possono essere spediti prima di aver ricevutoi riscontri dei precedenti
Indica i segmenti che possono essere spediti prima di aver ricevutoi riscontri dei precedenti
Protocolli “sliding window”Protocolli “sliding window”
Il ricevitore mantieneuna finestra di ricezioneIl ricevitore mantieneuna finestra di ricezione
Segmenti appartenenti alla finestra vengono memorizzati pereventuali ritrasmissioni
Segmenti appartenenti alla finestra vengono memorizzati pereventuali ritrasmissioni
Numeri di sequenza dei segmenti che può ricevereNumeri di sequenza dei segmenti che può ricevere
Permette di accettare frame fuori ordine e memorizzarli nell’attesa dei segmenti precedenti mancanti
Permette di accettare frame fuori ordine e memorizzarli nell’attesa dei segmenti precedenti mancanti
Protocolli “sliding window”Protocolli “sliding window”
Il limite superiore viene fatto avanzarequando si spedisce un nuovo frame Il limite superiore viene fatto avanzarequando si spedisce un nuovo frame
11
2255
66
00
3344
77TRASMETTITORETRASMETTITORE
Il limite inferiore viene fatto avanzarequando si riceve il riscontro del frameil cui numero progressivo corrispondeall’estremità inferiore
Il limite inferiore viene fatto avanzarequando si riceve il riscontro del frameil cui numero progressivo corrispondeall’estremità inferiore
Protocolli “sliding window”Protocolli “sliding window”
11
2255
66
00
3344
77RICEVITORERICEVITORE
La dimensione della finestra è fissaLa dimensione della finestra è fissa
L’intera finestra viene fatta avanzarequando si riceve un frame il cuinumero progressivo corrisponde all’estremità inferiore
L’intera finestra viene fatta avanzarequando si riceve un frame il cuinumero progressivo corrisponde all’estremità inferiore
Il TCP non usa messaggi espliciti di NACKIl TCP non usa messaggi espliciti di NACKSe riceve un segmento fuori ordine(buco nella sequenza di dati) invia un duplicato dell’ACK per l’ultimo segmento in ordine ricevuto
Se riceve un segmento fuori ordine(buco nella sequenza di dati) invia un duplicato dell’ACK per l’ultimo segmento in ordine ricevuto
Il trasmettitore, quando riceve tre ACK duplicati, li interpreta comeNACK per il segmento seguente (“ritrasmissione veloce”, RFC 2581)
Il trasmettitore, quando riceve tre ACK duplicati, li interpreta comeNACK per il segmento seguente (“ritrasmissione veloce”, RFC 2581)
TCP: segmenti ricevuti fuori ordine
TCP: segmenti ricevuti fuori ordine
Ripetizione selettiva: trasmettitore
Ripetizione selettiva: trasmettitore
next_seq_numnext_seq_num
riscontratoriscontrato
inviato, nonriscontratoinviato, nonriscontrato non disponibilenon disponibile
disponibile, nonancora speditodisponibile, nonancora spedito
dimensione finestradimensione finestra
next_seq_numnext_seq_num
fuori ordine ma già riscontratofuori ordine ma già riscontrato
atteso, non ancora ricevutoatteso, non ancora ricevuto
già accettato o non accettabilegià accettato o non accettabile
accettabileaccettabile
Ripetizione selettiva: ricevitore
Ripetizione selettiva: ricevitore
dimensione finestradimensione finestra
La dimensione della finestradi ricezione varia in funzionedella dimensione del buffer (fissa)e dei dati ricevuti ma non ancora prelevati dal processo applicativo
La dimensione della finestradi ricezione varia in funzionedella dimensione del buffer (fissa)e dei dati ricevuti ma non ancora prelevati dal processo applicativo
La dimensione della finestradi ricezione viene comunicataal trasmettitore nel campo“window size” dei segmenti inviati
La dimensione della finestradi ricezione viene comunicataal trasmettitore nel campo“window size” dei segmenti inviati
TCP: finestra di ricezioneTCP: finestra di ricezione
La dimensione della finestradi trasmissione viene modificatadinamicamente in funzione della capacità della rete e del ricevitore
La dimensione della finestradi trasmissione viene modificatadinamicamente in funzione della capacità della rete e del ricevitore
TCP: finestra di trasmissioneTCP: finestra di trasmissione
finestra di trasmissione = min (finestra di ricezione,
finestra di congestione)
Inizialmente a 1, man mano che arrivano riscontri cresce esponenzialmente fino ad un valore di soglia predefinito, poi linearmente
Inizialmente a 1, man mano che arrivano riscontri cresce esponenzialmente fino ad un valore di soglia predefinito, poi linearmente
Se un riscontro non arriva entroil timeout, il valore di soglia viene abbassato alla metà dell’attuale valore della finestra di congestione e questa riparte da 1
Se un riscontro non arriva entroil timeout, il valore di soglia viene abbassato alla metà dell’attuale valore della finestra di congestione e questa riparte da 1
TCP: finestra di congestioneTCP: finestra di congestione
numero di trasmissioninumero di trasmissioni
dim
en
sio
ne d
ella
fin
est
ra d
i co
ng
est
ion
e
dim
en
sio
ne d
ella
fin
est
ra d
i co
ng
est
ion
e
11 22 33 44 55 66 77 88 99 1010 1111 1212 1313 1414 1515 1616
112233445566778899
10101111
sogliasoglia
sogliasoglia
TCP: finestra di congestioneTCP: finestra di congestione
UDP: protocollo non connessoUDP: protocollo non connesso
PortePortePorteLimitato controllo di erroriLimitato controllo di erroriLimitato controllo di errori
Aggiunge al pacchetto IP:Aggiunge al pacchetto IP:
Nessun ritardo di setupNessun ritardo di Nessun ritardo di setupsetupBasso overheadBasso Basso overheadoverhead
Vantaggi e svantaggiVantaggi e svantaggi
Non controlla né corregge erroriné perdite di pacchettiNon controlla né corregge erroriNon controlla né corregge erroriné perdite di pacchettiné perdite di pacchettiNessun controllodi congestioneNessun controlloNessun controllodi congestionedi congestione
Header UDPHeader UDP
32 bit
source port destination port
UDP length UDP checksum
UDP: protocollo non connessoUDP: protocollo non connesso
Ritardi costanti e possibilmente contenutiRRitardi costanti e possibilmente contenuti(Spesso) elevata banda trasmissiva(Spesso) elevata banda trasmissiva
Le applicazioni multimediali richiedonoLe applicazioni multimediali richiedono
Non richiedono correzione di erroriNon richiedono correzione di errori
Problema:Problema:molte applicazioni multimediali UDPmolte applicazioni multimediali UDP
possono saturare la rete!possono saturare la rete!
Modelli per l’analisi e il dimensionamento
delle reti
Modelli per l’analisi e il dimensionamento
delle reti
Commutazione di pacchettoCommutazione di pacchetto
multiplexing statisticomultiplexing statistico
accodamento in attesa di trasmissioneaccodamento in attesa di trasmissione
AA BB
I ritardi indicati determinanoil ritardo totale al router A
I ritardi indicati determinanoil ritardo totale al router A
Ritardi e perdite nelle reti a commutazione di pacchettoRitardi e perdite nelle reti a commutazione di pacchetto
Ritardo di elaborazioneRitardo di elaborazione
Il ritardo totale introdottoda un nodo è dovuto a:Il ritardo totale introdottoda un nodo è dovuto a:
Ritardo di codaRitardo di codaRitardo di trasmissioneRitardo di trasmissioneRitardo di propagazioneRitardo di propagazione
Questi ritardi determinanola probabilità di perdere pacchettiQuesti ritardi determinanola probabilità di perdere pacchetti
RitardiRitardi
elaborazioneelaborazione
codacoda
propagazionepropagazione
trasmissionetrasmissione
AA BB
Questi ritardi determinanoil ritardo totale al router AQuesti ritardi determinanoil ritardo totale al router A
Ritardo di elaborazioneRitardo di elaborazione
Tempo necessario ad esaminare il pacchetto e a determinarne l’instradamento
Tempo necessario ad esaminare il pacchetto e a determinarne l’instradamentoComprende anche il controllodegli erroriComprende anche il controllodegli erroriIl pacchetto viene poi inviatoalla coda di trasmissioneIl pacchetto viene poi inviatoalla coda di trasmissioneOrdine di grandezza:microsecondi (o inferiore)Ordine di grandezza:microsecondi (o inferiore)
Tempo di attesa primadella trasmissioneTempo di attesa primadella trasmissioneDipende da quanto pacchetti precedenti sono già in codaDipende da quanto pacchetti precedenti sono già in coda
È zero se non ci sono pacchetti né in coda né in trasmissioneÈ zero se non ci sono pacchetti né in coda né in trasmissioneDipende dall’intensità e dalla natura del trafficoDipende dall’intensità e dalla natura del trafficoOrdine di grandezza:dai microsecondiai millisecondi
Ordine di grandezza:dai microsecondiai millisecondi
Ritardo di codaRitardo di coda
Tempo necessario a trasmettere tutti i bit del pacchettoTempo necessario a trasmettere tutti i bit del pacchetto
Dipende dalla velocità R del link e dalla lunghezza L del pacchettoDipende dalla velocità R del link e dalla lunghezza L del pacchetto
Esempio:Esempio:
L = 1500 byte = 12000 bitL = 1500 byte = 12000 bitR = 100 Mb/sR = 100 Mb/s
dtras = L/R = 120 msdtras = L/R = 120 ms
Ritardo di trasmissioneRitardo di trasmissione
Tempo necessario al segnale per transitare lungo l’intera lunghezza del link fisico
Tempo necessario al segnale per transitare lungo l’intera lunghezza del link fisicoDipende dalla lunghezza l del linke dalla velocità di propagazione ssul mezzo (circa 2 ·108 m/s)
Dipende dalla lunghezza l del linke dalla velocità di propagazione ssul mezzo (circa 2 ·108 m/s)
l = 1 km (LAN), s = 2 ·108 m/sl = 1 km (LAN), s = 2 ·108 m/sdprop = l/s = 5 msdprop = l/s = 5 ms
l = 72000 km (satellite),l = 72000 km (satellite),s = 3 ·108 m/ss = 3 ·108 m/sdprop = l/s = 0.24 sdprop = l/s = 0.24 s
Ritardo di propagazioneRitardo di propagazione
Esempio:Esempio:
Ritardo totale al nodoRitardo totale al nodo
A seconda del tipo di collegamento alcuni valori possono essere
trascurabili
A seconda del tipo di collegamento alcuni valori possono essere
trascurabili
ddnodonodo = = ddelabelab + + ddcodacoda + + ddtrastras + + ddpropprop
dcoda non è costante:varia da pacchetto a pacchettodcoda non è costante:varia da pacchetto a pacchetto
A causa della lunghezza finitadei buffer di memoria puòdeterminare la perdita di pacchetti
A causa della lunghezza finitadei buffer di memoria puòdeterminare la perdita di pacchetti
Ritardo di codae perdita dei pacchettiRitardo di codae perdita dei pacchetti
Ritardo di codae intensità di trafficoRitardo di codae intensità di traffico
aa = velocità media di arrivo= velocità media di arrivodei pacchetti (pacchetti/s)dei pacchetti (pacchetti/s)
LL = lunghezza dei pacchetti (in bit)= lunghezza dei pacchetti (in bit)
Si accodano L · a bit/sSi accodano L · a bit/s
Ritardo di codae intensità di trafficoRitardo di codae intensità di traffico
RR = velocità di trasmissione (b/s)= velocità di trasmissione (b/s)
L · a/R = intensità di traffico
se L · a/R>1 la lunghezzadella coda cresce senza limiti ed il ritardo tende ad infinito
L · a/R = intensità di traffico
se L · a/R>1 la lunghezzadella coda cresce senza limiti ed il ritardo tende ad infinito
Anche seL · a/R<1è possibilela perdita
di pacchetti perché la distribuzione
dei tempi di arrivoè casuale
(possono arrivare a gruppi)
Anche seL · a/R<1è possibilela perdita
di pacchetti perché la distribuzione
dei tempi di arrivoè casuale
(possono arrivare a gruppi) L · a/RL · a/R
ritardo media di codaritardo media di coda
11
Ritardo di codae intensità di trafficoRitardo di codae intensità di traffico
Se un pacchetto in arrivo trovala coda piena, viene scartatoSe un pacchetto in arrivo trovala coda piena, viene scartato
All’aumentare dell’intensitàdi traffico aumenta la probabilitàdi perdita di pacchetti
All’aumentare dell’intensitàdi traffico aumenta la probabilitàdi perdita di pacchetti
I pacchetti persi possono essere recuperati mediante ritrasmissionida parte del livello di trasportoo delle applicazioni
I pacchetti persi possono essere recuperati mediante ritrasmissionida parte del livello di trasportoo delle applicazioni
Perdita di pacchettiPerdita di pacchetti
Effetto combinato dei ritardiin tutti i nodi attraversatiEffetto combinato dei ritardiin tutti i nodi attraversati
In presenza rete omogeneacon poco traffico (dcoda = 0) e Q-1router da attraversare:dend-to-end = Q (delab + dtras + dprop)
compreso il ritardo dell’hostsorgente
In presenza rete omogeneacon poco traffico (dcoda = 0) e Q-1router da attraversare:dend-to-end = Q (delab + dtras + dprop)
compreso il ritardo dell’hostsorgente
Ritardo end-to-endRitardo end-to-end
Introduzione (parte III)Introduzione (parte III)Introduzione (parte III)
Top Related