IEEE 802.3以太网MAC子层为什么不能运行于用户态,而只能运行于内核态?
本帖最后由 liklstar 于 2014-05-15 12:47 编辑IEEE 802.3以太网MAC子层为什么不能运行于用户态,而只能运行于内核态?同样,为什么TCP/IP要运行于内核态,而不能运行于用户态? 个人理解,不一定非得在内核态,只是基于效率或其他设计上的考虑,将其放到内核态了。 我猜:可能是基于“分层”的思想!为了避免用户应用程序过于复杂,通过操作系统向用户屏蔽网络实现,因此才把具体的网络协议实现放入内核,仅向用户进程提供系统调用!
如果是这样,那么在特殊情况下,是否可能由用户进程处理网络协议?也就是说:让网络协议运行于用户态? TCP, IP, MAC, 这些简单点理解就是驱动,它们需要大量的与kernel打交道,如果设计在用户态,不停的使用系统调用会给内核和系统造成很大的负担 Dpdk就是用户态的协议栈 mordorwww 发表于 2014-05-17 16:27 static/image/common/back.gif
Dpdk就是用户态的协议栈
毛,dpdk离协议栈十万八千里 yshwuxian 发表于 2016-06-06 16:32 static/image/common/back.gif
毛,dpdk离协议栈十万八千里
不太准确
dpdk相当于用户态网卡驱动
网卡驱动都放到了用户态,拉磨协议栈也放用户态了。
一般会把用户态协议栈也随DPDK给你 mordorwww 发表于 2016-06-06 17:52 static/image/common/back.gif
不太准确
dpdk相当于用户态网卡驱动
自己在上面开发的当然另算
我如果只用dpdk做软交换机,要个毛的协议栈;同样我如果基于dpdk做了个交换机送给客户,也不能说dpdk就包含了软交换机
yshwuxian 发表于 2016-06-06 20:08 static/image/common/back.gif
自己在上面开发的当然另算
我如果只用dpdk做软交换机,要个毛的协议栈;同样我如果基于dpdk做了个交换 ...
你用DPDK做三层交换机的话,你需要支持IP协议的说 这和协议栈也没多大关系啊,网卡rss,fdir都能读到传输层的数据,协议栈最大的作用是维持网络连接的状态,我只关心单个数据包的数据有必要用协议栈么?华为搞的pof支持任意协议的转发,也没见它用协议栈
页:
[1]
2