我想知道关闭以太网后实际会发生什么。操作系统在网络层做什么?它会刷新路由表或类似的东西吗?
答案1
Linux 内核通过struct net_device
(结构网络设备)。每个struct net_device
都有一组struct net_device_ops
应该由设备驱动程序实现的。其中最重要的是:
ndo_open()
。当您将以太网适配器设置为 ON (ip link set up dev <eth_dev>
) 时调用。ndo_start_xmit()
。当您开始通过接口传输数据时调用。ndo_stop()
。当您将以太网适配器设置为 OFF(ip link set down dev <eth_dev>
) 时调用。
那么,当设备宕机时到底会发生什么?
大多数驱动程序都实现了一组例程:
- 停止与特定设备相关的所有队列。
- 清除与特定设备相关的 ARP 表条目。
- 将接口状态标记为
DOWN
(ip link show dev <eth_dev>
)。 - 设备特定功能:清除一些结构、缓冲区、将以太网控制器芯片移至睡眠状态...