Zur Leistung von TCP-Implementierungen unter Linux und Windows

13

Ich verstehe die Implementierung von TCP-Stack in Windows und Linux sind unterschiedlich. Windows verwendet einen Überlastungssteuerungsalgorithmus, der als TCP Reno bezeichnet wird, während Linux Cubic verwendet.

Wie vergleichen sich die beiden Protokolle, wenn sie im selben Netzwerk existieren? Stimmt es, dass Cubic (Linux) aggressiver ist und möglicherweise einen höheren Bandbreitenanteil erzielt?

AIB
quelle

Antworten:

4

Beachten Sie, dass der Überlastungssteuerungsalgorithmus nur den Upstream-Verkehr und damit nur die Upstream-Bandbreite beeinflusst.

Abgesehen davon ist Cubic tatsächlich aggressiver, insbesondere für Netzwerke mit einem Verzögerungsprodukt mit hoher Bandbreite. In der Linux-Implementierung ist sogar eine Regel eingebaut, die es erlaubt, niemals eine geringere Übertragungsrate als bei Reno zu verwenden:

Der kubische Linux-Algorithmus enthält auch Code, der sicherstellt, dass der kubische Algorithmus mindestens so aggressiv ist wie Standard-TCP

- Leith, Shorten, McCullagh, Experimentelle Bewertung von Cubic-TCP

Wenn Sie also Ihre Windows-Updates herunterladen, während Sie Youtube-Videos ansehen, kann Ihr Youtube-Datenverkehr Ihren Microsoft-Datenverkehr beeinträchtigen, und Sie können nichts dagegen tun.

artistoex
quelle
12

Erstens ist das, was Sie sagen, sachlich nicht korrekt:

  • Linux bis zur Kernel-Version 2.6.18 verwendet standardmäßig BIC .
  • Linux-Kernel 2.6.19 und höher verwendet standardmäßig CUBIC .
  • Die TCP-Überlastungskontrollmechanismen von Linux sind steckbar , dh Sie können sie auf dem Datenträger ändern.
  • Windows XP und früher verwendet TCP Reno (oder New Reno )
  • Windows Vista und höher verfügt auch über Compound TCP , das in Server 2008 standardmäßig aktiviert ist und bei Bedarf in Vista und Windows 7 aktiviert werden kann.

Alle diese Algorithmen passen sich automatisch an die verfügbare Netzwerkbandbreite, die Latenz, den verfügbaren Speicher usw. an. Sie verfügen auch über zahlreiche Konfigurationsparameter, mit denen Sie sie manuell anpassen können.

Sie können also nicht wirklich miteinander vergleichen, ohne auf die genaue Netzwerktopologie, die verwendete Hardware und Software usw. zu achten. Es ist nicht so, als ob die eine besser ist als die andere oder einen größeren Anteil der verfügbaren Bandbreite beansprucht. Zwar ist CUBIC weniger aggressiv als BIC, doch in der Praxis sind andere Überlegungen oft wichtiger als die des verwendeten TCP-Überlastungsalgorithmus.

Sofern Sie nicht versuchen, sich auf ein sehr enges und ungewöhnliches Netzwerkszenario einzustellen, funktionieren diese Algorithmen alle ausreichend gut und fair.

haimg
quelle
Das Netzwerkszenario ist mit 100 Mbit / s LAN und 1000 ungeraden Computern überlastet. Internetverbindung über Proxyserver. Einige der PCs sind Linux-Computer, die meisten Windows-Computer. Es scheint, dass das Durchsuchen von Linux schneller ist. Ich habe versucht, diese Beobachtung zu rationalisieren
AIB
Ohne zu messen und ohne zu sehen, was wirklich in Ihrem Netzwerk vor sich geht, ist es schwer zu sagen. Aber ich denke, die Wahrscheinlichkeit, dass es sich um einen Unterschied bei den TCP-Überlastungsalgorithmen handelt, ist ziemlich gering, besonders wenn Ihr Netzwerk nicht immer zu 100% überlastet ist. Es gibt viele andere Faktoren, die die Browsing-Geschwindigkeit beeinflussen können.
haimg