tcp - TCP(传输控制协议(protocol))是否提供至多一次、至少一次或恰好一次交付

标签 tcp message-queue transmission reliable-message-delivery

我听说提供精确一次交付几乎是不可能的。同时,据说 TCP 可以提供有保证的交付。如果 TCP 不提供精确一次的保证交付,那么它是否提供最多一次或至少一次

最佳答案

我们可以说 TCP 提供了at-least-once deliveryexactly-one 处理,关于以下定义:

  • At-least-once delivery:一条 TCP 消息将至少被传送到目的地一次。更具体地说,如果没有收到 ACK(知识),它将在特定的超时时间内继续重新传输,以便最终交付。但是,如果这些重传中的一些没有丢失(只是延迟了),那么将传送多份消息副本。
  • Exactly-once processing:每个 TCP 消息将被目的节点恰好处理一次。更具体地说,目的地将注意重复消息(检查每条收到消息的 ID)。因此,即使一条消息被传递了两次,目标节点也只会处理它一次(将它传递给应用程序级别),而忽略后来收到的重复项。

关于tcp - TCP(传输控制协议(protocol))是否提供至多一次、至少一次或恰好一次交付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774721/

相关文章:

http - 如何通过 TcpStream 将 .jpg 作为 HTTP 发送?

c - 如何从服务器端发送消息队列以显示在客户端上?

python - 将流量重定向到其他网络服务器

network-protocols - 计算停止等待协议(protocol)中的利用率

tcp - Erlang中socket的 "packet"选项怎么能把tcp传输加速这么多?

java - 连接短时间中断后 TCP 连接被拒绝

c# - RemoteEndPoint 提供错误的 IP 地址

networking - 我的网络浏览器如何解析域名?

c# - 限制服务总线消息接收的 Azure Functions 速率

osgi - OSGi 服务的消息总线