각 패킷은 다른 코어에서 처리됩니까? 아니면 단일 스레드 프로세스입니까?
답변
iptables는 실제로 netfilter 인 Linux 방화벽의 사용자 공간 프론트 엔드입니다. Netfilter는 실제로 패킷 처리와 관련된 커널의 후크 시스템입니다. 각 패킷은 커널에 의해 인터럽트를 트리거하여 처리됩니다. 커널 밸런스가 여러 CPU에서 인터럽트를 발생시키는 지 여부는 커널 수에 따라 다릅니다. 그것에 대해 StackOverflow 에서이 스레드를 참조하십시오. /programming/7467688/netfilter-hooks-on-multi-core-system
Nils가 언급했듯이 이러한 인터럽트는 패킷 단위로 균형이 맞지 않습니다. IRQ에 따라 (인터페이스 당) 균형이 잡히거나 너무 바빠서 다른 CPU로 이동할 수 있습니다.