计算机网络
Yogae 健身狂魔

三次握手四次挥手,为什么是三次握手而不是二次握手?

客户端与服务端之间通过三次握手建立连接,四次挥手释放连接
所谓的三次握手是指建立一个 TCP 连接时,需要客户端和服务器总共发送三个包

三次握手

原理:
(1)发送端首先发送一个带有 SYN(synchronize)标志的数据包给接收方
(2)接收方接收后,回传一个 SYN/ACK 标志的数据包给发送方传递信息,表示已接收
(3)发送端收到接收方回传的数据包,会再次发送一个带有 ACK 标志的包进行确认,表示’握手’接收
三次握手的目的是连接服务器指定端口,建立 TCP 连接并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息

之所以是三次握手,是因为如果只有二次握手,在服务端收到 SYN 后,便向客户端返回一个 ACK 确认就进行 establish 状态,万一这个请求中间出现了网络问题没有发送给客户端,客户端一直处于等待状态,导致后面的信息无法正常接收。

四次挥手

原理:
改天再说,暂时不懂 😄


HTTP 的结构