路由表的变化会影响现有的 TCP/IP 连接吗?

路由表的变化会影响现有的 TCP/IP 连接吗?

如果问题不够清楚,请考虑这种情况:

  1. 建立从计算机 C 到服务器 X 的 TCP/IP 连接
  2. 将(计算机 C 的)默认网关从网关 A 更改为网关 B(两个网关都可以到达服务器 X)

现在,数据包将通过哪个网关?如果这取决于操作系统,请告诉我 Windows 和 Linux 的行为。

答案1

假设操作系统网络堆栈立即应用了更改,那么数据包将通过当前网关。

默认路由和一般路由仅是 IP,而 IP 是无状态的。它只是一个数据包移动器。也就是说,它将数据包从 IP A 传送到 IP B。数据包之间没有存储状态,这是针对 TCP 的。

TCP 并不关心它采用什么路由,TCP 状态基于源 IP/端口和目标 IP/端口,因此您的 TCP 连接不应中断。除非您的网关是 NAT,并且更改网关会使 IP 数据包通过另一个 NAT。

这个问题的真正考验是设置场景并观察会发生什么,但我认为你是出于好奇而问的。

相关内容