网卡
网卡把光电信号转换成数字信号
网络协议栈
通常指tcp/ip各层网络协议,ARP、ICMP、IP、TCP/UDP、HTTP/SFTP等
dpdk使用
数据传输全过程:
非dpdk模式下接收数据
网卡接收到数据,产生中断通知cpu,cpu使用驱动将网卡中的缓存信息读取到内存中,后续各协议栈、应用层因此解析读取此信息。其中信息,都是通过驱动采集到的sk_buff来传递的。
发送数据
获得目的MAC地址,根据ARP协议找到对应网口,如果找不到,就转发到默认网口。
DPDK
在以上过程中,会出现cpu产生中断,并且从都数据的过程,浪费时间和资源,使用dpdk可以在用户态直接从网卡的缓存中读取数据,绕过了操作系统内核,提高了传输速度。
此外网卡通过DPDK中的多线程和多队列技术,可以同时处理多个数据包。实现了高吞吐量的数据包处理能力。