Networking
當我關閉乙太網時會發生什麼?關閉乙太網後作業系統會執行哪些步驟?
我想知道關閉乙太網後實際發生了什麼。作業系統在網路層做什麼?它是否刷新路由表或類似的東西。
Linux 核心通過
struct net_device
( struct net_device ) 描述每個乙太網適配器(物理設備或虛擬設備)。每個struct net_device
都有一組struct net_device_ops
應該由設備驅動程序實現。其中最重要的:
ndo_open()
.ip link set up dev <eth_dev>
當您將乙太網適配器設置為 ON ( )時呼叫。ndo_start_xmit()
. 當您開始通過介面傳輸數據時呼叫。ndo_stop()
.ip link set down dev <eth_dev>
當您將乙太網適配器設置為 OFF( )時呼叫。那麼,當設備宕機時,到底發生了什麼?
在大多數驅動程序中實現了一組常式:
- 停止與特定設備相關的所有隊列。
- 清除與特定設備相關的 ARP 表項。
- 將介面狀態標記為
DOWN
(ip link show dev <eth_dev>
)。- 設備特定功能:清除一些結構、緩衝區、將乙太網控制器晶片移動到睡眠狀態……