高性能批量读写网络包

鸟窝 at 
高性能批量读写网络包的配图
虽然网络协议栈提供了丰富的功能,让我们可以方便的实现网络的数据交流,但是有时候我们对协议栈的性能还是不是那么满意的,前几篇文章我也介绍了通过 XDP 等技术高效处理网络数据的方式,但是毕竟 XDP 还没有那么广泛的应用,使用起来也还不是那么简单,如果我们通过编程语言提供的标准库来实现数据的读写,还怎么能提高性能呢?今天就介绍一种方式,批量的读写数据包。直观上看,我们也能理解批收发网络包比单个的收发网络包更有效,因为在普通的单个收发包的逻辑中,每次收发一个包都至少需要一次系统调用(Send/SendTo, Read/RecvFrom),而批处理方式下,一次系统调用就可以处理多个网络包,所以从理论……