伪造的TCP重置数据包

伪造的TCP重置数据包

我试图更好地理解网络中立性争论。有人指责 ISP 向终端主机发送 RST 数据包以阻止 BitTorrent 流量。这到底意味着什么?

我对 HTTP 和 TCP/IP 有基本的了解(我是一名程序员),但服务器管理绝对不是我的专家。谢谢。

答案1

TCP 数据包中有几个标志(SYN、ACK、PSH、RST 和 FIN)。这些标志通常用于正常 TCP 连接的建立和拆除。当连接出现问题且一端需要异常中止连接时,将使用其中一个标志(RST)。当另一端收到 RST 连接时,它会立即拆除连接。当您收到“对等方重置连接”错误消息时,就会发生这种情况。

这意味着,如果您可以将 RST 数据包插入 TCP 流,则可以关闭任何 TCP 连接。但要做到这一点,您需要能够拦截有效数据包或猜测用于跟踪各个 TCP 连接的各种计数器。

答案2

TCP 协议由有限状态机在操作系统的网络堆栈中实现。作为一名程序员,FSM 的概念应该至少有点熟悉。

伪造 TCP RST 数据包(即,带有伪造源 IP 地址的 IP 数据报,显示来自远程服务器,包含设置了 RST 位的 TCP 段和相应的 SEQ/ACK 编号)是客户端到服务器路径上的任何人都可以做的事情,从而导致接收操作系统关闭 TCP 连接。客户端接收数据包,有限状态机“重置”连接,关闭它并阻止进一步的数据传输。

伪造的数据包与来自该远程主机的“真实” TCP RST 数据包无法区分。如果不使用提供身份验证的协议(IPSEC AH 或类似协议),您将无法阻止任何中间方创建此类伪造的数据包。

一些 ISP 正在(据称?)伪造此类 TCP RST 数据包,以防止 Bittorrent 等应用程序的用户“过度”使用其通往互联网的“管道”。他们使用各种硬件/软件来执行“深度数据包检查”(请参阅http://en.wikipedia.org/wiki/Sandvine此类“解决方案”的一个供应商的示例)来检测此类流量。

关于“网络中立”的争论有很多政治因素,其中很多因素远远超出了讨论的范围。我认为,从本质上讲,这只是网络用户与电话用户持续多年的激烈战斗

相关内容