TCP 中的超时本质上是序列号的一部分,还是 TCP 数据包的完全不同的组成部分?
我了解超时为数据流提供了一定程度的可靠性,因为它可以防止过度传输流量——这可能是由于 MITM 攻击;通过确保数据按顺序发送来提供安全性的序列号并列 - 检测重放攻击。
TCP 中的超时本质上是序列号的一部分,还是 TCP 数据包的完全不同的组成部分?
我了解超时为数据流提供了一定程度的可靠性,因为它可以防止过度传输流量——这可能是由于 MITM 攻击;通过确保数据按顺序发送来提供安全性的序列号并列 - 检测重放攻击。
计时器和序列号是为了 TCP 提供的可靠性,与安全性无关。请参阅RFC 793,传输控制协议:
当 TCP 传输包含数据的段时,它会将副本放入重传队列并启动计时器;当收到对该数据的确认时,将从队列中删除该段。如果在定时器用完之前没有收到确认,则重传该段。
TCP 可以而且经常会乱序接收段,但是,使用序列号,它会在将数据呈现给应用程序之前重新排序段。TCP 保证按顺序传送数据。无序接收段不会检测或阻止 MiTM 或重放攻击。
初始序列号是随机选择的,有助于安全性,但序列号的原因是关于可靠性而不是安全性。您使用某种类型的加密(VPN 隧道、SSH 等)来提供安全性。未加密的流量根本不安全。
请记住,在创建 TCP 的时候,我们还没有公共 Internet,而且事情要可靠得多。安全并不是任何人真正想到的。知识产权是一项政府/学术实验,您必须成为合作伙伴之一才能参与。