来学点eBPF and XDP装一下

前言

接触到这个概念总是在所难免,毕竟搞安全的,之前也看过eBPF,但是没有深究,这次就来看看这个,有个大概得认知,知道这个是什么东西。以后有涉及的时候,才知道从哪里下手。

原文链接:【Linux新技术基石 |​eBPF and XDP】

eBPF

1-概念

BPF 是 Linux 内核中高度灵活和高效的类似虚拟机的技术允许以安全的方式在各个挂钩点执行字节码。它用于许多 Linux 内核子系统,突出的是网络、跟踪和安全(例如沙箱)

BPF 是一个通用目的 RISC 指令集,其初的设计目标是:用 C 语言的一个子集编 写程序,然后用一个编译器后端(例如 LLVM)将其编译成 BPF 指令,稍后内核再通 过一个位于内核中的(in-kernel)即时编译器(JIT Compiler)将 BPF 指令映射成处理器的原生指令(opcode ),以取得在内核中的佳执行性能。

在这里插入图片描述
尽管 BPF 自 1992 年就存在,扩展的 Berkeley Packet Filter (eBPF) 版本出现在 Kernel3.18中,如今被称为“经典”BPF (cBPF) 的版本已过时。许多人都知道 cBPF是tcpdump使用的数据包过滤语言。现在Linux内核只运行 eBPF,并且加载的 cBPF 字节码在程序执行之前被透明地转换为内核中的eBPF表示。除非指出 eBPF 和 cBPF 之间的明确区别,一般现在说的BPF就是指eBPF。

2-框架

在这里插入图片描述

XDP

1-概念

XDP的全称是: eXpress Data Path

XDP 是Linux 内核中提供高性能**、可编程的网络数据包处理框架。**

在这里插入图片描述

  • 直接接管网卡的RX数据包(类似DPDK用户态驱动)处理;

  • 通过运行BPF指令快速处理报文;

  • 和Linux协议栈无缝对接;

2-框架

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_Hcoco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值