XDP/eBPF — BPF
【摘要】 目录
文章目录
目录
BPF 的诞生背景
BPF
BPF 的运行架构
BPF 的诞生背景
在没有 BPF(Berkeley Packet Filter,伯克利包过滤器)之前,当 Userspace 的应用程序希望对 Packets 进行过滤,以求获得感兴趣的部分时。首先需要将 NIC 收到的所有 Packets 从 Ke...
目录
BPF 的诞生背景
在没有 BPF(Berkeley Packet Filter,伯克利包过滤器)之前,当 Userspace 的应用程序希望对 Packets 进行过滤,以求获得感兴趣的部分时。首先需要将 NIC 收到的所有 Packets 从 Kernel 拷贝一份到 Userspace,然后应用程序再对这些进行过滤。
那么,明显的问题就是,应用程序根本不关心的 Packets 都需要走完一套 Kernel TCP/IP Stack 处理,也就是说对这些 Packets 执行的拷贝操作是无效的、浪费 CPU 资源的。
所有,1992 年,Steven McCanne 和 Van Jacobson 发表了名为《BSD Packet Filter(数据包过滤):一种新的用户级包捕获架构》的论文,论文中描述了 BPF 这一新的数据包过滤技术,支持在 Kernel 中直接过滤数据包,继而避免一些无用的、浪费的拷贝,以此可以让数据包过滤性能提高 20 倍。
BPF
BPF 的核心思想是:直接在 Kernel 执行数据包的过滤。
BPF 的本质是:一种指令集架构(instruction set architecture)
文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。
原文链接:is-cloud.blog.csdn.net/article/details/118729528
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)