XDP eBPF怎么利用操作系统玩转快速数据包处理

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

eBPF是一种注入式技术,让研究内核的工程师们在应用层上展现自己的奇思妙想,这种能力确实让人趋之若鹜。

近些年来,内核的网络协议栈总被人诟病,人们对网络的依赖感越强,这种声浪也就越明显。暴露出问题很好,因为会涌现很多好玩的东西。

内核被人diss的本质原因就是用户态和内核态大量的上下文切换!应付的任务越多,切换的越频繁,开销也就越大,速度也自然快不起来。

网络任务因需求量自然居高不下,现在谁也不能断别人的网,网意味着生活技能!

于是,聪明人开始想办法解决这种‘慢’的影响,首先‘慢’有很大程度上来自于数据包处理,让数据包走快速路径处理(也就是没那么多审查,限制多了自然会慢)是解决问题的核心诉求。

简单再说下DPDK

DPDK是一种解决诉求的高效方案,它放弃了传统的内核网络协议栈处理,用内核旁路机制,跨过了完整的内核网络协议栈。决定在应用层上去加速数据包处理,把快速路径放在应用层,不用受到内核的限制,这样可以减少大量的上下文切换的开销,是一种改革派的做法。

为什么DPDK不是万应灵药

因为改革派是要放弃所有原本的东西,认为它的一切都是不合理的。但内核的快速路径处理虽然比DPDK要慢,但完全放弃内核的数据包处理,自然也意味着要放弃很多内核支持的机制。如果在应用层复现这些机制则会显得不伦不类,你关注网络,却要实现很多管理,安全的工作,等于在应用层造一个内核,这不高效,它只会变得更复杂。

内核也在求变

内核不是短时间的革新,但它也在推新。并且赋予一些技术以手段。不是老古董,这可能是技术人的亮点。

eBPF在内核的网络层面上有下了很大的功夫,这很显而意见,定制化的优化考虑到了不同使用者的应用场景,也使得eBPF的路越走越宽,完全可以和应用层那些能力扳扳手腕。

那就可以聊聊eBPF在网络上是怎么去解决快速数据包处理这样的诉求的,也就是XDP技术。

既然同样是想快速处理数据包,那么第一个念头肯定是多余的路不走。

驱动作为

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值