Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What causes a TCP/IP reset (RST) flag to be sent?

Tags:

networking

tcp

People also ask

What triggers a TCP reset?

When one TCP peer is sending out TCP packets for which there's no response received from the other end, the TCP peer would end up retransmitting the data and when there's no response received, it would end the session by sending an ACK RESET (thisACK RESET means that the application acknowledges whatever data is ...

What causes an RST flag?

It uses flags to indicate a connection's state and provide information for troubleshooting. In particular, the reset flag (RST) is set whenever a TCP packet doesn't comply with the protocol's criteria for a connection.

What does TCP RST flag mean?

The TCP RST flag indicates that connection should be immediately terminated, and this happens mostly because of a fatal error.

When TCP reset is sent?

Forging TCP resets In the scenario above, the TCP reset bit was sent by a computer that was one of the connection endpoints. It is possible for a 3rd computer to monitor the TCP packets on the connection and then send a "forged" packet containing a TCP reset to one or both endpoints.


A 'router' could be doing anything - particularly NAT, which might involve any amount of bug-ridden messing with traffic...

One reason a device will send a RST is in response to receiving a packet for a closed socket.

It's hard to give a firm but general answer, because every possible perversion has been visited on TCP since its inception, and all sorts of people might be inserting RSTs in an attempt to block traffic. (Some 'national firewalls' work like this, for example.)


Run a packet sniffer (e.g., Wireshark) also on the peer to see whether it's the peer who's sending the RST or someone in the middle.


I've just spent quite some time troubleshooting this very problem. None of the proposed solutions worked. Turned out that our sysadmin by mistake assigned the same static IP to two unrelated servers belonging to different groups, but sitting on the same network. The end results were intermittently dropped vnc connections, browser that had to be refreshed several times to fetch the web page, and other strange things.


RST is sent by the side doing the active close because it is the side which sends the last ACK. So if it receives FIN from the side doing the passive close in a wrong state, it sends a RST packet which indicates other side that an error has occured.