为什么我们使用Linux内核的(网络)协议栈?

Posted llc_no1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我们使用Linux内核的(网络)协议栈?相关的知识,希望对你有一定的参考价值。

1,内核态协议栈可以为多个网络应用服务,用户态协议栈就不行。比如DPDK,它会将网卡从内核unbind,然后自己独占。

2,内核态协议栈提供了丰富的协议支持/调试手段,稳定性也经过时间的检验。反观用户态协议栈处于起步阶段,对网络协议的支持有限,

      大都是适配应用场景的二次开发。

 

如果是小型设备,通用需求,请使用内核协议栈

如果是大型设备/数据中心,需求固定,请使用DPDK等用户态协议栈,结合网络虚拟化技术,会获得最适合的性能。

 

以上是关于为什么我们使用Linux内核的(网络)协议栈?的主要内容,如果未能解决你的问题,请参考以下文章

操作系统内核和网络协议栈在哪里重叠?

Linux操作系统原理—内核网络协议栈

Linux内核中网络数据包的接收-第一部分 概念和框架

[架构之路-44]:目标系统 - 系统软件 - Linux下的网络通信-4-Linux内核网络协议栈网络配置命令网络服务启动

Linux 网络协议栈之内核锁—— 读写自旋锁

linux 内核网络协议栈阅读理解--带详尽注释以及相关流程调用注释,附 github 注释后源码