这个架构图来自己netfilter项目的官方网站,原图的名字叫packet flow in Netfilter and General Networking,如下图所示(如果你需要原图可以私信博主)。主要分成XDP部分,netfilter部分和traffic control部分
1、XDP部分
XDP(eXpress Data Path)是与DPDK对应的一套快速数据处理框架,它是 Linux Kernel 中提供高性能、可编程的网络数据包处理框架。 它使得 Kernel 能够在数据报文到达 L2(网卡驱动层)时就对其进行针对性的高速处理,而无需再 “循规蹈矩” 地进入到 TCP/IP Stack。
2、Netfilter部分
图中带颜色的部分都是netfilter的范围。
3、tc traffic control qdisc部分
如下图,把netfilter部分简化后,我们可以看到traffic control/qdisc的ingress和egress二个方向的处理,都是在TCP/IP协议栈以外的,本质上traffic control是在报文进入TCP/IP协议栈之前或者出了TCP/IP协议之后在这二处对报文进行处理。