iptables TCP retransmissions filtern

14/03/2013 - 16:36 von Marcel Müller | Report spam
Hallo,

kann man mit iptables gezielt TCP Retransmissions verwerfen?

Hintergrund: ich habe eine Anwendung, an der ich nichts àndern kann, die
stàndig riesige Stürme von TCP Retransmissions verursacht (Citrix
Receiver unter XP). Diese werden dann konsequenterweise mit einer ebenso
großen Anzahl von TCP DUP ACK quittiert. Das Problem ist, dass dieses
Verhalten den DSL-Upstream komplett dicht macht, was in Folge zu
schlechtem Durchsatz führt und auch die sinnvolle Funktion des Programms
selber verhindert.

Jetzt war meine Idee, für diesen Zweck über den Linux-Server als Gateway
zu gehen, und diesen anzuweisen, nicht alle Pakete blind weiterzuleiten,
sondern die Retransmissions für einen bestimmten Server/Port einfach zu
verwerfen. Nur habe ich keine Idee, wie ich das so einschrànken kann,
dass nur diese erwischt werden. Es gibt da zwar spezielle TCP-Optionen
(--tcp-flags), aber ehrlich gesagt sagen mir die nicht viel und ich weiß
nicht, wie ich damit Retransmissions einschrànken soll.


Marcel
 

Lesen sie die antworten

#1 Juergen P. Meier
14/03/2013 - 17:14 | Warnen spam
Marcel Müller :
kann man mit iptables gezielt TCP Retransmissions verwerfen?



Wenn man sich gerne in die Fuesse schiesst, ja.

Hintergrund: ich habe eine Anwendung, an der ich nichts àndern kann, die
stàndig riesige Stürme von TCP Retransmissions verursacht (Citrix
Receiver unter XP). Diese werden dann konsequenterweise mit einer ebenso
großen Anzahl von TCP DUP ACK quittiert. Das Problem ist, dass dieses



Ein "TCP DUP ACK" gibts bei TCP nicht. Vermutlich meinst du das, was
der TCP-Sequence-Analyser von Wireshark dir anzeigt.

Die Retransmissions siehst du vermutlich, weil die ACKs nicht
angekommen sind. Wenn du jetzt die Retransmissions oder die
vermeintlich doppelten ACKs rausfilterst, geht garnichts mehr.

Verhalten den DSL-Upstream komplett dicht macht, was in Folge zu
schlechtem Durchsatz führt und auch die sinnvolle Funktion des Programms
selber verhindert.



Citrix ist auch nicht auf irgend eine andere Umgebung als ein LAN
ausgelegt. das ganze Protokoll ist hochgradig empfindlich bezueglich
RTT jenseits von 10ms, Jitter (>5%) und vor allem homeophatischer
Packetloss ("Wie, eines von 1 mio paketen ging verloren? PANIK!!!1").

Und wenn du einen Pfad hast, wo wegen diverser Gruend die Reihenfolge
von Pakteten veraendert wird, steigt Citrix ganz aus.

Nicht umsonst verkaufen dir die Einschlaegigen Hersteller speziell
fuer Citrix "WAN-Beschleuniger", die groestenteils nur TCP-Relays
spielen - was bei Citrix spuerbare Verbesserung ausserhalb eines LAN
bedeutet.

Jetzt war meine Idee, für diesen Zweck über den Linux-Server als Gateway
zu gehen, und diesen anzuweisen, nicht alle Pakete blind weiterzuleiten,
sondern die Retransmissions für einen bestimmten Server/Port einfach zu
verwerfen. Nur habe ich keine Idee, wie ich das so einschrànken kann,



Ganz Besonders Schlechte Idee - denn damit wird citrix bei dir garnicht
mehr funktionieren.

dass nur diese erwischt werden. Es gibt da zwar spezielle TCP-Optionen
(--tcp-flags), aber ehrlich gesagt sagen mir die nicht viel und ich weiß
nicht, wie ich damit Retransmissions einschrànken soll.



Andere Idee: Bastel dich auf beiden seiten ein TCP-Relay, z.B. mit
iprelay oder auch socks-proxies. Halt irgenwas das puffert und vor
allem auf Layer-4 terminiert.

Eventuell liegt die Ursache aber auch einfach direkt am Endpunkt (dem
XP Rechner), hast du da vielleicht eines dieser Unsaeglichen
Schrott-Addons auf dem Netzwerkadapter gebunden (u.A. Mickeysoft's
QoS-Bandwidth-Shaping, oder irdgendwelchen obskuren VPN-"Experience-
Verbesserer") welche dir hier in die Fuesse schiessen.
U.A. der "AnyConnect"-Muell von Cisco verstuemmelt dir gerne den
Netzwerkstack (um die VPN-Performance "zu verbessern").

HTH,
Juergen
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)

Ähnliche fragen