三次握手
客户端->>服务器:建立TCP链接,SYN=1 SEQ=X(随机数)
服务器->>客户端:1.ACK=1(确认) ack=X+1(确认序列号)
2.SYN=1 SEQ=1(服务器将两个数据包合并发送)
服务器->>客户端:ack=y+1 ACK=1 SEQ=X+1
1.客户端为先发起连接的一端。
2.建立连接时,数据包没有数据报文,仅有TCP头部
四次挥手
客户端->>服务器:FIN=1 SEQ=X 释放连接
服务器->>客户端::ACK=1 SEQ=Y ackeq=x+1
服务器->>客户端:FIN=1 SEQ=Z ACK=1
客户端->>服务器:ACK=1 SEQ=X+1
1.为了防止第二步丢包带来的影响,第三步的断开链接数据包再次进行断开连接确认,两个数据包没有任何关系。 因为客户端到服务端的数据包传输结束。
2.数据传输是双向过程,23步合并可能会使数据传输未传输完,客户端接收信息不全或者服务端数据重传,所以服务端会将数据传输完毕后在进行第三步。
3.若第四步丢包,服务端不会断开,会导致服务器资源被占据,在客户端进行第四步后,会等待2msl(数据包最大传输时间)在关闭。服务端在接收第四步的数据包是断开连接。