📜  TCP连接建立

📅  最后修改于: 2021-09-27 14:32:21             🧑  作者: Mango

先决条件——TCP 3次握手过程
TCP是面向连接的协议,每一个面向连接的协议都需要建立连接,以便在通信两端预留资源。

连接建立 –

1. 发件人通过以下方式启动流程:

  • 序列号(Seq=521):包含发送方生成的随机初始序列号。
  • Syn 标志(Syn=1):请求接收者将其序列号与上面提供的序列号同步。
  • 最大分段大小 (MSS=1460 B):发送方告知其最大分段大小,以便接收方发送不需要任何分段的数据报。 MSS 字段存在于 TCP 标头的选项字段中。
  • 窗口大小 (window=14600 B):发送方告知他必须存储来自接收方的消息的缓冲区容量。

2. TCP 是一种全双工协议,因此发送方和接收方都需要一个窗口来接收彼此的消息。

  • 序列号(Seq=2000):包含接收端产生的随机初始序列号。
  • Syn 标志(Syn=1):请求发送方将其序列号与上面提供的序列号同步。
  • 最大分段大小 (MSS=500 B):发送方告知其最大分段大小,以便接收方发送不需要任何分段的数据报。 MSS 字段存在于 TCP 标头的选项字段中。
    由于 MSS接收方< MSS发送方,双方同意最小 MSS,即 500 B,以避免两端的数据包碎片。
Therefore, receiver can send maximum of 14600/500 = 29 packets.
This is the receiver's sending window size.
  • 窗口大小(window=10000 B):接收者告知他必须存储来自发送者的消息的缓冲区容量。
Therefore, sender can send a maximum of 10000/500 = 20 packets.
This is the sender's sending window size.
  • 确认号(Ack no.=522):由于接收器接收到序列号521,因此它请求下一个序列号Ack no.=522,这是接收器期望的下一个数据包,因为Syn标志消耗1个序列号。
  • ACK 标志 (ACk=1):告诉确认号字段包含接收者期望的下一个序列。

3. Sender通过以下方式对连接建立做出最终回复:

  • 序列号(SEQ = 522):由于序列号= 521在第1步和SYN标志消耗一个序列号,因此,下一个序列号将是522。
  • 确认编号(确认编号=2001):由于发送方正在确认来自接收方的序列号为 2000 的 SYN=1 数据包,因此,预期的下一个序列号是 2001。
  • ACK 标志(ACK=1):告诉确认号字段包含发送者期望的下一个序列。

由于 TCP 的连接建立阶段使用 3 个数据包,因此也称为 3 路握手(SYN、SYN + ACK、ACK)。

  • GATE 问题 – GATE IT 2008 |第 67 题

相关的下一篇文章 – TCP 连接终止