Say I have an SSH tunnel from my local machine to a database on a remote server.
If I send a query into the tunnel, it comes out on the other side, but halfway through sending the query or receiving the result the Database triggers a TCP RST, how does SSH handle that?
- Wait to ACK packets on either side until it has received an ACK from the endpoints?
- Buffer application level data and resend until successful?
My worry is that if the tunnel ACKs before the other side ACKs, and the other side instead sends a RST then there is no way to propagate that RST back. Both sides will just hang.