Czy każdy pakiet jest przetwarzany przez inny rdzeń? Czy jest to proces jednowątkowy?
Czy każdy pakiet jest przetwarzany przez inny rdzeń? Czy jest to proces jednowątkowy?
Odpowiedzi:
Iptables jest tak naprawdę tylko front-endem przestrzeni użytkownika dla zapory linuksowej, którą jest netfilter. Netfilter to tak naprawdę system haków w jądrze wokół przetwarzania pakietów. Każdy pakiet jest przetwarzany przez jądro, wyzwalając przerwanie. To, czy saldo jądra zakłóca na wielu procesorach, zależy od tego, ile ma lat. Zobacz ten wątek na StackOverflow na ten temat. /programming/7467688/netfilter-hooks-on-multi-core-system
Jak wspomniał Nils, przerwania te nie byłyby zrównoważone w zależności od pakietu. Zostałyby zbalansowane według IRQ (na interfejs) lub ewentualnie przeniesione całkowicie na inny procesor, gdyby ktoś był zbyt zajęty.