如题,理论上来说在建立 TCP 连接之后,如果客户端收到东西应该有 ACK 回文,这样客户端就可以安全地释放资源,不用担心重发问题。
今天考虑到一种情况是,假设建立 TCP 连接后,客户端发出消息,但是始终等不到 ACK,这种时候客户端的行为是什么,如果超时重传的话,我看网上资料说超时时间通常在几百毫秒,是否意味着客户端可以在丢包的几百毫秒内确认连接已经中断?但是这里有一个疑惑,毕竟网络环境很复杂,以前经常有单程需要几千毫秒的通信,这种情况下客户端和服务器又是怎么知道对方的情况的呢。
应用层上的需求是,我想知道在建立三次连接后,如果应用层的客户端和服务端想要进行一次可靠的交换数据,是否仍要以三次握手的方式确认,才能保证可靠?而不能做一个比如客户端发出 0.5 秒内无断连则默认发送已经成功这种的逻辑?
====
上述问题在 tls 环境中结论有改变吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.