两个接口不能同时关闭,并且必须始终有有效的默认路由。

两个接口不能同时关闭,并且必须始终有有效的默认路由。

有没有办法在不丢失连接的情况下在以太网和 WIFI 连接之间切换?

我正在通过 Firefox 下载一个大文件,没有恢复选项。

答案1

有没有办法在不丢失连接的情况下在以太网和 WIFI 连接之间切换?

实际上不是。Firefox 和远程服务器之间的“连接”意味着您的本地地址上有一个本地端口,绑定到服务器地址上的远程端口。

“本地地址”与网络设备绑定,您不能(轻易)让两个网络设备拥有相同的地址 - 它们会冲突。因此,您需要关闭一个设备,然后启动另一个具有相同地址的设备。

但这还不够,因为跟踪端口和发送和接收数据的内部结构已绑定到旧的网络设备,并且会在设备故障时被破坏。

因此,您需要一个能够意识到这种可能性的操作系统内核,或者一个同样能够意识到这种可能性的虚拟网络设备,并且可以在后台处理设备的同时向操作系统提供单个网络接口。这称为“链路聚合“。

在“原始”系统上,恐怕你什么也做不了。

我曾尝试在下载时断开连接并将 IP 地址移至其他网络设备,但即使 Firefox 在断开之前处于“冻结”状态并在断开之后“解冻”,连接也会断开。我想这是因为需要重置所有 TCP 连接参数,因此服务器必须支持恢复。

连接没有下降如果 Firefox 连接到具有三个接口的路由器(一个下行链路到 Firefox,两个上行链路),并且我同时使用两个上行链路。下载会短暂停止,我看到数据包被重试并弹回;然后下载会正常恢复。

这是因为,我相信,所有参数都“存在于” Firefox 机器和服务器机器上,并且都不受 juggle 的影响(PC 始终通过相同的 IP 看到服务器,并且服务器始终通过 NAT 边界路由器通过相同的 IP 看到 PC)。

                              A-------------A
[ Firefox PC ] --e-- [ router ]             [ NAT ] --- [ server ]
                              B-------------B

答案2

生成“无主机路由”错误是重置 TCP 连接的主要原因。为了避免这种情况,不能出现两个接口都关闭的情况。此外,也不能出现两个接口都没有 IP 地址的情况,并且必须始终保持默认路由。

确保您的两个接口适配器都已启动,并具有唯一的 IP 地址。

确保默认路由不是特定接口独有的,或者两个接口都存在。在我的 Mac 上:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.2.1        UGSc            5        4     en0
default            192.168.2.1        UGScI           0        0     en1

第二条路线标记为 I(表示不活动)。

当我想从 en0(有线)切换到 en1(wifi)时,我会在“系统偏好设置”中更改接口顺序,将 WiFi 置于以太网之上。然后,我会检查网络流量统计数据,以确认流量在两个方向上都通过 WiFi 传输。然后,我可以断开以太网连接。

使用相同的原理,此方法将允许您在其他操作系统上切换界面:

两个接口不能同时关闭,并且必须始终有有效的默认路由。

这意味着两个接口在切换之前必须预先分配各自的唯一 IP 地址。

答案3

你可能会问多路径 TCP,据我所知,它在 Windows 上不存在:

在此处输入图片描述

可能会模拟它的软件(都是商业的)但没有保证,因为我从未使用过它们:

答案4

由于您没有指定所使用的操作系统,我假设它是 Windows 10。

最简洁的答案是不。

更详细的答案是 TCP 协议是无状态的,因此如果一条网络路径出现故障,它可能会从另一条路径继续下载。Firefox 上的下载可能会在网络链接中断时暂停,并在重新联系服务器时恢复。但是,您的下载很可能会失败。如果发生这种情况,您可以转到下载窗口并单击下载上的“恢复”按钮,这“应该”会使它从中断的地方恢复。

专业提示:如果这是一个关键文件,我会让它完成下载。

相关内容