HTTP三次握手与四次挥手
三次握手
1.当客户端与服务端通信时就需要建立TCP连接 TCP的连接是端到端 (IP点到点)
所以第一步由客户端发送syn(同步)
客户端---->服务端
syn (同步)
客户端生成 client_seq(客户端序列号)
第二步 服务端响应客户端 发送syn ack(英文单词的acknowledge 承让)
服务端---->客户端
syn+ack(同步+承认)
服务端生成server_seq (服务端序列号)
讲客户端生成的client_seq+1 (应答号)
第三步
客户端---->服务端
客户端发送ack确认
ack(承认)
server_seq+1 (应答号)
三次握手的原因
-
三次握手才可以阻止重复历史连接的初始化(主要原因)
-
如 当客户端发送两次请求 里面的client_seq第一次是90 第二次是100 第一次的syn到达比第二次快 所以先返回的是90+1 客户端发现不是所需要的100+1(既第二次发送的syn)就会终止链接
-
三次握手才可以同步双方的初始序列号
-
三次握手才可以避免资源浪费
四次挥手
第一部客户端发起 fin(结束)
第二步 服务端发起ack
第三步 服务发起fin(结束)
第四步客户端发起ack最终结束
序列号与应答号与三次挥手一至 自己的序列号是对方的应答号 自己的应答号是对方的序列号