use*_*743 10 linux networking network-programming linux-kernel zero-copy
我想知道为什么linux内核(或任何其他主流操作系统)没有零拷贝网络功能的原因?零拷贝我的意思是,数据包/数据流不会被复制以传递给用户空间中的应用程序,但是例如使用内存池类型的分配器来共享内核和用户空间之间的内存.我自己想出了3个理论:
a)我猜有安全问题.但当它们仅用作缓冲区时,是否真的没有办法在用户空间和内核之间安全地共享内存?
b)我猜有稳定性问题.但我们不能假设谁使用零拷贝网络,例如需要实例化并为内核调用传递内存池,是否知道内存管理?意识到足以避免泄漏?
c)到目前为止还没有完成/需要.我无法想象没有人要求这个功能,因为每个使用小数据包大小的人通常会受到"慢速"TCP堆栈实施的瓶颈,并且有第三方工具提供用于0-copy网络以供特殊使用网卡.
随意发布任何猜测,但请注明您是否正在假设或更深入了解保持StackOverflow质量的原因:-)
归档时间: |
|
查看次数: |
7709 次 |
最近记录: |