我很好奇有哪些选项可以从 NIC 获取物理端口信息,然后如果连接丢失,我可以将其用作故障转移。IE 端口 0 上的电线被拔出,我的程序识别到这一点并故障转移到端口 1 以保持连接。
3 回答
我认为您在这里混淆了多个概念:
首先,这实际上取决于您机器上的网络设置方式。您是否有多个 NIC 连接到同一个网络?它们是否被视为单个逻辑适配器?
其次,假设您的操作系统级网络仅将每个 NIC 用于单独的路由条目,如果电缆被拉出,您的程序将在下一个看到 EOF
read()
(或在下一个上看到一个信号write()
)。在这种情况下,您可以重新建立连接(无需考虑实际使用的是哪个 NIC)。通常,您不能假装连接没有在库级别终止。操作系统可能会提供一些低级的魔法来做这样的事情,但在套接字级别,您必须重新建立连接(即两个端点都会感知连接终止)。
I agree with Alexander.
However, if you are running a version of linux, and still want to to know about all things network related, take a look in /proc/net
, in particular the dev
and tcp
files.
Here's a good starting point: http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html
我不认为你可以像其他人所说的那样。
如果您想进行电路(不仅仅是连接)故障转移,我认为您必须在交换机(硬件)中进行。