+ [二者区别:](#_322)
TCP协议
TCP就是在不可靠的信道上建立可靠的连接,TCP传输需解决三次握手和四次挥手的过程。TCP是一种可靠的面向连接的协议,它提供了可靠的数据传输和错误修复机制。这使得TCP广泛用于需要可靠数据传输的应用,例如电子邮件、文件传输和Web浏览器。
当使用TCP建立连接时,它会在客户端和服务器之间创建一个虚拟的连接,并确保数据在这个连接上按照正确的顺序传输。这是通过使用序列号、确认号和窗口大小等机制来实现的。TCP的三次握手和四次挥手是为了建立和终止TCP连接而定义的一种协议流程。下面详细介绍了TCP的三次握手和四次挥手的过程。
三次握手(Three-Way Handshake)
三次握手是在客户端和服务器之间建立TCP连接时使用的过程。它的目的是确保双方都愿意建立连接,并进行必要的初始化设置。
步骤如下:
- 第一步(SYN):客户端发送一个带有 SYN(同步)标志的包给服务器,并通过设置一个初始序列号(随机选择)来开始连接建立。
- 第二步(SYN+ACK):服务器收到客户端的请求后,如果同意建立连接,就会发送一个带有 SYN 和 ACK(确认)标志的包给客户端。服务器也会选择一个初始序列号,并将确认号设置为客户端的初始序列号加1。
- 第三步(ACK):客户端收到服务器的响应后,会发送一个带有 ACK 标志的包给服务器,确认收到了服务器的确认。同时,客户端也会将确认号设置为服务器的初始序列号加1。
完成了这个三次握手之后,TCP连接就建立起来了,双方可以开始进行数据传输。
四次挥手(Four-Way Handshake)
四次挥手是在客户端和服务器之间终止TCP连接时使用的过程。它的目的是双方都能够安全地关闭连接并释放资源。
步骤如下:
- 第一步(FIN):当客户端希望关闭连接时,它发送一个带有 FIN(结束)标志的包给服务器,表示不再发送数据。
- 第二步(ACK):服务器收到客户端的结束请求后,发送一个带有 ACK 确认标志的包给客户端,表示收到了客户端的结束请求。
- 第三步(FIN):当服务器也希望关闭连接时,它发送一个带有 FIN 标志的包给客户端,表示不再发送数据。
- 第四步(ACK)