前言
无论在C语言编程中,还是在C++编程的底层网络编程中,经常会进行网络收发操作,而且很有可能会对这些报文会进行扩展或封装,那么在收发缓冲buffer的前后增加多余的空间,将是非常有利的,这样可以避免对网络报文的反复拷贝。
此网络收发报文缓冲区预留前缀、后缀空间的最佳实践,在VPP等高性能处理程序中经常可见,在此将其介绍过来 :)
抽象伪码
----------------------------------------------------------------------
... prefix space | | | | | | | | | | suffix space ...
----------------------------------------------------------------------
^ ^ ^ ^
| | | |
base rd_ptr wr_ptr capacity
unsigned char base[MORE_BIGGER_THAN_PKT_SIZE];
//

在C/C++的网络编程中,预留缓冲区的前缀和后缀空间可以避免收发报文时的额外拷贝。这种方式常见于高性能处理程序如VPP中。通过在读写指针之间存储报文,并在前后添加扩展信息,可以提高效率,减少内存操作。
最低0.47元/天 解锁文章
3935

被折叠的 条评论
为什么被折叠?



