我听说提供精确一次交付几乎是不可能的。同时,据说 TCP 可以提供有保证的交付。如果 TCP 不提供精确一次的保证交付,那么它是否提供最多一次或至少一次
最佳答案
我们可以说 TCP 提供了at-least-once delivery 和exactly-one 处理,关于以下定义:
- At-least-once delivery:一条 TCP 消息将至少被传送到目的地一次。更具体地说,如果没有收到 ACK(知识),它将在特定的超时时间内继续重新传输,以便最终交付。但是,如果这些重传中的一些没有丢失(只是延迟了),那么将传送多份消息副本。
- Exactly-once processing:每个 TCP 消息将被目的节点恰好处理一次。更具体地说,目的地将注意重复消息(检查每条收到消息的 ID)。因此,即使一条消息被传递了两次,目标节点也只会处理它一次(将它传递给应用程序级别),而忽略后来收到的重复项。
关于tcp - TCP(传输控制协议(protocol))是否提供至多一次、至少一次或恰好一次交付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774721/