前端开发人员需要了解三次握手和四次挥手的原因是,这些概念是在客户端和服务器端之间进行网络通信时所涉及到的 TCP 协议的基本知识。而对于前端来讲,如果页面中请求服务端数据时出现连接失败、延迟等问题,就需要对TCP协议中三次握手、四次挥手所对应的状态码有一定的理解。
⭐一、TCP协议初认识
TCP(Transmission Control Protocol)是一种面向连接的传输层协议,主要用于互联网中的无差别网络。它提供了全双工、可靠、有序、面向连接和基于字节流的数据传输服务,可以确保数据以正确的方式从一个应用程序传输到另一个应用程序。
TCP 协议具体包括以下特点:
面向连接:在 TCP 传输数据之前,必须经过建立连接阶段,即三次握手。数据传输完毕后,还需要进行四次挥手来关闭连接。这个过程保证了每个数据包都能够通过可靠的方式被发现,传递到其目录地。
全双工:TCP 连接支持全双工模式,即两端可以同时发送和接收数据,而不用等待对方或交替进行发送和接收。
基于字节流:在 TCP 协议中,数据被分割成多个 IP 分组,并且不同的 IP 分组可以通过不同路径按照任意顺序到达目的地。因此,TCP 数据流被视为一个无限长的字节流,TCP 把这个流切分成若干块(segment),并负责将这些块重新组装成原始的数据。
可靠性:TCP 会利用确认、重传和超时机制等方法来确保数据的可靠性,保证每个数据包能够正确地到达它们的目标,且没有重复。
有序性:TCP 协议可以确保数据报按照发送顺序逐一传递,并在目的地重新组装回来。这就保证了接收方可以准确地重建原始消息。
流量控制和阻塞控制:TCP 协议会根据网络从源头到目的地的延迟情况和连接的带宽大小进行流量控制和拥塞控制。通过使用滑动窗口协议和其他方法,防止发送方发送过多数据,导致网络不能承受负载而发生阻塞。
综上所述,TCP 协议是一个可靠的、通用的传输协议,在互联网中广泛使用,能够在不稳定或高负荷的网络环境下实现稳定的数据传输,并通过对传输过程的状态监控、反馈机制以及流量控制等保护手段来确保数据传输的可靠性。
⭐二、三次握手四次挥手
三次握手和四次挥手是 TCP 协议中的重要概念,下面分别进行详解及其用途:
三次握手
三次握手指建立 TCP 连接时,客户端和服务端之间进行的互相确认过程。它具体包括以下步骤:
第一步(Client -> Server):客户端请求连接,发送 SYN 数据包给服务端。
第二步(Server -> Client):服务端收到 SYN 数据包后,确认收到请求,并发回 ACK 数据包,并根据自己的当前状态返回 SYN+ACK 数据包。
第三步(Client -> Server):客户端接收到服务器的 SYN+ACK 数据包后,返回 ACK 确认数据包,通知服务端连接已建立。
三次握手主要用途是确保双方能够建立可靠的 TCP 连接,验证连接正常并准备好接受和发送数据,同时防止因网络或其他原因导致连接中断或数据丢失。
四次挥手
四次挥手指关闭 TCP 连接时,客户端和服务端之间进行的互相确认过程。它具体包括以下步骤:
第一步(Client -> Server):客户端发起关闭请求,发送 FIN 数据包给服务端。
第二步(Server -> Client):服务端收到 FIN 数据包后,发送 ACK 数据包给客户端,确认已经接收到关闭请求。
第三步(Server -> Client):如果服务端还有未发送的数据,那么它将在 ACK 包中包含它的 FIN 包以通知客户端还需要等待数据传输完成。否则,服务端直接发送 FIN 数据包给客户端,标识服务端已经准备好关闭连接。
第四步(Client -> Server):客户端收到服务器的 FIN 数据包后,发回 ACK 数据包,确认接受关闭请求并通知服务端可以断开连接。
四次挥手主要用途是确保 TCP 连接能够正常地终止,防止客户端和服务端在正常关闭之前断开连接而导致数据丢失,同时释放掉资源以便其他连接使用。