Behebung von Bufferbloat im Heimnetzwerk


9

In unserem Heimnetzwerk werden Latenzen bei kontinuierlicher Netzwerk-E / A lächerlich. Es ist in Ordnung mit leichten Lasten, wird aber schnell unbrauchbar, wenn ich beispielsweise eine große Anzahl kleiner Dateien synchronisiere. Andere Übertragungen werden im Wesentlichen gestoppt. Pings kommen gerade noch durch.

Einfache Topologie - ein Breitbandmodem / WIFI-Router in einer einzigen Box mit einigen drahtlosen und einigen kabelgebundenen Clients.

Ich habe versucht, ifconfig wlan0/eth0 txqueuelen 1auf allen Clients zu setzen, dies scheint ein bisschen zu helfen, aber nicht viel.

Tipps willkommen: Wie soll ich Latenzprobleme diagnostizieren und beseitigen? Gibt es mehr Konfigurationseinstellungen, die ich auf Clients festlegen kann, oder könnte ein besserer WIFI-Router helfen?

Antworten:


3

Was Sie brauchen, ist Quality of Service und ein optimierbarer Warteschlangenalgorithmus. Ich würde ein Setup wie dieses empfehlen, wenn Sie gerne mit den Interna von Linux / FreeBSD spielen und etwas Geld übrig haben:

+------+     +--------+      +------+<----> Wireless Access Point
|Router|<--->|Firewall|<---->|Switch|
+------+     +--------+      +------+<----> Wired computers

Wenn es sich bei der Firewall um einen Linux- oder FreeBSD-Computer oder einen ähnlichen Computer mit zwei Netzwerkkarten handelt, können dem Datenverkehr einige erweiterte Regeln für Warteschlangen und Dienstgüte auferlegt werden.

Ich musste etwas Ähnliches tun, um das Zeitlimit für DNS-Suchvorgänge zu stoppen, wenn umfangreiche Datenübertragungen über eine langsamere Internetverbindung durchgeführt wurden.

Die andere Möglichkeit besteht darin, einen besseren Router zu erwerben - einen, auf dem Sie dd-wrt oder open-wrt installieren können, da diese beiden Firmwares meiner Meinung nach mehr QoS usw. bieten als Standard-Heimrouter.


2

Ich habe versucht, ifconfig wlan0/eth0 txqueuelen 1auf allen Clients einzustellen ...

Dieser Befehl reduziert die Puffergröße auf 1 Paket auf diesem Computer. Der wichtige Computer, auf dem dieser Befehl ausgeführt werden kann, ist der Engpass für Ihr Netzwerk, dh der Computer mit der Gigabit-Verbindung auf der einen Seite und der viel langsameren Verbindung zum Internet auf der anderen Seite. Somit ist es der Router Sie auf diesen Befehl ausführen möchten, nicht die Kunden!
Stellen Sie sicher, dass Sie den Befehl auf der richtigen Schnittstelle ausführen (nur auf der ausgehenden LAN-Schnittstelle) .

Dies funktioniert natürlich nur, wenn auf Ihrem Router Linux ausgeführt wird und Sie Befehle ausführen können. Glücklicherweise tun dies die meisten benutzerdefinierten Firmwares für Heimrouter (DD-WRT, OpenWRT, Tomato).


Es sollte beachtet werden, dass eine solche Reduzierung der Puffergröße die QoS beeinträchtigen kann. Wenn Sie also die QoS auf Ihrem Router verwenden, ist es möglicherweise besser, die Puffergröße in Ruhe zu lassen und nur QoS zu verwenden, um die Upload- / Download-Geschwindigkeit zu begrenzen von jedem Client, der deutlich unter dem maximalen Upload / Download der Verbindung liegt ... obwohl dies den offensichtlichen Nachteil hat, dass nicht genutzte Bandbreite verwendet wird, wenn nur eine Person verbunden ist.


1

QoS oder Quality of Service ist eine Art Reihenfolge und Festlegung von Prioritäten für die Pakete, die vom Router verarbeitet werden sollen. Genau dies sollte beachtet werden, wenn Sie solche Probleme haben. Versuchen Sie, im Konfigurationsfenster Ihres Routers zu suchen und QoS zu aktivieren ... Es ist besser, die manuellen Einstellungen in Ihrem Fall zu verwenden, aber Sie sollten die Prioritätsreihenfolge der Pakete kennen, die zuerst bis zuletzt verarbeitet werden sollen.


0

Ich verwende Windows und Mac anstelle von Linux, aber eine Lösung für mich bestand darin, von einem Netgear-Router direkt hinter der ISP-Box zu einem Edge-Router zu wechseln und intelligentes Routing einzurichten (das von Linux stammt).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.