TCP 重置查询

TCP 重置查询

通过阅读 Wiki 中有关 TCP Reset 的以下段落,我有一个疑问:

“按设计使用时,它可以成为一种有用的工具。一种常见的应用是,当 TCP 连接正在进行时,计算机(我们称之为计算机 A)崩溃。另一端的计算机(计算机 B)将继续发送 TCP 数据包,因为它不知道计算机 A 已经崩溃。当计算机 A 重新启动时,它将从旧的崩溃前连接接收数据包。计算机 A 不知道这些数据包的上下文,也不知道如何处理它们,因此它可能会向数据包的发送者(计算机 B)发送 TCP 重置。此重置让计算机 B 知道连接不再有效。计算机 B 上的用户现在可以尝试另一个连接或采取其他操作。”

在上述情况下,Seq 和 Ack 编号是多少?由于计算机 A 不了解先前的连接,因此重置将基于什么发生?B 如何确定重置是针对它认为仍保持的实际连接?为什么不能针对任何其他连接?

答案1

您上述信息的关键部分是:

When computer A reboots, it will then receive packets from the old pre-crash connection. 

如果/当它收到这些数据包时,它将获得序列号和确认号,它将发送一个带有适当序列号和确认号的 RST 数据包。如果它没有看到数据包,那么它就不会发送任何 RST 数据包。

相关内容