Sulle prestazioni delle implementazioni TCP di Linux e Windows


13

Capisco l'implementazione dello stack TCP in Windows e Linux sono diversi. Windows usa un algoritmo di controllo della congestione noto come TCP Reno mentre Linux usa Cubic.

Come si confrontano i due protocolli quando coesistono sulla stessa rete? È vero che Cubic (Linux) è più aggressivo e potrebbe finire per ottenere una quota maggiore di larghezza di banda?

Risposte:


4

Si noti che l'algoritmo di controllo della congestione interessa solo il traffico upstream e quindi solo la larghezza di banda upstream.

Detto questo, Cubic è in realtà più aggressivo, soprattutto per le reti con un prodotto con ritardo di banda elevata. Esiste anche una regola incorporata nell'implementazione di Linux in modo da non utilizzare mai una velocità di trasmissione più piccola di quella di reno nella stessa situazione:

L'algoritmo Linux Cubic include anche il codice che garantisce che l'algoritmo cubico sia almeno altrettanto aggressivo del TCP standard

- Leith, Shorten, McCullagh, Valutazione sperimentale di Cubic-TCP

Quindi, quando scarichi gli aggiornamenti di Windows mentre guardi i video di YouTube, il tuo traffico Youtube potrebbe far morire di fame il tuo traffico Microsoft, e non c'è nulla che tu possa fare al riguardo.


12

In primo luogo, ciò che dici non è in realtà corretto:

  • Utilizza Linux fino al kernel versione 2.6.18 BIC per impostazione predefinita.
  • Linux kernel 2.6.19 e versioni successive CUBO per impostazione predefinita.
  • I meccanismi di controllo della congestione TCP di Linux sono pluggable , per esempio. puoi cambiarli su Fily.
  • Windows XP e versioni precedenti utilizza TCP Reno (o New Reno )
  • Anche Windows Vista e versioni successive TCP composto , che è abilitato di default in Server 2008 e può essere abilitato in Vista e Windows 7 se necessario.

Tutti di questi algoritmi sono auto-tuning in base alla larghezza di banda della rete disponibile, alla latenza, alla memoria disponibile, ecc. Hanno anche molti parametri di configurazione che ti permettono di sintonizzarli manualmente.

Pertanto, non è possibile confrontare l'uno con l'altro, senza guardare l'esatta topologia di rete specifica, l'hardware e il software utilizzati, ecc. Non è come se uno fosse migliore dell'altro, o usasse una quota maggiore della larghezza di banda disponibile. È vero che CUBIC è meno aggressivo del BIC, ma in pratica altre considerazioni sono spesso più importanti di quale sia l'aroma dell'algoritmo di congestione TCP usato.

A meno che non si stia tentando di sintonizzarsi su uno scenario di rete molto ristretto e insolito, questi algoritmi funzionano tutti abbastanza bene ed equamente fuori dagli schemi.


Lo scenario di rete è congestionato 100 Mbps LAN con 1000 computer dispari. Connettività Internet tramite server proxy. Alcuni dei PC sono Linux, mentre la maggior parte sono basati su Windows. Sembra che navigare attraverso Linux sia più veloce. Stavo cercando di razionalizzare questa osservazione
AIB

Senza misurare e senza vedere cosa sta realmente accadendo nella tua rete, è difficile dirlo. Ma penso che la possibilità che sia la differenza negli algoritmi di congestione TCP è piuttosto bassa, specialmente se la tua rete non è congestionata al 100% tutto il tempo. Ci sono molti altri fattori che possono influenzare la velocità di navigazione.
haimg

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.