使用AF_XDP Socket更高效的网络传输
原文中文,约8100字,阅读约需20分钟。发表于: 。Linux 网络栈并不缺乏功能,它的表现也很好 足以满足大多数用途。但是,在高速网络下,传统网络编程的额外开销占比太大了。在前一篇关于syscall.Socket的文章中,我们介绍了AF_PACKET类型的socket,它的性能着实一般,所有的数据都得在用户态和内核态之间做转换,而且在高并发的情况下还有大量的中断。使用eBPF...
本文介绍了使用AF_XDP Socket发送DNS查询请求的例子,并介绍了XSK的初始化、Desc的获取和Transmit/Poll的使用。同时,文章还给出了一个广播的例子,接收所有数据包并将目的Mac地址改为广播地址再发送出去。