技术栈

高性能io

垆边人似月.
7 小时前
网络·c/c++·rdma·高性能io·tcp与rdma
RDMA项目踩坑(一):为什么最后一块数据必须使用实际长度?关键词:RDMA、SEND/RECV、ibv_wc、文件传输、尾块处理我在使用 C 语言和 librdmacm、libibverbs 实现文件同步时,最初沿用了传统 Socket 编程的思路:申请一块固定大小的内存,循环读取文件并发送,接收端按缓冲区容量推进文件偏移。这个方案在文件大小恰好为缓冲区整数倍时不容易暴露问题,但文件通常存在不足一块的尾部数据。此时,如果 SEND 的 SGE 长度仍设置为整个缓冲区大小,发送端就会把本次没有从文件读取到的内存也发送出去。即便接收端最终按照文件总长度停止循环,也无
我是有底线的