TCP的“三次握手”与“四次分手”

2020-10-26 16:54:53 云杰通信 100

TCP的“三次握手”与“四次分手”

  HTTP的连接实际上就是TCP的连接,TCP的连接有什么特色呢?

  TCP连接

  在网络应答请求时,客户端与服务器端之间必须建立一个连接,当网络请求完成之后,双方就不再需要这个连接时就可以将连接释放。 而这里采用的是TCP连接,TCP的协议里面的连接,依靠是“三次握手”,释放时依靠“四次分手”。

  因此每一次的连接都是需要耗费资源和时间的。

  1. TCP 的“三次握手”:

  第一次握手:客户端想服务器发送一个SYN 标志位为1的包,以及初始序号X,包装在包的头的序列号字段里。

  第二次握手:服务器发回ACK(确认包),即将SYN和ACK标志位都命名为1,同时将序列号修改为X+1.

  第三次握手:客户端向服务器再次发送确认包(ACK),SYN标志位为0.ACK标志位为1.同时把服务器发过来的ACK包序列号字段+1.放在包中,发给服务器即ACK=Y+1

  2. TCP 的“四次分手”:

  因为TCP的断开需要发送四个包,因此被称之为 四次挥手。客户端或服务器端均可主动断开。在socket 编程中,任何一方执行close()操作即可产生分手操作。

  HTTP 协议的长连接和短连接,实质上就是TCP协议的长连接和短连接。

  短连接和长连接的工作原理是啥,有啥优势呢?

  短连接:client向server发送请求,server收到请求,双方建立连接。Client向server发送消息,server响应client.然后一次连接就完成了。此时,双方都可以发起close操作。

  短连接的优点:管理简单,发起的连接都是有效的连接。不需要额外的控制手段。

  长连接:client向server发送请求,server响应client的连接,双方建立连接。然后完成一次成功的响应请求,之后他们的连接不会主动关闭,后面的读写响应请求还会继续使用这个连接通道。