如果我们想绕过内核网络堆栈,看起来我们必须使用 AF_XDP 套接字。
这是否意味着我们必须修改用户空间程序?
但是APK这么多,这么多APK配合修改难吗?
个人感觉应用场景非常有限。
如果我们想绕过内核网络堆栈,看起来我们必须使用 AF_XDP 套接字。
这是否意味着我们必须修改用户空间程序?
但是APK这么多,这么多APK配合修改难吗?
个人感觉应用场景非常有限。
确实可以使用AF_XDP
套接字绕过内核。使用 XDP 的主要卖点是可以选择性地绕过。例如,您的 XDP 程序可以选择仅绕过特定 IP+TCP 端口的流量,从而允许系统的其余部分正常运行。因此,您无需修改所有应用程序,只需修改您想要使用内核绕过的应用程序。
绕过网络堆栈也意味着内核不再为您做任何事情(TCP 重新传输、数据包确认、重新排序、碎片整理)。因此,任何不想绕过内核的应用程序也必须实现自己的网络堆栈才能像普通套接字一样使用它。如果那是您的用例,您可能需要研究DPDK,它可以选择在底层使用 XDP,但可以为您做更多的事情。
至于典型用例: