想象一下2台机器A和B.即使有网络故障,A想要确保B接收到数据包P,如何实现?
情景1:
1)A通过网络将P发送给B.
问题:如果网络在步骤1失败,B将不会收到P而A不会知道它。
情景2,确认:
1)A通过网络将P发送给B.
2)如果收到P,则B发回ACK
问题:如果网络在步骤2失败,A将不会收到ACK,因此A无法可靠地知道B是否收到了P.
确认ACK会反过来推动问题进一步发展。
答案 0 :(得分:1)
这是一个已经研究多年的巨大问题。了解TCP协议,该协议保证数据将被传送或发送方(最终)知道传送可能已失败。
你可以在这里开始阅读:https://en.wikipedia.org/wiki/Transmission_Control_Protocol 但是网上有很多关于TCP的有用和有趣的网页。
或者您可以使用TCP并利用已经完成的工作。