it-swarm.com.de

Wodurch wird ein RST-Flag (TCP / IP Reset) gesendet?

Ich versuche herauszufinden, warum die TCP/IP-Verbindung meiner App alle 10 Minuten (genau, innerhalb von 1-2 Sekunden) ausfällt. Ich habe Wireshark gestartet und festgestellt, dass das andere Ende nach 10 Minuten Inaktivität ein Paket mit gesetztem Reset-Flag (RST) sendet. Eine Google-Suche sagt mir, "das RESET-Flag bedeutet, dass der Empfänger verwirrt ist und die Verbindung abbrechen möchte", aber das ist ein wenig zu kurz für das Detail, das ich brauche. Was könnte das verursachen? Und ist es möglich, dass ein Router auf dem Weg dafür verantwortlich ist, oder würde dies immer vom anderen Endpunkt kommen?

Edit: Es befindet sich ein Router (insbesondere ein Linksys WRT-54G) zwischen meinem Computer und dem anderen Endpunkt. Muss ich in den Routereinstellungen nach etwas suchen?

109
Luke

Ein "Router" kann alles Mögliche tun - insbesondere NAT, das jede Menge Fehler mit sich bringt ...

Ein Grund, warum ein Gerät eine RST sendet, ist der Empfang eines Pakets für einen geschlossenen Socket.

Es ist schwierig, eine eindeutige, aber allgemeine Antwort zu geben, da jede mögliche Perversion seit ihrer Einführung auf TCP besucht wurde und alle möglichen Personen RSTs einfügen, um den Datenverkehr zu blockieren "Nationale Firewalls" funktionieren zum Beispiel so.)

78
Will Dean

Führen Sie einen Paketsniffer (z. B. Wireshark) auch auf dem Peer aus, um festzustellen, ob es der Peer ist, der den RST sendet, oder jemand in der Mitte.

19
Alexander

Ich habe gerade einige Zeit damit verbracht, dieses Problem zu beheben. Keine der vorgeschlagenen Lösungen hat funktioniert. Es stellte sich heraus, dass unser Systemadministrator versehentlich zwei unabhängigen Servern, die verschiedenen Gruppen angehören, jedoch im selben Netzwerk sitzen, dieselbe statische IP zugewiesen hat. Die Endergebnisse waren zeitweise unterbrochene VNC-Verbindungen, Browser, die mehrmals aktualisiert werden mussten, um die Webseite abzurufen, und andere seltsame Dinge.

11
OutputLogic

Einige Firewalls tun dies, wenn eine Verbindung für x Minuten inaktiv ist. Einige ISPs haben ihre Router auch aus verschiedenen Gründen darauf eingestellt.

In der heutigen Zeit müssen Sie diesen Zustand angemessen handhaben (nach Bedarf wiederherstellen).

4
Brian Knoblauch

Wenn ein Router NAT ausführt, insbesondere ein Low - End - Router mit wenigen Ressourcen, altert er die ältesten TCP) - Sitzungen zuerst. Dazu setzt er das Flag RST im Paket, das der empfangenden Station mitteilt, die Verbindung (sehr unauffällig) zu schließen, um Ressourcen zu sparen.

4
Da Neck

RST wird von der Seite gesendet, die das aktive Schließen ausführt, da es die Seite ist, die die letzte ACK sendet. Wenn es also FIN von der Seite empfängt, die das passive Schließen in einem falschen Zustand ausführt, sendet es ein RST-Paket, das die andere Seite darauf hinweist, dass ein Fehler aufgetreten ist.

4
Vishal gupta

Beachten Sie, dass viele Linux-Netfilter-Firewalls falsch konfiguriert sind.

Wenn Sie etwas haben wie:

-A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT

-A FORWARD -p tcp -j REJECT - Mit tcp-reset ablehnen

dann kann eine Neuordnung der Pakete dazu führen, dass die Firewall die Pakete als ungültig ansieht und somit Zurücksetzungen generiert, die dann ansonsten funktionsfähige Verbindungen unterbrechen.

Neuanordnungen sind besonders bei einem drahtlosen Netzwerk wahrscheinlich.

Dies sollte stattdessen sein:

-A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT

-A FORWARD -m state --state INVALID -j DROP

-A FORWARD -p tcp -j REJECT - Mit tcp-reset ablehnen

Grundsätzlich, wann immer Sie haben:

... -m state --state RELATED, ESTABLISHED -j ACCEPT

es sollte sofort gefolgt werden von:

... -m state --state INVALID -j DROP

Es ist besser, ein Paket zu verwerfen, als ein möglicherweise protokollstörendes TCP-Reset zu generieren. Zurücksetzen ist besser, wenn es sich nachweislich um das Richtige handelt, das gesendet werden muss ... da dadurch Zeitüberschreitungen vermieden werden. Aber wenn es eine Chance gibt, dass sie ungültig sind, können sie diese Art von Schmerz verursachen.

0
MaZe