当前位置: 首页 > Linux

sendfilezero-copy

时间:2023-04-06 03:39:03 Linux

在传统的读写网络文件传输过程中,文件数据实际上经历了四次拷贝操作:硬盘—>内核buf—>用户buf—>socket相关缓冲区—>协议引擎和sendfile系统调用减少以上多次拷贝,提高文件传输性能:硬盘—>内核buf—>用户buf—>socket相关缓冲区—>协议引擎1、sendfile系统调用,将文件数据复制到内核缓冲区2,然后从内核发送将buffer复制到内核中socket相关buffer3.最后将socket相关buffer复制到协议引擎将kernelbuf缩减为userbuf,再将文件从userbuf复制到socket-相关缓冲区---[2016-12-15]---