详解RFC 793文档-3

3.4 建立连接

三次握手用来建立连接,这个过程通常由一个TCP发起,并由另一个TCP响应。如果两个TCP同时启动该过程,该过程也可以工作。这说明客户端和服务器可以同时发起连接请求,且能够连接成功。当同时尝试连接时,每个TCP在发送自己的SYN后接收到一个不携带任何ACK确认的SYN。

下面是几个连接启动的示例:

详解RFC 793文档-3_第1张图片

上图显示了最简单的三次握手,连接过程如下:

  • 步骤2:TCP A首先发送一个SYN段,初始SEQ号为100
  • 步骤3:TCP B确认接收到的来自TCP A的SYN段,并发送自己的SYN段,初始SEQ号为300。这里要注意,ACK号101表明TCP B已经收到SEQ号为100的数据,期望发过来的下一个数据SEQ号为101。
  • 步骤4:TCP A用一个空的ACK段响应TCP B的SYN段,ACK号为301,SEQ号为101,这就是步骤3中TCP B期望的下一个SEQ号。
  • 步骤5:在完成步骤2、3、4后,TCP A和TCP B建立连接通道。此时TCP A和B就可以发送数据了。这里需要注意:TCP A发送的数据段的SEQ号和步骤4中的ACK段的SEQ号相同,因为单纯的ACK段不占用SEQ号

同时启动只是稍微复杂一点,如下图所示。每个TCP从CLOSED到SYN-SENT再到SYN-RECEIVED再到ESTABLISHED。

你可能感兴趣的:(【付费专栏】车载以太网协议,车载以太网,TCP/IP,TCP)