我正在阅读一篇关于该主题的文章,我遇到了这个问题:“在连接建立期间,每一方都使用随机数生成器来创建初始序列号(ISN),这通常在每个方向上都不同。 我们知道 TCP 序列号是32 位。所以它有有限的(从 0 到 (232-1) = 4 个千兆序列号),这意味着我们将只能发送 4GB 的唯一序列号的数据,不超过那个”。
我看不到与 ISN 的相关性,并且只能发送具有唯一序列号的 4GB 数据。此外,这与环绕概念有何关系?我会很感激一个更好的解释。感谢期待。
我正在阅读一篇关于该主题的文章,我遇到了这个问题:“在连接建立期间,每一方都使用随机数生成器来创建初始序列号(ISN),这通常在每个方向上都不同。 我们知道 TCP 序列号是32 位。所以它有有限的(从 0 到 (232-1) = 4 个千兆序列号),这意味着我们将只能发送 4GB 的唯一序列号的数据,不超过那个”。
我看不到与 ISN 的相关性,并且只能发送具有唯一序列号的 4GB 数据。此外,这与环绕概念有何关系?我会很感激一个更好的解释。感谢期待。
所以它是有限的(从 0 到 (2^32-1) = 4 个 Giga 序列号),这意味着我们将只能发送 4GB 的唯一序列号的数据,不超过这个序列号。
这是不正确的。序列号用于检查和重新排序(如有必要)传入的 TCP 段。为此,要求序列号在当前传输窗口内是唯一的。当前传输窗口之外的序列号无效,因此它们被忽略。当 SEQ# 超过 2 32 -1 时,它会简单地环绕到 0(即,更多的高位被简单地忽略)。(RFC 793:由于空间是有限的,所有处理序列号的算术都必须以 2^32 为模执行。)
由于窗口比例选项处于活动状态的最大传输窗口略小于 1 GiB,因此不会有任何问题。