如何在不丢失连接的情况下从以太网切换到 WIFI(反之亦然)?

ant*_*ass 7 wireless-networking ethernet

我有没有办法在以太网和 WIFI 连接之间切换而不会丢失连接?

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

LSe*_*rni 6

有没有办法在以太网和WIFI连接之间切换而不会丢失连接?

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

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

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

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

在“普通”系统上,恐怕您无能为力。

我曾尝试在下载时关闭连接并在不同的网络设备上移动 IP 地址,但是,即使 Firefox 在关闭之前“冻结”并在之后“解冻”,连接也会中断。我想这是因为所有的TCP连接参数都需要重置,所以服务器必须支持恢复。

连接不会断开,如果Firefox是连接到具有三个接口(一个下行到Firefox,两个上行链路)的路由器,我忙里忙外的两个上行链路。下载短暂停止,我看到数据包被重试并被退回;然后下载恢复正常。

这是因为,我相信,Firefox 机器和服务器机器上的所有参数都“存在”,并且两者都不受杂耍的影响(PC 总是在相同的 IP 上看到服务器,而服务器总是在通过 NAT 边界路由器使用相同的 IP)。

                              A-------------A
[ Firefox PC ] --e-- [ router ]             [ NAT ] --- [ server ]
                              B-------------B
Run Code Online (Sandbox Code Playgroud)


Nev*_*ams 3

生成“没有到主机的路由”错误是重置 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
Run Code Online (Sandbox Code Playgroud)

第二条路由标记为 I,表示“非活动”。

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

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

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

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