Что происходит, когда я отключаю свой Ethernet? Какие действия выполняет ОС, когда я отключаю Ethernet?

Что происходит, когда я отключаю свой Ethernet? Какие действия выполняет ОС, когда я отключаю Ethernet?

Я хочу знать, что на самом деле происходит, когда я отключаю свой ethernet. Что делает ОС на сетевом уровне? Очищает ли она таблицу маршрутизации или что-то в этом роде.

решение1

Ядро Linux описывает каждый адаптер Ethernet (физическое устройство или виртуальное) с помощью struct net_device(структура net_device). У каждого struct net_deviceесть набор, struct net_device_opsкоторый должен быть реализован драйвером устройства. Наиболее важные из них:

  • ndo_open(). Вызывается при включении адаптера Ethernet ( ip link set up dev <eth_dev>).
  • ndo_start_xmit(). Вызывается при начале передачи данных через интерфейс.
  • ndo_stop(). Вызывается при установке адаптера Ethernet в положение OFF( ip link set down dev <eth_dev>).

Итак, что же на самом деле происходит, когда устройство выходит из строя?

Существует набор процедур, которые реализованы в большинстве драйверов:

  • остановить все очереди, связанные с определенным устройством.
  • очистить записи таблицы ARP, относящиеся к конкретному устройству.
  • отметьте статус интерфейса как DOWN( ip link show dev <eth_dev>).
  • специфические функции устройства: очистка некоторых структур, буферов, перевод чипа контроллера Ethernet в спящий режим...

Связанный контент