Network-Interface
TAP 適配器是否對數據包進行排隊?
Linux 或 OpenBSD TAP 適配器是否將數據包排隊,或者如果我嘗試在它們進入時在單個執行緒上處理它們,它會失去數據包嗎?我不擔心無法處理所有進來的數據包,但是如果多個數據包在處理開始時正確進入,那麼如果適配器沒有內部隊列,它可能會失去一些數據包。
在閱讀了 Linux
drivers/net/tun.c
和 OpenBSD之後,sys/net/if_tun.c
我得出的結論是它們都使用隊列來處理數據包。具體來說,Linux 使用 tun/tap 驅動程序中的隊列,而 OpenBSD 使用預先存在的網路堆棧的隊列。
我沒有手動測試隊列功能。