tcp三次握手
1,客户端采用tcp协议向服务器端发送带有syn的数据,等待服务器确认
2,服务器接收到客户端发送过来的syn数据,必须确认syn,并发送ack标志,并会向客户端发送一个syn数据标识
3 ,客户端接收到服务器发送过来的ack+syn包后,自己也会向服务器一个ack的包,这样服务器端和客户端就建立起链接了,可以开始传输数据
tcp四次挥手
-
当客户端的数据传输到尾部时,客户端向服务器发送带有FIN标志的数据包,使其明白自己准备断开通信了。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
-
因为TCP的通信是使用全双工通信的,所以在断开连接的时候也应该是双向的;当服务器收到带有FIN标志的数据包时,
其必不会直接发送FIN标志断开通信的请求,而是先发送一个带有ACK标志的应答信息,使客户端明白服务器还有数据要进行发送。 -
服务器的数据发送完成后,向客户端发送带有FIN标志的数据包,通知客户端断开连接。
-
当客户端收到FIN后,担心某些不可控制的因素导致服务器不知道他要断开连接,会发送ACK进行确认,同时把自己设置成TIME_WAIT状态并启动定时器,在TCP的定时器到达后客户端并没有接收到请求,会重新发送;当服务器收到请求后就断开连接;当客户端等待2MLS(两倍报文最大生存时间)后,没有收到请求重传的请求后,客户端这边就断开连接,整个TCP通信就结束了。