TCP的三次握手和四次断开,就是TCP通信建立连接以及断开的过程
目录
[【1】TCP的三次握手过程 ---- TCP建立连接的过程](#【1】TCP的三次握手过程 ---- TCP建立连接的过程)
[【2】TCP的四次挥手 ---- TCP会话的断开](#【2】TCP的四次挥手 ---- TCP会话的断开)
【1】TCP的三次握手过程 ---- TCP建立连接的过程
三次握手的过程:
通信双方发送请求序列号,并且确认收到序列号的过程
第一次握手:
客户端向服务器发送SYN报文,等待确认,客户端进入SYN_sent状态
然后完成第一次握手
第二次握手:
服务端向客户端发送SYN<请求>以及ACK<确认>报文
1、服务端收到客户端的请求,会向客户端回复确认信息
2、服务端再向客户端发送一个SYN包,建立连接请求,并且服务器进入SYN_recv状态
完成第二次握手
第三次握手:
收到回复后,客户端向服务端发送ACK<确认>报文,发送完成客户端和服务器进入establishd状态
完成第三次握手
【2】TCP的四次挥手 ---- TCP会话的断开
四次断开:
断开TCP连接,需要客户端和服务端总共发送4个包进行确认连接的断开过程
第一次断开:
客户端发送FIN报文,用于关闭客户端到服务端的数据传送,客户端进入fin_wait_1状态
第一次断开完成
第二次断开:
服务端接收FIN报文后,向客户端发送ACK报文,表示已经收到了客户端发送是FIN报文,此时服务端处于close_wait状态
第二次断开完成
第三次断开:
服务端发送FIN报文到客户端,此时服务端处于last_ack状态
第三次断开完成
第四次断开:
客户端收到服务端发送的FIN报文后,对此发出ACK<确认报文>,客户端进入time_wait状态,此时的TCP没有完全断开,需要经过时间等待计时器设置的时间后,客户端才能进入closed状态
第四次断开完成
注意:
挥手的时候,不存在数据的传递,应用层没有东西,所以TCP的通信建立和断开过程分为,三次握手和四次断开