Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么 TCP 中的序列号使用数据包大小。为什么它不能是数据包号。如果以 100 字节发送 seq 号为 10 的数据包,则下一个数据包的 seq 号将为 111。为什么不能像 10 ,11,12 等 除了数据包丢失之外的任何特定原因
它是一个字节数,因为它基本上是一个字节流协议。
这比简单的算术和按顺序选择数字要复杂得多。通常出于安全原因,ISN(初始序列号)是使用高级伪随机机制生成的。
还有像 SYN cookie 这样的机制,例如在 ISN 中编码 TCP 会话参数。因此,除了使用“随机”数之外,还有很多不同的算法可以选择合适的序列号。
更重要的是,每个操作系统都有自己的生成 ISN 的方法。如上所述,所有这些都是出于安全原因,不允许潜在的攻击者猜测 TCP 数据包的序列号。