Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
992 views
in Technique[技术] by (71.8m points)

sockets - Should I resend or reconnect if the acknowledgement for a sent message is missing?

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

By tracking the suggested related questions, I have found some good answers on why application level ACK is necessary:

Are application level Retransmission and Acknowledgement needed over TCP?

Can websocket messages get lost or not?

if my application is using tcp protocal? then do i need a retry mechanism in my Application?

So if application level of problem may cause the message (or its application level ACK) can't be received successfully, a retry may be a meaningful remedial measurement.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...