Tcp/ip

Liebe/-r Experte/-in,

das Thema 3-Way-Handshake verstehe ich noch nicht so in der Tiefe.

Mein Problem sieht so aus, dass der Server erst fast einen Minuten später ein SYN-ACK-Paket als Reaktion auf das client-seitige SYN-Paket schickt. Das führt zu einem Fehler:
„TCP packet out of state: First packet isn’t SYN.
tcp_flags: SYN-ACK“

Bis wie lange darf es zwischen einem SYN- und dem folgenden SYN-ACK-Paket vom Gegenüber dauern, sodass das SYN-ACK-Paket nicht aus dem Zusammenhang mit dem SYN-Paket gerissen wird?

Woran liegt das, dass der Server bei der Antwort länger braucht?

Gruss und Dank im voraus!
peter

Das ist schon sehr ungewöhnlich, daß dies so lange dauert. Ein Server müsste
schon unter extrem hoher Last stehen wenn der Kernel nicht mal mehr Zeit hat
diese Pakete zeitnah (in wenigen Millisekunden) rauszuschicken.

Kannst Du ein tcpdump auf dem Server machen und den ganzen Traffic dort
anschauen? Um welche Betriebsysteme und Netzwerk-Infrastruktur handelt es
sich? Ist der Client direkt mit der Server verbunden (im gleichen LAN) oder liegen
dazwischen Firewalls, Loadbalancer, Router etc.?

viele Grüße

Falko

Vielen Dank, Falko, für Deine schnelle Antwort!

Weder den Client noch den Server (beides Unix) kann ich administrieren, stattdessen bin ich für die Firewall dazwischen zuständig. Die Fehlermeldung stammt von der Firewall, die das SYN-ACK nicht als solches erkannt hat.

Habe mittels tcpdump festgestellt, dass die Verspätung des SYN-ACK-Paketes um 51 Sekunden zum Drop des Paketes durch die Firewall führt.

Auch habe ich von meinem PC aus die Verbindung mit demselben Server simuliert, die jedoch erfolgreich ablief. Also es liegt nicht am Server. Außerdem kann der Client sonst auch erfolgreich mit anderen über andere Porte kommunizieren. Zwar ist der Client nicht der einzige mit demselben Problem, aber viele andere im selben Subnetz haben jedoch kein Problem. Übrigens geht es um den Service tcp/2099, mit dem ich auch nicht vertraut bin.

Viele Grüße
peter

Hi,

hier noch einmal kurz erklärt:
http://www.inetdaemon.com/tutorials/internet/tcp/3-w…

Eine Minute ist definitiv zu lange, daß sollte mehr oder weniger sofort gehen.

Viele Grüsse

Andreas

Schönen Dank, Andreas!
peter

Hallo Peter,
leider schreibst du nicht welche Umgebung du benutzt also Betriebssysteme
Switche Router etc. so kann ich dir nur eine sehr allgemeine Antwort geben.

Normalerweise wird nach dem Syn unmittelbar auch das Syn-Ack Paket kommen
ausnahmen wären das zb der Port (TCP Port) der angefragt wird nicht offen ist.

Du kannst folgendes machen , installiere dir Whireshark und baue einen Capture
Filter der nur captured was zwischen den beiden Hosts (Sender/Empfänger)
stattfindet und prüfe ob das Syn-Ack welches als erste Reaktion auf das gesendete
Syn Paket kommt eine Sequenznummer die +1 der des Syn Paketes sein muss ist
sie das nicht kann man ansetzen.
Wenn du eine Hardware Firewall dazwischen hast such mal in den Stateful
Inspection nach:

Drop out of state TCP packet

schalte das aus viele Firewalls haben ein Problem damit.

Alternativ kannst du mir mal einen capture dieser Sequenz zusenden.

Die Fehler die am häufigsten auftreten sind neben defekten Treibern ,
Netzwerkkarten und Switchen oft Software Firewalls sollte dein Host ein Windows
BS oder Linux sein schalte mal die FW komplett aus

Der Fehler den du hast besagt normalerweise das ein Syn-Ack mit
Sequenznummer +1 des gesendeten Syn ausgeblieben ist einen Timeout wird mit
dem Parameter maximum segment livetime gesetzt allerdings ist der
normalerweise korrekt eingestellt.

Für mich sieht der Fehler im ersten Moment so aus als wenn der Empfänger das
Syn Paket nicht akzeptiert oder es verworfen wird wohl aber mitbekommt das ein
gegenüber eine Verbindung aufbaue möchte.
Ohne einen Dump ist das alles aber Spekulation.

MfG

Andre

Vielen Dank, Andre!

Die Fehlermeldung
„TCP packet out of state: First packet isn’t SYN.
tcp_flags: SYN-ACK“
stammt von der Firewall, die das SYN-ACK nicht als solches erkannt hat.

Habe mittels tcpdump festgestellt, dass die Verspätung des SYN-ACK-Paketes um 51 Sekunden zum Drop des Paketes durch die Firewall führt.

Inzwischen haben wir das Problem, das an einem Router lag, behoben.

Viele Grüße
peter

Hallo Peter
super das du das Problem los bist, TCP Probleme die so weit unten bereits
auftauchen sind meisst von defekter Hardware oder fehlerhaftem Karten Treiber.

Wenn du das nächste mal solche Effekte hast versuch einfach wenn möglich
Geraete zu überbrücke das geht oft viel schneller als sniffen und suchen, leider je
nach Gegebenheit ist das nicht immer möglich, aber wenn es möglich ist oft der
schnellste Weg.

grüsse aus Münster

Andre

wie überbrücken, Andre?

Dank und Gruss
peter

Die Zeit liegt normalerweise im zweistelligen Sekundenbereich. Woran das bei diesem Server liegt, kann ich von hier aus nicht beurteilen!

GG