18/01/2020 -
TCP è il noto protocollo di livello trasporto che, assieme a IP, è tra i più importanti della cosiddetta suite di protocolli Internet.
La sua funzione, sostanzialmente, è quella di effettuare il controllo della trasmissione, rendendo affidabili le comunicazioni basate su di un protocollo che,
di per sé, non lo sarebbe. TCP è orientato alla connessione, e permette quindi ai terminali che comunicano di monitorare lo stato della trammissione.
Sono molte le caratteristiche che lo contraddistinguono, ma - fra tutte - una è di particolare interesse per lo studio delle prestazioni: la verifica del flusso di dati
al fine di evitare saturazioni della rete.
Il controllo della congestione è la funzionalità che permette di evitare tale situazione. Consiste nel limitare la quantità di dati trasmessi sotto forma di pacchetti che non sono ancora stati riscontrati, permettendo in sostanza di adattare il flusso di dati all'attuale stato della rete, dedotto da informazioni relative alla trasmissione dei pacchetti stessi.
L'operazione avviene attraverso il dimensionamento dinamico del flusso di dati, che segue precisi algoritmi al fine di garantire la massima prestazione possibile garantendo sicurezza e robustezza che caratterizzano TCP. Storicamente, diverse versioni del protocollo - con relativi differenti algoritmi di congestion avoidance - sono stati distribuiti e impiegati in Internet, come TCP-RENO e TCP-CUBIC. Un nuovo algoritmo, già in uso su diverse piattaforme (ad esempio, su alcuni servizi di Google) è TCP-BBR, che sembra essersi guadagnato, in seguito a test svolti da Google e altri, la reputazione di una soluzione eccellente, migliore di qualsiasi altro suo predecessore.
Si tratta di una soluzione innovativa e più adatta alla rete odierna di quanto non lo siano le versioni ideate ormai diversi anni fa: il tradizionale controllo di congestione basato sulla perdita di pacchetti è rinnovato - in BBR - grazie all'integrazione con informazioni specifiche circa la velocità di propagazione delle informazioni nella rete.
Ho condotto, assieme ad un gruppo di lavoro presso l'Università di Trento, alcune prove per testare il funzionamento dell'algoritmo in situazioni traffico di rete differenti, confrontando di volta in volta le prestazioni ottenute con quelle relative agli algoritmi tradizionali.
I risultati da noi ottenuti sono piacevolmente concordi con le aspettative. BBR mostra un andamento analogo, e a volte peggiore, rispetto ai suoi colleghi nelle situazioni ideali, quindi senza perdite; quando invece la rete si avvicina alla realtà, quindi con un Loss diverso da zero, BBR mostra prestazioni nettamente migliori nei confronti di RENO e CUBIC.
Il report completo delle prove svolte è disponibile al seguente link:
download report pdf
Il controllo della congestione è la funzionalità che permette di evitare tale situazione. Consiste nel limitare la quantità di dati trasmessi sotto forma di pacchetti che non sono ancora stati riscontrati, permettendo in sostanza di adattare il flusso di dati all'attuale stato della rete, dedotto da informazioni relative alla trasmissione dei pacchetti stessi.
L'operazione avviene attraverso il dimensionamento dinamico del flusso di dati, che segue precisi algoritmi al fine di garantire la massima prestazione possibile garantendo sicurezza e robustezza che caratterizzano TCP. Storicamente, diverse versioni del protocollo - con relativi differenti algoritmi di congestion avoidance - sono stati distribuiti e impiegati in Internet, come TCP-RENO e TCP-CUBIC. Un nuovo algoritmo, già in uso su diverse piattaforme (ad esempio, su alcuni servizi di Google) è TCP-BBR, che sembra essersi guadagnato, in seguito a test svolti da Google e altri, la reputazione di una soluzione eccellente, migliore di qualsiasi altro suo predecessore.
Si tratta di una soluzione innovativa e più adatta alla rete odierna di quanto non lo siano le versioni ideate ormai diversi anni fa: il tradizionale controllo di congestione basato sulla perdita di pacchetti è rinnovato - in BBR - grazie all'integrazione con informazioni specifiche circa la velocità di propagazione delle informazioni nella rete.
Ho condotto, assieme ad un gruppo di lavoro presso l'Università di Trento, alcune prove per testare il funzionamento dell'algoritmo in situazioni traffico di rete differenti, confrontando di volta in volta le prestazioni ottenute con quelle relative agli algoritmi tradizionali.
I risultati da noi ottenuti sono piacevolmente concordi con le aspettative. BBR mostra un andamento analogo, e a volte peggiore, rispetto ai suoi colleghi nelle situazioni ideali, quindi senza perdite; quando invece la rete si avvicina alla realtà, quindi con un Loss diverso da zero, BBR mostra prestazioni nettamente migliori nei confronti di RENO e CUBIC.
Il report completo delle prove svolte è disponibile al seguente link: