イーサネットをオフにすると実際に何が起こるのか知りたいです。OS はネットワーク層で何を行うのでしょうか? ルーティング テーブルをフラッシュしたり、そのようなことをするのでしょうか。
答え1
Linuxカーネルは、すべてのイーサネットアダプタ(物理デバイスまたは仮想デバイス)をstruct net_device
(構造体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>
)としてマークします。 - デバイス固有の機能: 一部の構造体、バッファをクリアし、イーサネット コントローラ チップをスリープ状態にします...