In a distributed system, to ensure the peer has received a message correctly, we may use application level acknowledgement mechanism (ACK).
But when the client and the server is connecting via TCP or WebSocket, if the application level ACK for a sent message is not received by the sender, does it mean the connection is broken and should be reconnected?
Is it possible for the data or application level ACK is missing from application level but actually successfully transmitted in TCP level? (In this case, resending the message may be economical.)
question from:
https://stackoverflow.com/questions/65848616/should-i-resend-or-reconnect-if-the-acknowledgement-for-a-sent-message-is-missin 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…