Ecco Linux e TCP. | Ubuntu Software Libero
IN QUESTO BLOG PARLEREMO DI TUTTE LE DISTRIBUZIONI LINUX E LE LORO CARATTERISTICHE, GRAZIE E BUONA PERMANENZA!!!

Benvenuti Da....

LINUX

LINUX
The World Linux

I VARI SITI DI LINUX:

Ecco 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?

Linux e TCP

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









LinuxPcubuntu downloaditalian