什么是零拷贝?
DMA技术:使用一个DMA控制器将数据从硬盘传输到内存,除了一开始调用DMA控制器发起传输,数据搬运全称不需要CPU参与。
发送一段数据到网上如下所示
4次状态切换4次拷贝。
为了加快速度就要减少上下文切换,减少拷贝次数。
mmap+write()
共发生3次拷贝,4次上下文切换。
sendfile
发生两次上下文切换和两次拷贝。
IO多路复用——select/ poll / epoll
基本socket模型
socket是进程通信的一种方式,服务端的一个socket会被绑定一个ip+端口。
然后等待客户端的connect()。TCP连接的具体去看网络的内容。
如何服务更多的用户?
服务器理论上能服务的客户端的TCP数量=ip*端口数。ip有2^32,端口有2^16,所以最多有2^48个客户端。
这也只是理论。<