首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP:为什么在客户端发送的ACK中需要三次握手

TCP:为什么在客户端发送的ACK中需要三次握手
EN

Stack Overflow用户
提问于 2013-10-04 07:55:29
回答 2查看 241关注 0票数 0

为什么在客户端发送的ACK中需要三次TCP握手,为什么不能在第三步开始发送数据呢?服务器一收到数据就会知道客户端是否还活着。

EN

回答 2

Stack Overflow用户

发布于 2013-10-04 08:05:21

没有什么能阻止客户端在包含ACK的数据段中包含数据。

但是,客户端不应延迟发送此ACK以等待应用程序发送数据,因为它可能会影响服务器上的RTT估计。而使用SYN-cookies的服务器如果不能立即获得ACK,可能会使它们超时。

票数 1
EN

Stack Overflow用户

发布于 2013-10-04 08:12:09

典型的套接字编程应用程序接口将在“打开”方法处阻塞,直到它从主机接收到syn+ack为止。通信层应该在收到该消息后立即发送其重新确认,即使客户端将处于"open“方法中,它也不会有任何数据要发送。

如果套接字API包含"openAndSend“方法,该方法将尝试打开套接字并在尝试成功时发送一些数据,则一旦从主机接收到syn+ack,它就可以准备好传输数据。如果应用程序将使用大量短暂的连接,那么这样的事情可能是值得的,但我从未使用过这样的函数,也不知道它在多大程度上得到了支持。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19171010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档