如题,TCP连接中,connect连接成功的标准是什么?
认为在客户端发送完第三次ACK后即表明connect连接成功。
上图为TCP三次握手建立连接的过程:
1、客户端发送SYN至服务器端,客户端状态变为SYN-SENT;
2、服务器端在接收到数据请求后,服务器状态回应数据包后,状态变为SYN-RCVD;
3、客户端在接收到回应的数据包后,回应第三次ACK,客户端状态变为ESTAB-LISHED;
4、服务器端接收到数据包后,服务器的状态才能进入ESTAB-LISHED;这时才能完成连接,可以进行数据传送;
可以看出客户端在发送完第三次ACK后,状态立刻变为ESTAB-LISHED,客户端不会去在意自己发送的ACK是否丢失,客户端可以以ACK+DATA的格式来发送数据。当此数据包到达服务器端时,虽然服务器端的状态为SYN-RVCD,但其依然可以将DATA缓存下来,并且对ACK进行认证,即服务器端进入ESTAB-LISHED状态,最后将DATA提交给应用程序去处理。
因此认为,在客户端发送完第三次ACK后,自身状态变为ESTAB-LISHED,就表示connect成功返回,可以接收用户的数据。
本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com