TCP连接建立过程详细解读和指南

2021年3月14日14:45:13 发表评论 671 次浏览

先决条件–

TCP三向握手过程

TCP是面向连接的协议, 每个面向连接的协议都需要建立连接, 以便在两个通信端都保留资源。

建立连接–

发件人通过以下步骤开始该过程:

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

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

序列号(Seq = 2000):

包含在接收方生成的随机初始序列号。

同步标记(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.

窗口大小(窗口= 10000 B):

接收者告诉他必须存储来自发送者的消息的缓冲区容量。

Therefore, sender can send a maximum of 10000/500 = 20 packets.
This is the sender's sending window size.

确认编号(确认编号= 522):

由于接收机接收到序列号521, 因此, 由于Syn标志消耗了1个序列号, 所以它请求下一个序列号Ack号= 522, 这是接收机期望的下一个分组。

ACK标志(ACk = 1):

告诉确认号字段包含接收者期望的下一个序列。

发送方通过以下方式对建立连接做出最终答复:

  • 序列号(Seq = 522):因为序列号= 521 in 1st步骤和SYN标志消耗一个序列号, 因此, 下一个序列号将是522。
  • 确认编号(确认编号= 2001):由于发送方正在从接收方确认序列号为2000的SYN = 1数据包, 因此预期的下一个序列号为2001。
  • ACK标志(ACK = 1):告知确认号字段包含发送者期望的下一个序列。
TCP连接建立1

由于TCP的连接建立阶段使用3个数据包, 因此也称为

三向握手

(SYN, SYN + ACK, ACK)。

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

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


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: