主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少?
📘题干回顾:
主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少?
这个问题关键在于“TCP序号不重复使用”。
✅ 正确答案是:D. 2³² - 1
理由如下:
-  TCP的**序列号(Sequence Number)**是一个 32位无符号整数。 
-  它表示TCP字节流中每个字节的编号,不是每个报文段,而是每个字节! 
-  所以序列号的范围是: 0 到 2³²−1=42949672950
-  因为每一个字节都要有一个唯一序号,为了不重复使用,最多只能发送 2322^{32}232 个字节(包括0),也就是最多 2³² - 1 个字节数据。 
❓你提到“三次握手需要占用一个序列号吗?”
是的!TCP三次握手中确实“消耗”了一个序列号,但:
在这道题中,它说的是“最大L值”,也就是理论上序号不重复能用的极限。
所以是从 某个初始序号 x 开始,最多能使用 2322^{32}232 个连续的序列号,也就是说最多能发送 2³² -1 字节的数据(一个序号用来表示第一个字节,最后一个是 2³² -1 )。
即便我们考虑三次握手时用掉1个序号,这也只是初始化时“浪费”1个序号而已,对最大L影响非常小,可以忽略。
✅结论:
-  序列号长度:32位 
-  一个字节对应一个序号 
-  最大L值 = 2³² - 1 字节 
-  三次握手虽然用掉一个序号,但题目问的是理想最大值 L,因此答案仍然是 D. 2³² - 1 
