参考:面试必备HTTP之TCP三次握手及四次挥手详解 - 简书
同一个tcp连接可能搭载几个http请求。所以两个http请求,既可能用一个tcp连接实现,也可能是两个tcp连接实现。
第一次握手,
客户端发送: 连接请求(syn=1)+客户端的序列号x+是否有需要验证确认的序列号(ack = 0,验证未开启)
第二次挥手,
服务器端发送:同意请求(syn=1)+服务器端的序列号y+是否有需要客户端验证确认的序列号(ack = 1, 期望x+1)
第三次挥手,
客服端先验证收到的(x+1和同意请求syn=1),验证成功后
客户端发送:最终确认(syn=0) +服务器端期望值(x+1) + 是否有需要服务器端验证确认的序列号(ack =1,表示服务器需验证y+1)
服务器端收到后,验证y+1和最终请求syn=0,验证成功后,连接建立。
syn同步的synchronized, ack告知收到acknowledge,同步应该指的是服务器和客户端的状态及时同步,3次握手服务器端syn和ack一起发送,4次挥手时服务器端先发送ack,确认准备好关闭连接时发送fin(相当于syn)