이더넷을 끄면 실제로 어떤 일이 일어나는지 궁금합니다. 운영 체제는 네트워크 계층에서 무엇을 수행합니까? 라우팅 테이블이나 그와 비슷한 것을 플러시합니까?
답변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>
)로 표시합니다. - 장치별 기능: 일부 구조, 버퍼 지우기, 이더넷 컨트롤러 칩을 절전 모드로 이동...