计算机网络之---TCP连接管理

TCP连接管理

TCP(传输控制协议)是面向连接的协议,在数据传输之前需要建立连接,在数据传输完成后需要断开连接。TCP连接的建立和断开都遵循特定的规则,分别称为三次握手 (Three-Way Handshake)和四次挥手(Four-Way Handshake)。它们确保双方能够可靠地建立和关闭连接。

三次握手(TCP连接的建立)

三次握手是为了在客户端和服务器之间建立可靠的TCP连接。这个过程确保双方都能发送和接收数据,并且双方的缓冲区准备好接收数据。

三次握手的过程:
  1. 第一次握手:客户端发送SYN包(同步标志位),告诉服务器客户端请求建立连接。

    • 客户端 -> 服务器:SYN = 1, seq = X(X为随机生成的序列号)

    这一步表示客户端请求连接,并初始化一个序列号X。

  2. 第二次握手:服务器收到SYN包后,向客户端发送SYN-ACK包,表示愿意建立连接,并且确认收到客户端的请求。

    • 服务器 -> 客户端:SYN = 1, ACK = 1, seq = Y(服务器随机生成的序列号), ack = X + 1(确认号,表示服务器已收到客户端的SYN包)

    服务器会发送一个SYN包来表示自己准备好了,同时确认客户端的SYN包。

  3. 第三次握手:客户端收到服务器的SYN-ACK包后,向服务器发送ACK包,确认收到服务器的响应,并且连接建立。

    • 客户端 -> 服务器:ACK = 1, seq = X + 1, ack = Y + 1

    客户端向服务器确认自己的序列号,并最终完成连接建立。

至此,客户端和服务器之间的连接建立完成,可以开始数据传输。

四次挥手(TCP连接的断开)

四次挥手是为了安全地断开TCP连接,确保双方的通信都已结束。这个过程确保数据能够完全传输,并且双方都能正常关闭连接。

四次挥手的过程:
  1. 第一次挥手:客户端发送FIN包,表示它已经完成数据的发送请求,准备关闭连接。

    • 客户端 -> 服务器:FIN = 1, seq = A

    客户端告诉服务器自己已经没有数据发送了,要求关闭连接。

  2. 第二次挥手:服务器收到FIN包后,发送ACK包,确认客户端的关闭请求,并且自己仍然可以继续接收数据。

    • 服务器 -> 客户端:ACK = 1, seq = B, ack = A + 1

    服务器确认客户端的连接关闭请求,并且告知客户端自己准备好关闭连接。

  3. 第三次挥手:服务器发送FIN包,表示它已经完成数据的发送,也准备关闭连接。

    • 服务器 -> 客户端:FIN = 1, seq = C

    服务器告诉客户端自己已经没有数据发送了,准备关闭连接。

  4. 第四次挥手:客户端收到服务器的FIN包后,发送ACK包,确认收到服务器的关闭请求,完成连接的断开。

    • 客户端 -> 服务器:ACK = 1, seq = A + 1, ack = C + 1

    客户端确认服务器的关闭请求,最后断开连接。

至此,双方的连接关闭完成。

三次握手和四次挥手的区别

  1. 三次握手用于连接的建立,四次挥手用于连接的断开。
  2. 三次握手 是为了确保客户端和服务器都准备好开始数据传输,而四次挥手是为了确保数据传输完毕并且双方都关闭连接。
  3. 在三次握手过程中,连接的状态是全双工的,双方可以发送数据。而在四次挥手过程中,虽然双方在不同的时间关闭连接,但都确保了数据可以可靠地传输完毕。

四次挥手什么时候断开

  • 如果使用 HTTP/1.1HTTP/2 ,且启用了长连接(默认情况下启用),则 TCP 连接 只会建立一次。它只会在第一次请求时建立一次,后续请求会复用该连接,直到超时或主动关闭连接。
  • 如果使用 HTTP/1.0 且没有启用长连接,则每次请求会建立一个新的 TCP 连接。
相关推荐
济6171 小时前
linux 系统移植(第十七期)---Linux 内核移植(5)-- 修改网络驱动(2)--- Ubuntu20.04
linux·运维·网络
qq_406176142 小时前
深入剖析TCP/IP协议:互联网通信的基石
网络
QH139292318803 小时前
罗德与施瓦茨 R&S®ZNL6 ZNL20 ZNB8矢量网络分析仪
网络
梦6504 小时前
网络传输七层协议
开发语言·网络·php
工业甲酰苯胺4 小时前
TCP三次握手与四次挥手:两个“社恐”程序的破冰与告别仪式
网络
AUTOSAR组织4 小时前
深入解析AUTOSAR框架下的TCP/IP协议栈
网络协议·tcp/ip·汽车·autosar·软件架构·软件·培训
googleccsdn4 小时前
ENSP Pro LAB笔记:配置M-LAG双归接入三层网络(V-STP + Monitor Link + OSPF)
网络·笔记·网络协议
lifeng43215 小时前
2、 网络安全基础 -- 传输层详解 -- DDos攻击
网络·安全·web安全
Y.O.U..5 小时前
Kubernetes-网络策略
网络·容器·kubernetes