Networking

當我關閉乙太網時會發生什麼?關閉乙太網後作業系統會執行哪些步驟?

  • June 4, 2021

我想知道關閉乙太網後實際發生了什麼。作業系統在網路層做什麼?它是否刷新路由表或類似的東西。

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>)。
  • 設備特定功能:清除一些結構、緩衝區、將乙太網控制器晶片移動到睡眠狀態……

引用自:https://unix.stackexchange.com/questions/652802