Ecco Linux e TCP.

By noreply@blogger.com (Ubuntu Software Libero)

Linux e TCP
Linux e TCP Cubic.

Salve a tutti Oggi narreremo un argomento un po’ diverso dal solito, più teorico rispetto ai progetti ed esperimenti che vi proponiamo e che ovviamente continueremo a proporvi ;). In particolare oggi parleremo di un famoso protocollo della rete internet, ossia TCP. In particolare vedremo come funziona all’interno del sistema operativo Linux e vedremo perché esso è diverso rispetto al protocollo standard che ci propone la letteratura.

Ovviamente non entreremo in dettagli troppo tecnici tipo formule, ma cercheremo di essere più discorsivi.

La versione di TCP che il kernel Linux implementa è chiamata TCP Cubic, ma prima di capire i suoi punti di forza vediamo velocemente a cosa serve TCP per poi andare a parlare di TCP Cubic.

La struttura della rete internet è a strati, comunemente conosciuta come struttura OSI.

Ogni livello ha un compito preciso, ad esempio in basso abbiamo il livello di collegamento che serve per interfacciarsi con il livello inferiore (banalmente la scheda di rete). Più in alto possiamo notare un altro livello, ossia il livello di trasporto. All’interno del livello di trasporto ci sono due protocolli principali che girano, ossia UDP e TCP.

TCP ha diversi scopi, tra i quali occuparsi dell’affidabilità ossia far in modo che il ricevitore riceva ogni singolo pacchetto che è stato inviato, ed un’altra funzione importante è la gestione della congestione, ed è proprio di quest’ultima che noi andremo a parlare.

Congestione
Cos’è la congestione? Per capirlo meglio facciamo un esempio.

Supponiamo che l’host A voglia comunicare con B. Quello che farà sarà semplicemente inviare dei pacchetti a B tramite il router. Il router ovviamente riuscirà ad inoltrare solo un determinato numero di pacchetti alla volta, e se noi iniziamo ad inviare più pacchetti di quanto il router riesca a smaltirne, allora verranno messi in una coda. Ovviamente la coda non è infinita, quindi se noi continuiamo ad inviare pacchetti all’impazzata, più velocemente di quanto il router riesca ad inoltrarli, la coda tenderà a riempirsi e di conseguenza si avrà una situazione di saturazione, ed i pacchetti inevitabilmente saranno scartati, poiché non si ha più posto nella coda. Poi su un router non arrivano pacchetti da un solo host, ma arrivano da molte più fonti.

Questo fenomeno è chiamato congestione (uno dei motivi per il quale non riuscite a sfruttare tutta la banda che il vostro fornitore vi fornisce).

Ci sono diverse tecniche per cercare di limitare questo effetto dannoso ed una di quelle è appunto implementata all’interno del protocollo TCP.

Vediamo ora il comportamento di TCP in una rete congestionata. TCP si accorge che una rete è congestionata da due possibili situazioni: la prima è che scatta il timeout del pacchetto che abbiamo inviato, ossia è passato troppo tempo dall’ultimo pacchetto inviato e di conseguenza scatta il timeout associato ad esso, avvertendo il mittente che esso è stato scartato da qualche router nella rete. La seconda situazione è che noi riceviamo per tre volte lo stesso ACK, questo vuol dire che il ricevitore non ha ricevuto un determinato pacchetto (poiché probabilmente è stato scartato da un router congestionato nella rete) e quindi continua a dirci: “ehi! Guarda che mi manca questo pacchetto, inviamelo!”.

Quello che TCP deve fare allora è far in modo di non far scartare il pacchetto al router congestionato, quindi deve inviarne di meno, in modo che il router riesca a smaltire la coda. Per fare questo, il mittente mantiene una finestra, chiamata finestra di congestione, in poche parole il mittente manderà tutti i pacchetti che sono all’interno della finestra, non di più per evitare la congestione. Questa finestra aumenta in modo esponenziali fino ad un determinato punto e dopo di che aumenta linearmente, ossia “di una unità” ogni volta che un pacchetto è stato trasmesso correttamente (senza perdite).

Se avviene un’altra perdita questa finestra viene ridimensionata, e si ripete l’operazione di farla ricrescere piano piano.

TCP Cubic risolve proprio questo problema. Se avviene una perdita, al posto di far crescere la finestra di congestione in modo lineare (ossia aumentandola solo di 1 unità ogni volta) viene aumentata con una funzione matematica cubica, che farà in modo di aumentare la finestra in modo molto più veloce, e quindi si riesce a sfruttare meglio tutta la banda a nostra disposizione.

allora non resta che provarla siamo pronti?

Per saperne di più su Linux=https://www.facebook.com/groups/416785168484322/

Linux, Pc, ubuntu download, italian


Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.