TCP 应用程序设置不分段 (DF) 位

TCP 应用程序设置不分段 (DF) 位

我注意到一些 TCP 应用程序正在设置 DF(不分段)位。我的研究似乎表明 TCP 希望避免分段,而是希望调整段大小(MSS)。

但是,我的理解是,这种机制需要使用 ICMP 过大数据包。如今,许多人使用 NAT 和 FW,他们经常阻止所有未经请求的 ICMP 数据包。那么,在这些非常常见的环境中,MSS 调整将如何工作?或者这些网关是否足够智能,可以在 ICMP 内部进行解析并匹配现有会话?

答案1

您正在描述一种称为“路径 MTU 发现”的算法。它是所有现代操作系统网络堆栈的默认功能(因此通常是 TCP/IP 堆栈执行此操作,而不是应用程序),并且大多数情况下都能正常工作。只有无知的系统管理员和有缺陷的产品才会阻止所有 ICMP 消息。即使是选择阻止 ICMP 回声(ping)的站点通常也足够聪明,仍然允许 ICMP 目标无法到达消息通过。

是的,好的 NAT 网关和 SPI 防火墙实现会查看“ICMP 目标不可达”消息中捕获的标头,以确定其匹配哪个流并进行适当的处​​理。

相关内容