Podcast
Questions and Answers
Qual è il significato del tasso di arrivo $𝜆$ in un sistema a coda?
Qual è il significato del tasso di arrivo $𝜆$ in un sistema a coda?
Cosa implica un ritardo lungo in un sistema a coda?
Cosa implica un ritardo lungo in un sistema a coda?
Nella notazione M/M/1, cosa rappresenta il numero '1'?
Nella notazione M/M/1, cosa rappresenta il numero '1'?
Quale condizione deve essere soddisfatta per definire il carico del server $𝜌$ in un sistema M/M/1?
Quale condizione deve essere soddisfatta per definire il carico del server $𝜌$ in un sistema M/M/1?
Signup and view all the answers
Quale delle seguenti affermazioni è vera riguardo ai modelli di sistemi a coda?
Quale delle seguenti affermazioni è vera riguardo ai modelli di sistemi a coda?
Signup and view all the answers
Quale caratteristica principale distingue UDP da TCP?
Quale caratteristica principale distingue UDP da TCP?
Signup and view all the answers
Qual è uno degli utilizzi più comuni di UDP?
Qual è uno degli utilizzi più comuni di UDP?
Signup and view all the answers
In che modo UDP gestisce i segmenti durante la trasmissione?
In che modo UDP gestisce i segmenti durante la trasmissione?
Signup and view all the answers
Qual è la funzione principale del checksum in UDP?
Qual è la funzione principale del checksum in UDP?
Signup and view all the answers
Qual è il principale svantaggio dell'utilizzo di UDP per la trasmissione dei dati?
Qual è il principale svantaggio dell'utilizzo di UDP per la trasmissione dei dati?
Signup and view all the answers
Cosa comprende l'header di un segmento UDP?
Cosa comprende l'header di un segmento UDP?
Signup and view all the answers
Qual è la principale differenza fra il metodo 'best effort' di UDP e il trasferimento affidabile?
Qual è la principale differenza fra il metodo 'best effort' di UDP e il trasferimento affidabile?
Signup and view all the answers
Quali sono le caratteristiche che Boston UDP offre in termini di alert per le applicazioni?
Quali sono le caratteristiche che Boston UDP offre in termini di alert per le applicazioni?
Signup and view all the answers
Qual è la principale limitazione del controllo della congestione in TCP tradizionale?
Qual è la principale limitazione del controllo della congestione in TCP tradizionale?
Signup and view all the answers
In che modo CUBIC bilancia scalabilità e velocità di convergenza?
In che modo CUBIC bilancia scalabilità e velocità di convergenza?
Signup and view all the answers
Qual è uno degli obiettivi dell'algoritmo BBR?
Qual è uno degli obiettivi dell'algoritmo BBR?
Signup and view all the answers
Per quale motivo le applicazioni multimediali preferiscono utilizzare UDP anziché TCP?
Per quale motivo le applicazioni multimediali preferiscono utilizzare UDP anziché TCP?
Signup and view all the answers
Quale parametro NON è considerato nell'algoritmo BBR?
Quale parametro NON è considerato nell'algoritmo BBR?
Signup and view all the answers
Quale delle seguenti affermazioni è vera riguardo a CUBIC e TCP?
Quale delle seguenti affermazioni è vera riguardo a CUBIC e TCP?
Signup and view all the answers
Qual è il valore utilizzato da CUBIC per il parametro C, secondo RFC 8312?
Qual è il valore utilizzato da CUBIC per il parametro C, secondo RFC 8312?
Signup and view all the answers
Qual è il principale vantaggio di utilizzare più connessioni TCP per un'applicazione?
Qual è il principale vantaggio di utilizzare più connessioni TCP per un'applicazione?
Signup and view all the answers
Quale algoritmo è stato adottato da Windows solo nel 2017?
Quale algoritmo è stato adottato da Windows solo nel 2017?
Signup and view all the answers
Quale caratteristica distingue il TCP loss-based dai nuovi approcci di controllo della congestione?
Quale caratteristica distingue il TCP loss-based dai nuovi approcci di controllo della congestione?
Signup and view all the answers
Quale tra queste affermazioni descrive meglio l'obiettivo della stima di RTT?
Quale tra queste affermazioni descrive meglio l'obiettivo della stima di RTT?
Signup and view all the answers
Cosa determina l'impostazione dell'RTO?
Cosa determina l'impostazione dell'RTO?
Signup and view all the answers
Qual è la formula utilizzata per calcolare DevRTT?
Qual è la formula utilizzata per calcolare DevRTT?
Signup and view all the answers
Qual è un effetto di un SampleRTT troppo grande?
Qual è un effetto di un SampleRTT troppo grande?
Signup and view all the answers
Come viene calcolato il valore di RTO?
Come viene calcolato il valore di RTO?
Signup and view all the answers
Quale affermazione meglio descrive il controllo di flusso in TCP?
Quale affermazione meglio descrive il controllo di flusso in TCP?
Signup and view all the answers
Cosa significa un margine di sicurezza maggiore nell'impostazione dell'RTO?
Cosa significa un margine di sicurezza maggiore nell'impostazione dell'RTO?
Signup and view all the answers
Qual è il valore tipico per la costante 'a' nella formula di EstimatedRTT?
Qual è il valore tipico per la costante 'a' nella formula di EstimatedRTT?
Signup and view all the answers
Cosa implica la comunicazione del valore di RWND nel TCP?
Cosa implica la comunicazione del valore di RWND nel TCP?
Signup and view all the answers
Che conseguenza ha un timeout prematuro nella comunicazione TCP?
Che conseguenza ha un timeout prematuro nella comunicazione TCP?
Signup and view all the answers
Che cosa accade se il buffer del ricevitore TCP va in overflow?
Che cosa accade se il buffer del ricevitore TCP va in overflow?
Signup and view all the answers
Quale dichiarazione riguardo alla congestione è corretta?
Quale dichiarazione riguardo alla congestione è corretta?
Signup and view all the answers
Qual è l'effetto di una stima di RTT troppo piccola?
Qual è l'effetto di una stima di RTT troppo piccola?
Signup and view all the answers
Cosa indica la ricezione di tre ACK duplicati durante la trasmissione di segmenti TCP?
Cosa indica la ricezione di tre ACK duplicati durante la trasmissione di segmenti TCP?
Signup and view all the answers
Qual è l'obiettivo principale della fase di fast recovery in TCP?
Qual è l'obiettivo principale della fase di fast recovery in TCP?
Signup and view all the answers
Cosa succede al valore di CWND quando si riceve un ACK valido in fase di fast recovery?
Cosa succede al valore di CWND quando si riceve un ACK valido in fase di fast recovery?
Signup and view all the answers
Cosa rappresenta il valore WUP nella gestione della fase di fast recovery?
Cosa rappresenta il valore WUP nella gestione della fase di fast recovery?
Signup and view all the answers
Quale affermazione è vera riguardo alla modifica di SSTHRESH durante il fast recovery?
Quale affermazione è vera riguardo alla modifica di SSTHRESH durante il fast recovery?
Signup and view all the answers
Qual è l'azione corretta da intraprendere quando si riceve un ACK parziale?
Qual è l'azione corretta da intraprendere quando si riceve un ACK parziale?
Signup and view all the answers
In che modo la ricezione di ACK duplicati influisce sulla finestra di congestione (CWND)?
In che modo la ricezione di ACK duplicati influisce sulla finestra di congestione (CWND)?
Signup and view all the answers
Cosa accade al puntatore WLOW durante la fase di fast recovery?
Cosa accade al puntatore WLOW durante la fase di fast recovery?
Signup and view all the answers
Quale delle seguenti affermazioni descrive correttamente il comportamento di CWND durante un timeout?
Quale delle seguenti affermazioni descrive correttamente il comportamento di CWND durante un timeout?
Signup and view all the answers
Cosa determina se trasmettere nuovi segmenti durante la fase di fast recovery?
Cosa determina se trasmettere nuovi segmenti durante la fase di fast recovery?
Signup and view all the answers
Che effetto ha la ricezione di più ACK duplicati sul valore di CWND?
Che effetto ha la ricezione di più ACK duplicati sul valore di CWND?
Signup and view all the answers
Qual è la relazione tra CWND e SSTHRESH durante il fast recovery?
Qual è la relazione tra CWND e SSTHRESH durante il fast recovery?
Signup and view all the answers
Quale condizione deve essere vera perché si attivi la fase di congestion avoidance?
Quale condizione deve essere vera perché si attivi la fase di congestion avoidance?
Signup and view all the answers
Study Notes
UDP (User Datagram Protocol)
- UDP è un protocollo di trasporto senza connessione, il che significa che non richiede l'instaurazione di una connessione tra mittente e destinatario.
- I segmenti UDP possono essere persi o consegnati fuori sequenza.
- UDP è un protocollo semplice: non prevede lo stato di connessione nel mittente e nel destinatario.
- Gli header dei segmenti UDP sono brevi.
- UDP non fornisce il controllo della congestione e può quindi inviare raffiche di pacchetti dati.
- UDP è spesso utilizzato nelle applicazioni multimediali, perché tollera piccole perdite e è sensibile al tasso di frame.
- Altri impieghi di UDP includono DNS e SNMP.
- Per ottenere un trasferimento affidabile con UDP, è necessario aggiungere l'affidabilità al livello di applicazione.
Struttura del segmento UDP
- Il segmento UDP contiene il numero di porta sorgente e destinazione, la lunghezza in byte del segmento UDP (incluso l'header), il checksum e i dati dell'applicazione.
Checksum UDP
- Il checksum UDP serve a rilevare gli "errori" (bit alterati) nel segmento trasmesso.
- Il mittente calcola il checksum sommando le parole di 16 bit del contenuto del segmento, incluso il checksum.
- Il ricevente controlla se il risultato corrisponde a una parola di 16 bit tutti uguali a 1.
TCP (Transmission Control Protocol)
- TCP è un protocollo di trasporto orientato alla connessione, che significa che richiede l'instaurazione di una connessione tra mittente e destinatario.
- TCP fornisce un trasferimento dati affidabile, garantendo l'ordine di consegna dei segmenti.
- TCP fornisce il controllo di flusso, che permette al ricevitore di controllare la velocità di trasmissione del mittente.
- TCP gestisce la connessione tramite handshake: il mittente e il ricevitore si scambiano segmenti di sincronizzazione (SYN) e acknowledgment (ACK).
- TCP fornisce il controllo della congestione per gestire il sovraccarico della rete.
RTT (Round Trip Time)
- RTT è il tempo misurato dalla trasmissione di un segmento fino alla ricezione dell'ACK.
- SampleRTT varia, è quindi necessario una stima "più livellata" di RTT.
- La media di più misure recenti viene utilizzata per dare più stabilità alla stima di RTT.
Retransmission TimeOut (RTO)
- RTO è l'intervallo di tempo in cui il mittente aspetta un ACK prima di ritrasmettere un segmento.
- RTO è calcolato come EstimatedRTT più un "margine di sicurezza".
- DevRTT è una stima della deviazione standard del SampleRTT rispetto all'EstimatedRTT.
- RTO viene impostato in base all'EstimatedRTT e al DevRTT.
Inizializzazione di TCP
- RTO viene inizializzato a 1 secondo.
- La prima misura di RTT viene utilizzata per inizializzare EstimatedRTT e DevRTT.
Controllo di flusso TCP
- Il ricevitore comunica al mittente quanto spazio libero è disponibile nel proprio buffer di ricezione, in modo che il mittente non invii troppi dati.
- Il mittente limita la quantità di dati in volo al valore della RWND (Receive Window) indicata dal ricevitore.
Controllo di congestione TCP
- Il controllo di congestione serve a gestire il sovraccarico della rete evitando di inviare troppi dati.
- Il controllo di congestione è diverso dal controllo di flusso.
- Se la rete è congestionata, TCP riduce la velocità di trasmissione dei dati.
Modelli per sistemi a coda
- Un sistema a coda comprende una "fila d'attesa" e un server.
- Il tasso di arrivo è il numero medio di pacchetti che entrano nella coda per unità di tempo.
- Il tasso di servizio è il tempo medio richiesto dal server per servire un pacchetto.
Algoritmo di controllo di congestione TCP
- L'algoritmo di congestione di TCP tiene traccia della dimensione della finestra di congestione (CWND).
- TCP utilizza un algoritmo esponenziale per aumentare la CWND e un algoritmo lineare per diminuirla.
- TCP entra in una fase di congestion avoidance quando la CWND è maggiore della SSTHRESH (Slow Start Threshold).
- TCP passa alla fase di Slow Start quando la CWND è minore di SSTHRESH.
- Durante la Slow Start, la CWND viene aumentata di un MSS (Maximum Segment Size) per ogni ACK ricevuto.
- Durante la Congestion Avoidance, la CWND viene aumentata di un MSS per ogni RTT trascorso.
- Durante la Fast Recovery, la CWND viene ridotta alla metà del suo valore precedente.
- Quando un timeout si verifica, TCP rientra in Slow Start e resetta la CWND a 1 MSS.
- Fast Retransmit e Fast Recovery sono meccanismi per gestire la perdita di segmenti in modo più efficiente rispetto al timeout.
- Fast Retransmit ritrasmette immediatamente il segmento perso, senza attendere un timeout.
Prestazioni di TCP
- Il controllo di congestione TCP è stato progettato per garantire la stabilità della rete.
- Le prestazioni di TCP possono essere compromesse da fattori come il ritardo di latenza e la perdita di pacchetti.
Macchina a stati dell'algoritmo di controllo di congestione in TCP
- L'algoritmo di congestione TCP può essere rappresentato con una macchina a stati.
- La macchina ha diversi stati: Slow Start, Congestion Avoidance, Fast Recovery.
- La macchina cambia stato in base alla ricezione di ACK, ACK duplicati, timeout.
Un'altra macchina a stati TCP
- Esistono diverse varianti della macchina a stati di TCP.
- La variante presentata nell'immagine mostra una macchina a stati più complessa con diversi stati aggiuntivi come Fast Retransmit, Fast Recovery e RTO.
- La macchina cambia stato in base alla ricezione di ACK, ACK duplicati, timeout e altri eventi.
Formula approssimata per il throughput di TCP
- Questa formula approssimata per il throughput di TCP è derivata da Mathis et al., "The macroscopic behavior of the TCP congestion avoidance algorithm", 1997.
- La formula è: vThr 𝑅𝑇𝑇, 𝑝 [Gbit/s] < 4 -.. 0
- Le variabili includono:
- p = Probabilità di perdere un pacchetto
- MSS = dimensione massima del segmento [Byte]
- RTT = tempo di andata e ritorno [s]
- Esempio: RTT = 220 ms, MSS = 1460 Byte, p = 10"## à THR = 2.1 Gbit/s
Problemi di equità (fairness) in TCP
- Le applicazioni multimediali non usano quasi mai TCP perché non vogliono ridurre il tasso di trasmissione a causa del controllo di congestione.
- Queste applicazioni usano UDP, inviando audio e video a un tasso costante e tollerando o compensando le perdite di pacchetti.
- Le applicazioni TCP possono aprire più connessioni in parallelo.
- Ad esempio, un web browser può aprire più connessioni TCP su un singolo host.
- Se ci sono 9 connessioni TCP esistenti su un link con banda R e una nuova applicazione apre 1 TCP, questa otterrà una banda R/10.
- Se la stessa applicazione apre 9 connessioni TCP, otterrà una banda R/2.
Futuro di TCP
- La versione di TCP che abbiamo studiato è basata sulle perdite, il che significa che reagisce solo dopo che si verifica una perdita.
- Questo può essere considerato "tardi" per rispondere alla congestione.
TCP e controllo di congestione
- Il controllo della congestione di TCP rallenta la trasmissione in base solo alle informazioni sui pacchetti persi.
- Questo ha funzionato bene per molti anni, specialmente con i buffer limitati degli switch e router Internet e le basse larghezze di banda dei collegamenti Internet.
- Oggi è necessario un algoritmo che risponda alla congestione effettiva, non solo alla perdita di pacchetti.
- Alcune soluzioni promettenti includono CubiC, BBR e QUIC.
CUBIC
- CUBIC è un algoritmo di controllo della congestione di rete in TCP che fa variare la lunghezza della finestra di congestione in base a una funzione cubica del tempo.
- Questo migliora la scalabilità e la stabilità su reti veloci e a lunga distanza.
- CUBIC è stato utilizzato come impostazione predefinita nel kernel Linux per diversi anni e adottato da Windows solo nel 2017.
Principi di CUBIC
- CUBIC utilizza sia profili concavi che convessi di una funzione cubica per aumentare la dimensione della finestra di congestione, ottimizzando l'utilizzo e la stabilità della rete.
- Dopo una congestione, la finestra viene scalata di 𝛽 (0.7), non di 0.5, trovando un equilibrio tra scalabilità e velocità di convergenza.
- CUBIC è "TCP-friendly", il che significa che non penalizza eccessivamente i flussi TCP standard che condividono lo stesso collegamento di bottleneck.
Funzione cubica per la CWND in CUBIC
- Il grafico mostra la funzione cubica utilizzata per calcolare la CWND in CUBIC.
- L'asse orizzontale rappresenta il tempo, mentre l'asse verticale rappresenta la CWND.
- La curva mostra come la CWND aumenta nel tempo, seguendo un pattern cubico.
BBR
- Bottleneck Bandwidth and Roundtrip propagation time (BBR) è un algoritmo di controllo della congestione sviluppato da Google nel 2016.
- BBR non si basa più sulle perdite di pacchetti, ma stima due parametri:
- la banda sul link di bottleneck
- l'RTT (tempo di andata e ritorno)
- L'obiettivo è trasmettere pacchetti a una velocità che non incontrerebbe accodamento.
BBR
- BBR è progettato per rispondere alla congestione effettiva, invece di basarsi sulla perdita di pacchetti.
- Modella la rete per garantire la velocità della larghezza di banda disponibile.
- BBR è particolarmente vantaggioso in reti con prestazioni non ottimali.
- È un algoritmo lato server.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Questo quiz esplora le caratteristiche del protocollo UDP, includendo la sua struttura e le sue applicazioni principali. Scoprirai come funziona questo protocollo di trasporto senza connessione e le implicazioni della sua semplicità. È ideale per chiunque voglia approfondire la conoscenza del networking e delle applicazioni multimediali.