Ich habe das gleiche Problem mit meiner Geschäftsverbindung mit 5 Mbit / s wie in einem anderen Beitrag auf dieser Website. Sobald ein Computer einen Download startet, verschwindet die Latenz beim ersten Sprung nach unserer DFG, die von unserem ISP (Bell) bereitgestellt wird. Dieser erste Sprung befindet sich wahrscheinlich in demselben Gebäude und dauert 1 ms. Starten Sie einen Download, z. B. ein Windows-Update, und er springt auf 200-1000 ms.
Ich habe stundenlang mit Support telefoniert und alle gesagt, dass Sie die maximal verfügbare Bandbreite erreicht haben. Es ist normal, dass Ihre Latenz ansteigt. Aber meine Lektüre sagt mir, dass sie etwas mit TCP brechen. Ich habe Tests auf einer Heim-Shaw-Verbindung und sogar auf einem Rogers LTE durchgeführt, auf dem Downloads ausgeführt wurden und die maximale Mbit / s für mein Konto erreicht wurden, aber die Latenz geht nicht über das Dach.
Habe ich recht, wenn ich verstehe, dass Bell etwas unternimmt, um die integrierten Technologien von TCP zu brechen und die Rate basierend auf der verfügbaren Bandbreite zwischen den beiden Endpunkten zu verwalten?
Antworten:
Bell sagt dir die Wahrheit. Wenn Sie versuchen, 5 Mbit / s (oder mehr) in eine 5-Mbit / s-Verbindung zu übertragen, werden alle Dateien in einer ordentlichen kleinen Reihenfolge (sprich: Warteschlange) abgelegt. Ihr Ping wird ohne Verzögerung gelöscht, da kein Rückstand vorliegt. Die Antwort befindet sich jetzt jedoch am Ende der Warteschlange. TCP macht genau das, was es hier tun soll - der Absender füllt das erlaubte Empfangsfenster.
Es gibt Dinge, die Sie auf Ihrer Seite der Leitung tun können (QoS, WRED usw.), um die Auswirkungen zu verringern, aber so etwas werden Sie sehen, wenn es einen großen Unterschied zwischen Sender- und Empfängerbandbreite gibt. Ich habe jahrelang damit gelebt (T1, 6 Mbit / s DS3, sogar 10 Mbit / s Kabelmodem). Sie könnten den ISP bitten, die Warteschlangengröße auf seiner Seite zu reduzieren, aber es ist unwahrscheinlich, dass sie dies tun, da dies zu Paketverlusten führen wird .
quelle
Die meisten Formen von "QoS" enthalten heutzutage kein AQM, da es für Anbieter zu schwierig war, RED automatisch zu konfigurieren, ohne Schaden zu verursachen. Dies führt zu den entsetzlichen Verzögerungen, die heutzutage bei vielen gängigen Geräten auftreten, insbesondere bei Kabelmodems und drahtlosen Geräten. Es hilft also nicht, nur "Qos einschalten" zu empfehlen. Tatsächlich führt das Einschalten des Ratenbegrenzers für "QoS" bei mindestens einem der Netgear-Produkte zu erheblich schlechteren Ergebnissen.
Kürzlich ist ein neuer fairer Warteschlangen- + AQM-Algorithmus erschienen, der anscheinend sehr gut funktioniert und besser fast keine Konfiguration außer dem Einstellen des Ratenbegrenzers erfordert. Es heißt fq_codel und ist mittlerweile in den meisten Linux-Versionen weit verbreitet und wurde auch auf BSD portiert. Es ist Teil der Standard- "QoS" in OpenWRT Barrier Breaker, Cerowrt und Gargoyle. Es verwendet eine (ziemlich gute) frühere Version namens sfqred mit einem innovativen automatischen Ratenanpassungsschema namens ACC.
Sie können also eine darauf basierende Box vor Ihrem fehlerhaften Link zuschlagen, den QoS-Ratenbegrenzer (der nur geringfügig unter den Einstellungen für eingehende und ausgehende Nachrichten Ihres Anbieters liegt, damit Sie die Kontrolle übernehmen) + fq_codel aktivieren und für alle Benutzer eine viel bessere Leistung erzielen . Ich meine erstaunlich besser: siehe die ietf-Demo unten, den Bericht an die iccrg-Arbeitsgruppe am ietf usw.
Weitere Informationen zum Bufferbloat-Problem und den Korrekturen dafür finden Sie unter:
http://www.bufferbloat.net/projects/cerowrt/wiki/Bloat-videos
Wir versuchen (natürlich), verschiedene ISP-CPE-Anbieter davon zu überzeugen, aufmerksam zu sein, ebenso wie Cablelabs, die vor einigen Monaten eine wunderbare Studie über dieses neue Material veröffentlicht haben, die auch einige Details zum aktuellen Fehlverhalten von Kabelmodems enthält.
http://www.cablelabs.com/downloads/pubs/Active_Queue_Management_Algorithms_DOCSIS_3_0.pdf
quelle
Was Sie sehen, ist völlig typisch. Viele Dienstanbieter werden das Limit bewerten und / oder einen QoS-Mechanismus verwenden, um die Priorität von ICMP (einschließlich herkömmlichem Ping und Traceroute) zu senken, wie es zeitweise bei Denial-of-Service-Angriffen verwendet wurde.
Während eine Verbindung nicht überlastet ist, wirkt sich die verringerte Priorität auf nichts aus, da kein Datenverkehr in die Warteschlange gestellt wird. Während dieser Zeit bleibt Ihre Latenz gering, da die ICMP-Pakete sofort weitergeleitet und nicht verzögert werden.
Wenn die Verbindung überlastet ist, erhalten Warteschlangen mit höherer Priorität mehr Aufmerksamkeit. Abhängig vom Warteschlangenmechanismus werden möglicherweise mehrere Pakete aus einer Warteschlange mit höherer Priorität für jedes Paket aus einer Warteschlange mit niedrigerer Priorität oder sogar nur dann weitergeleitet, wenn sich in einer Warteschlange mit höherer Priorität nichts befindet. In jedem Fall wird ein Paket, das in eine Warteschlange mit niedrigerer Priorität verwiesen wird, im Allgemeinen länger zurückgehalten als auf einer Verbindung ohne Überlastung, was die Latenz erhöht.
quelle
Sie leiden wahrscheinlich unter Bufferbloat und möchten AQM (Active Queue Management). Ich habe ein Skript für Linux geschrieben, das dies ziemlich einfach macht:
Sie speichern das Skript einfach als
traffic-shaping
undchmod a+x
und führen es als root aus (natürlich nach dem Lesen des Quellcodes).Für Ihren Anwendungsfall würde ich vorschlagen
quelle
linux-lowlatency
Kernel ausführen müssen , damit das System alle Pakete verarbeiten kann.