零拷贝技术,展示了一个IO读写流程:DMAread读取磁盘文件内容到内核缓冲区拷贝内核缓冲区数据到应用进程缓冲区(内核态和用户态的切换)从应用进程缓冲区copy数据到socket缓冲区(内核态和用户态的切换)DMA copy给网卡发送可以清楚得看到,上述IO流程包含两次用户态和内核态上下文切换,在高并发场景下,这些会很致命。因此,Linux提出了零拷贝的概念:即避免用户态和内核态的切换,直接在内核中进行数据传递。