0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

崔鹏程:初识XDP

Linux阅码场 来源:Linux内核之旅 2020-08-03 15:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在计算机网络中,Hook钩子在操作系统中用于在调用前或执行过程中拦截网络数据包。Linux内核中暴露了多个钩子,BPF程序可以连接到这些钩子上,实现数据收集和自定义事件处理。

Linux内核中的钩子点很多,比如说网络子系统中存在两个钩子:XDP和TC。它们结合在一起,可以用来处理RX和TX上两个链路上靠近NIC的数据包,从而实现了许多网络应用的开发。今天我们简单介绍下XDP。

XDP全称为eXpress Data Path,是Linux内核网络栈的最底层。它只存在于RX路径上,允许在网络设备驱动内部网络堆栈中数据来源最早的地方进行数据包处理,在特定模式下可以在操作系统分配内存(skb)之前就已经完成处理。 XDP暴露了一个可以加载BPF程序的网络钩子。在这个钩子中,程序能够对传入的数据包进行任意修改和快速决策,避免了内核内部处理带来的额外开销。这使得XDP在性能速度方面成为最佳钩子,例如缓解DDoS攻击等 DPDK Intel DPDK全称Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。 DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。Linux内核将DPDK应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式和普通程序没有什么两样。DPDK程序启动后只能有一个主线程,然后创建一些子线程并绑定到指定CPU核心上运行。

XDP 相对于DPDK,XDP具有以下优点:

无需第三方代码库和许可

同时支持轮询式和中断式网络

无需分配大页

无需专用的CPU

无需定义新的安全网络模型

XDP的使用场景包括:

DDoS防御

防火墙

基于XDP_TX的负载均衡

网络统计

复杂网络采样

高速交易平台

XDP输入参数XDP暴露的钩子具有特定的输入上下文,它是单一输入参数。它的类型为 struct xdp_md,在内核头文件bpf.h 中定义,具体字段如下所示:


程序执行时,data和data_end字段分别是数据包开始和结束的指针,它们是用来获取和解析传来的数据,第三个值是data_meta指针,初始阶段它是一个空闲的内存地址,供XDP程序与其他层交换数据包元数据时使用。最后两个字段分别是接收数据包的接口和对应的RX队列的索引。当访问这两个值时,BPF代码会在内核内部重写,以访问实际持有这些值的内核结构 struct xdp_rxq_info。

XDP输出参数在处理完一个数据包后,XDP程序会返回一个动作(Action)作为输出,它代表了程序退出后对数据包应该做什么样的最终裁决,也是在内核头文件bpf.h 定义了以下5种动作类型:

可以看出这个动作的本质是一个int值。前面4个动作是不需要参数的,最后一个动作需要额外指定一个NIC网络设备名称,作为转发这个数据包的目的地。

XDP的位置

最显而易见的是,竟然可以在如此低的层面上把数据包丢弃或者回弹回去,如果面临DDoS攻击,采用这种方式的话,数据包就没有必要上升到Netfilter层面再被丢弃了。说白了,XDP允许数据包在进入Linux协议栈之前就能受到判决。这相当于在网卡驱动层面运行了一个eBPF程序,该程序决定数据包何去何从。 而且,假设我们经过目标网络设备的Ingress流量被我们的XDP程序drop了,专业术语叫RX流向。那么Egress流量是否也会被drop掉呢? 答案是,不会。XDP hook不会作用到Egress流量,也就是TX流向。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    4

    文章

    1479

    浏览量

    43142
  • Linux
    +关注

    关注

    88

    文章

    11854

    浏览量

    219828
  • 网络设备
    +关注

    关注

    0

    文章

    355

    浏览量

    30922

原文标题:崔鹏程: 初识XDP

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    170W AC - DC高效参考设计:XDP™数字电源XDPS2201混合反激控制器

    170W AC - DC高效参考设计:XDP™数字电源XDPS2201混合反激控制器 一、引言 在电子设备的电源设计领域,高效、稳定且成本可控的AC - DC转换器一直是工程师们追求的目标。特别是
    的头像 发表于 05-19 10:50 298次阅读

    探索DLC0700XDP30KF - 2:电子工程师的新选择

    探索DLC0700XDP30KF - 2:电子工程师的新选择 在电子设备的设计领域,显示屏作为人机交互的重要窗口,其性能和质量直接影响着产品的用户体验。今天,我们就来深入了解一下DLC
    的头像 发表于 05-09 11:00 223次阅读

    HC9s12XDP512控制器在段RAM中分配空间不足,怎么解决这个问题?

    HC9s12XDP512控制器在段RAM中分配空间不足。RAM 大小0x2000到 0x3FFF。但分配的空间是0x3FD3的。我仍然遇到问题。
    发表于 04-02 07:16

    吉林省政协领导莅临海辰储能调研指导

    3月6日,吉林省政协党组副书记、副主席吴靖平率调研组一行,在福建省政协、厦门市政协、厦门市科技局相关领导的陪同下,莅临海辰储能调研考察,海辰储能联合创始人、总裁王鹏程热情接待。
    的头像 发表于 03-10 16:17 535次阅读

    福建省副省长王金福莅临海辰储能调研指导

    3月1日,福建省副省长王金福一行莅临海辰储能开展工作调研,深入了解企业生产经营、技术创新及全球化布局等情况。海辰储能联合创始人、总裁王鹏程热情接待并陪同调研。
    的头像 发表于 03-04 11:19 635次阅读

    中兴通讯丽分析全球AI产业竞争格局变化

    1月22日,由《财经》杂志主办、《哈佛商业评论》承办的“甦·新商业盛典2026”在香港举行。中兴通讯首席发展官丽受邀出席“AI产业全球格局与投资参考”主题圆桌对话,围绕AI产业发展趋势及相关能力建设等话题,分享了中兴通讯的思考与实践。
    的头像 发表于 01-26 10:34 949次阅读

    初识马达基本原理及组成部分

    电机分为发电机和电动机两类,马达通常指‌电动机‌,即利用电磁感应原理将电能转换为机械能的装置,常见于起动机、驱动系统等场景。‌ 以下是关于马达的详细介绍: 1.基本原理 马达的工作基于电磁感应定律。当电流通过线圈时,会产生磁场;磁场与另一个固定磁场(由永磁体或电磁铁产生)相互作用,产生转矩,驱动转子旋转。例如,直流马达通过电刷和换向器改变电流方向,使转子持续旋转;交流马达则利用定子绕组产生的旋转磁场带动转
    的头像 发表于 01-05 09:32 1105次阅读
    <b class='flag-5'>初识</b>马达基本原理及组成部分

    海辰储能王鹏程获评2025年厦门市劳动模范称号

    近日,中共厦门市委、厦门市人民政府发布《关于表彰2025年厦门市劳动模范集体、劳动模范和先进工作者的决定》(厦委〔2025〕70号),决定对2025年厦门市劳动模范集体、劳动模范和先进工作者予以表彰。其中,海辰储能联合创始人、总裁王鹏程被授予“厦门市劳动模范” 荣誉称号!
    的头像 发表于 12-25 11:25 926次阅读

    深入解析XDP710热插拔控制器:特性、应用与设计要点

    深入解析XDP710热插拔控制器:特性、应用与设计要点 在电子系统设计中,热插拔控制器是保障系统稳定运行、提高可维护性的关键组件。今天,我们就来详细探讨一下英飞凌(Infineon)的XDP
    的头像 发表于 12-20 15:30 1104次阅读

    XDPXDP700 - 002:MOSFET 适配器板设置指南

    XDPXDP700 - 002:MOSFET 适配器板设置指南 作为电子工程师,在进行硬件设计开发时,对各类评估板和适配器板的了解与使用至关重要。今天就来详细介绍一下 Infineon
    的头像 发表于 12-19 09:55 459次阅读

    海辰储能王鹏程亮相2025高工储能年会并发表主旨演讲

    12 月 9 日,由高工储能、高工产业研究院(GGII)主办的 2025 高工储能年会在深圳召开。海辰储能联合创始人、总裁王鹏程受邀出席,并以《长时储能开启智慧未来》为题发表主旨演讲,系统分享海辰储能在长时储能领域的战略布局、技术突破与全球化落地实践。
    的头像 发表于 12-17 15:13 788次阅读

    中兴通讯丽受邀出席2025腾冲科学家论坛

    人工智能驱动科学进步与产业变革的时代机遇。中兴通讯首席发展官丽受邀出席,系统分享了中兴通讯在泛AI时代的技术布局与创新实践成果。
    的头像 发表于 12-09 11:36 836次阅读

    中兴通讯丽亮相2025 AI创新亚洲峰会

    12月2日,由《经济学人》集团旗下Economist Impact主办的“AI创新亚洲峰会2025”(AI Innovation Asia 2025)在新加坡举行。中兴通讯首席发展官丽受邀出席
    的头像 发表于 12-09 11:27 805次阅读

    海辰储能助力英国绿色能源转型

    2025年9月8日,第二十五届中国国际投资贸易洽谈会在厦门举行,英国作为本届主宾国参与盛会。期间,海辰储能联合创始人、总裁王鹏程受邀与英国驻华大使Peter Wilson(魏磊)会面,双方团队就英国储能市场及合作前景进行了交流。
    的头像 发表于 09-22 17:19 1208次阅读

    鹏程无限正在招募储能产业生态伙伴 聚焦电芯等产品联合开拓市场

    在新型储能向高质量发展进阶的关键期,鹏程无限作为储能电池领域的新兴力量,正加大科研投入,以性能卓越的储能专用电芯,助力储能系统实现全生命周期价值最大化。近日,鹏程无限正式宣布举办储能产业生态伙伴
    的头像 发表于 07-17 15:47 967次阅读
    <b class='flag-5'>鹏程</b>无限正在招募储能产业生态伙伴 聚焦电芯等产品联合开拓市场