XDP/eBPF — BPF

举报
云物互联 发表于 2021/08/06 00:57:22 2021/08/06
【摘要】 目录 文章目录 目录 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。