分为两个部分:
连接阶段:三次握手
断开连接:四次挥手
3次握手
1. 客户机向服务器发送报文段,其中syn标志位置1,表示客户机同服务器想要建立一个连接,此时报文段中不能有数据,其中包括客户机随机生成的数据序列号
(SYN=1,SEQ=client_isn)
2. 服务器同意进行连接,会发送一个报文段,syn还是为1,在此期间,服务器会为此次连接分配缓存(资源),同时选择自己的初识序列号,并告知客户机(seq),同时发送ack表示已收到客户机发送过来的报文段
(SYN=1,SEQ=SERVER_isn , ack=client_isn+1)
3. 当客户机已确认收到服务器的报文段,会发送一个ack,此时syn标志位就不在置为1,而是0(是为了向服务器告知我收到你同意我进行连接的报文段),此报文段中可以包含数据!
( SYN=0 , SEQ=client_isn + 1 ,ack = server_isn + 1)
四次挥手:
1.客户机会向服务器发送一个TCP FIN控制报文段(请求服务器关闭连接)
2.当服务器收到Fin,会发送一个ack,表明已收到,准备关闭连接,并再发送一个Fin
3.当客户机收到Fin,会发送一个ack,发送完进入等待状态(一般30秒),确保服务器关闭连接并释放资源(如果此时又受到fin,则重复发送ack)
4.服务器收到ack,关闭连接