No, TCP RST is not a graceful way to end the session
Practical networking question -
Posit a server and a client. The client is running a set of clients of the server, essentially performance testing the server. In their infinite wisdom, the clients and servers believe that the appropriate way to close TCP sessions is send TCP RSTs in response to the first TCP FIN they get from the other side. Charming, I know. Anyway, netstat is reporting the window size being ratcheted down to zero on a lot of the sessions between the client and server, which is making me wonder if the RSTs are somehow leading to wonky buffer behavior on the other sessions between the two talkers. (I know, this is not an adequately formulated idea, I'm thinking the behavior through, thought I'd see if anyone else had seen something specific, like known reporting behavior of netstat or yeah, the kernel tries to be helpful like that)
On an entirely unrelated note, the correct way to close a TCP session is not to send a RST. That will abort the session, but that's the whole point: it will abort it, and it is expected that the other side will do whatever cleanup it does of an abnormally terminated session. It's like ending all phone conversations with just hanging up on the other party: sure, it works, but it's not good practice.
Posit a server and a client. The client is running a set of clients of the server, essentially performance testing the server. In their infinite wisdom, the clients and servers believe that the appropriate way to close TCP sessions is send TCP RSTs in response to the first TCP FIN they get from the other side. Charming, I know. Anyway, netstat is reporting the window size being ratcheted down to zero on a lot of the sessions between the client and server, which is making me wonder if the RSTs are somehow leading to wonky buffer behavior on the other sessions between the two talkers. (I know, this is not an adequately formulated idea, I'm thinking the behavior through, thought I'd see if anyone else had seen something specific, like known reporting behavior of netstat or yeah, the kernel tries to be helpful like that)
On an entirely unrelated note, the correct way to close a TCP session is not to send a RST. That will abort the session, but that's the whole point: it will abort it, and it is expected that the other side will do whatever cleanup it does of an abnormally terminated session. It's like ending all phone conversations with just hanging up on the other party: sure, it works, but it's not good practice.