eBPF是一种注入式技术,让研究内核的工程师们在应用层上展现自己的奇思妙想,这种能力确实让人趋之若鹜。
近些年来,内核的网络协议栈总被人诟病,人们对网络的依赖感越强,这种声浪也就越明显。暴露出问题很好,因为会涌现很多好玩的东西。
内核被人diss的本质原因就是用户态和内核态大量的上下文切换!应付的任务越多,切换的越频繁,开销也就越大,速度也自然快不起来。
网络任务因需求量自然居高不下,现在谁也不能断别人的网,网意味着生活技能!
于是,聪明人开始想办法解决这种‘慢’的影响,首先‘慢’有很大程度上来自于数据包处理,让数据包走快速路径处理(也就是没那么多审查,限制多了自然会慢)是解决问题的核心诉求。
简单再说下DPDK
DPDK是一种解决诉求的高效方案,它放弃了传统的内核网络协议栈处理,用内核旁路机制,跨过了完整的内核网络协议栈。决定在应用层上去加速数据包处理,把快速路径放在应用层,不用受到内核的限制,这样可以减少大量的上下文切换的开销,是一种改革派的做法。
为什么DPDK不是万应灵药
因为改革派是要放弃所有原本的东西,认为它的一切都是不合理的。但内核的快速路径处理虽然比DPDK要慢,但完全放弃内核的数据包处理,自然也意味着要放弃很多内核支持的机制。如果在应用层复现这些机制则会显得不伦不类,你关注网络,却要实现很多管理,安全的工作,等于在应用层造一个内核,这不高效,它只会变得更复杂。
内核也在求变
内核不是短时间的革新,但它也在推新。并且赋予一些技术以手段。不是老古董,这可能是技术人的亮点。
eBPF在内核的网络层面上有下了很大的功夫,这很显而意见,定制化的优化考虑到了不同使用者的应用场景,也使得eBPF的路越走越宽,完全可以和应用层那些能力扳扳手腕。
那就可以聊聊eBPF在网络上是怎么去解决快速数据包处理这样的诉求的,也就是XDP技术。
既然同样是想快速处理数据包,那么第一个念头肯定是多余的路不走。
驱动作为

文章介绍了eBPF作为内核注入式技术如何改进网络数据包处理,尤其是通过XDP技术减少上下文切换,提高处理速度。讨论了DPDK的优缺点,并指出内核也在通过eBPF进行变革,提供更高效的网络解决方案。
最低0.47元/天 解锁文章
7465

被折叠的 条评论
为什么被折叠?



