Eingabe-Traffic-Shaping

Eingabe-Traffic-Shaping

Ich weiß, dass ich den Ausgangsverkehr mit tcoder einem ähnlichen Tool steuern kann. Allerdings möchte ich jetzt den Eingangsverkehr steuern – genauer gesagt, ich möchte das Herunterladen von Dateien eines bestimmten Typs über eine langsame, verlustbehaftete Verbindung priorisieren.

Ich weiß, dass der Grund tcnur darin besteht, den Ausgangsverkehr zu beeinflussen: Der Host selbst hat keine direkte Kontrolle über die Menge des Eingangsverkehrs. Andererseits sind in TCP einige Maßnahmen eingebaut, die verhindern, dass der TCP-Verkehr eine langsame Verbindung überlastet. Kann ich also etwas im TCP-Header so manipulieren, dass der Remote-Host denkt, meine Verbindung sei langsamer als er denkt?

Angenommen, ich kann mit auf beiden Verbindungstypen die entsprechende Markierung setzen iptables. Gibt es eine Möglichkeit, die Eingangsbandbreite von Verbindungen des ersten Typs zu reduzieren, aber nur, wenn Verbindungen des zweiten Typs vorhanden sind?

Antwort1

Sie beziehen sich auf die TCP Explicit Congestion Notification (http://en.wikipedia.org/wiki/Explicit_Congestion_Notification.) Ich glaube nicht, dass das, was Sie suchen, technisch möglich ist, da Sie die Pakete zu dem Zeitpunkt, an dem das Paket vom Linux-Server selbst empfangen wurde, bereits erhalten haben und versuchen, sie im Nachhinein anzupassen.

Wenn Sie QOS oder Traffic Shaping wünschen, sollte dies realistischerweise bei Ihrem Upstream-Anbieter und nicht beim Empfänger erfolgen. Mit anderen Worten: Das gesamte Traffic Shaping wird auf der Quellseite und nicht auf der Zielseite durchgeführt.

Antwort2

Es gibt sehr gute Lösungen dafür, aber leider ist keine davon kostenlos unter Linux verfügbar. Das Verzögern oder Löschen der Pakete funktioniert sehr, sehr schlecht. Sie können es tun, wenn es sein muss, aber die Ergebnisse sind bestenfalls angemessen. Bis Sie ein Paket empfangen haben, hat es bereits die eingehende Bandbreite verbraucht, die Sie schützen möchten.

Der richtige Weg besteht darin, die ausgehenden TCP-Fensteranzeigen zu verstümmeln und der anderen Seite ein kleineres Fenster anzubieten. Es gibt Hardware- und Softwareimplementierungen, die dies tun, aber meines Wissens ist keine davon kostenlos unter Linux verfügbar.

DasSkripterklärt eine Möglichkeit, dies zu tun, und enthält einige sehr detaillierte Kommentare, in denen die Theorie und die Einschränkungen erläutert werden.

verwandte Informationen