【发布时间】:2017-03-29 16:44:27
【问题描述】:
想象两台机器 A 和 B,A 想要确保 B 收到一个数据包 P,即使有网络故障,如何实现?
场景 1:
1) A 通过网络将 P 发送给 B。
问题:如果网络在第 1 步失败,B 不会收到 P,A 也不会知道。
带有确认的场景 2:
1) A 通过网络将 P 发送给 B。
2) B 如果收到 P,则返回 ACK。
问题:如果网络在第 2 步失败,A 将不会收到 ACK,因此 A 无法可靠地知道 B 是否收到了 P。
拥有多个 ACK 的 ACK 会反过来将问题推进 1 步。
【问题讨论】: