splice 系统调用就是实现零拷贝的一种方式,它可以将数据从一个文件描述符移动到另一个文件描述符,这两个文件描述符都可以指向网络套接字或者磁盘文件。将数据从一个文件描述符移动到另一个文件描述符时,实际的数据移动操作完全在内核空间完成,所以不需要进行额外的数据复制操作,这就实现了零拷贝。

在内核空间建立 Pipeline,内核缓冲区和 Socket 缓冲区之间建立管道,避免拷贝。

Transclude of zero_copy_sendfile_pipeline.excalidraw