计算机网络知识速记:三次握手

146 阅读2分钟

计算机网络知识速记:三次握手

一、三次握手的基础

在计算机网络中,TCP/IP协议是一种面向连接的协议,而三次握手则是建立TCP连接的关键步骤。其过程涉及到客户端和服务器之间的三次通信,确保双方准备好发送和接收数据。进行三次握手的目的是为了确认双方的接收能力和发送能力是否正常。

三次握手的具体过程如下:

  1. 第一步:SYN报文
    • 客户端向服务器发送一个SYN(同步)报文,初始化序列号为ISN(seq=x)。
    • 然后客户端进入SYN_SEND状态,等待服务器确认。

第一次握手:客户端向服务器发送报文,证明客户端的发送能力正常。

  1. 第二步:SYN-ACK报文
    • 服务器收到客户端的SYN报文后,响应一个ACK(确认)报文,确认服务端的SYN报文(ack=x+1)。
    • 同时发出一个SYN报文,带上自己的初始化序列号(seq=y)。
    • 此时,服务器进入SYN_RECV状态。

第二次握手:服务器接收到报文并向客户端发送报文,证明服务器的接收能力和发送能力正常。

  1. 第三步:ACK报文
    • 客户端接收到服务器的SYN-ACK报文后,发送ACK(确认)报文,确认接收到服务器的SYN报文(ACK=y+1)。
    • 此时,客户端和服务器都进入ESTABLISHED状态,完成TCP三次握手,连接建立成功。

第三次握手:客户端向服务器发送报文,证明客户端的接收能力正常。

在这里插入图片描述

二、为什么是三次而不是四次或两次?

虽然我们可以想象采用不同次数的握手,但三次握手实际上是最优的选择:

1. 两次握手的不足

  • 如果只进行两次握手:客户端发送SYN,服务器响应ACK。此时,若客户端未完全接收到ACK,就无法确认连接是否成功。这可能导致短时间内的连接问题,尤其是在网络不稳定的情况下,可能会造成数据丢失或重传。

2. 四次握手的冗余

  • 四次握手会增加连接建立的延迟。在数据传输领域,效率至关重要,减少延迟是优化网络性能的重要手段。增加的握手次数不仅浪费带宽,还可能导致网络拥堵,降低整体性能。

通过三次握手,TCP协议既能保证连接的可靠性,又能在性能上达到最佳平衡。