前导知识
在传统的网络通信中,数据的流向可以概括如下:
网卡(NIC)➡协议栈➡VFS/Posix API➡应用程序
- 网卡(NIC)。属于硬件设备,负责接收和发送网络数据。
- 协议栈是一种软件架构,用于管理网络通信中的各种协议。数据链路层、网络层、传输层都属于协议栈。通俗来讲就是当接受到网络数据的时候,协议栈会对这些数据进行层层解析,确认无误之后才有可能传递给下一个环节。
- VFS/Posix API,提供了统一的接口,使程序能得以在不同的系统上运行。简单来说不同的操作系统进行同一个活动,比如打开文件,所调用的函数是不同的。系统1调用的是open1函数,系统2调用的是open2函数,在VFS/Posix API中统一规定把这个功能的函数包装成open,那么当应用程序在不同的系统上调用open函数的时候就都能打开文件了。
- 应用程序。写代码和启动代码的地方。
dpdk介绍
DPDK是一套应用程序,用于直接从网卡将网络数据读入用户层进行操作。数据的流向通常可以概括如下: