모든 네트워크 패킷이 CPU 인터럽트를 유발합니까?

모든 네트워크 패킷이 CPU 인터럽트를 유발합니까?

많은 패킷 처리(CRC 계산, 패킷 분할 처리 등)가 NIC로 오프로드될 수 있다는 것을 알고 있지만 각 패킷이 여전히 CPU 인터럽트를 유발합니까? 네트워크 카드가 무차별 모드인 경우에도 차이가 있습니까?

답변1

일반적으로 NIC는 수신된 패킷을 시스템에 보내야 할 때만 CPU를 중단합니다. 비무차별 모드에서는 이는 MAC 주소, 브로드캐스트 주소 ff:ff:ff:ff:ff:ff 또는 가입된 멀티캐스트 주소로 주소가 지정된 패킷에만 적용됩니다. 또한 패킷을 CPU로 보내기 전에 일반 이더넷 CRC 확인 및 IP/TCP/UDP 체크섬(NIC에 이 기능이 있고 드라이버에 이 오프로드가 활성화된 경우) 확인을 수행합니다.

일부 네트워크 카드에는 제한된 수의 멀티캐스트 구독 주소가 있습니다. 이 값을 초과하면 모든 멀티캐스트 패킷이 CPU로 전송되고 운영 체제는 신경 쓰지 않는 패킷을 삭제해야 합니다.

관련 정보