网络:DPDK复习相关知识点

news2024/11/13 14:44:18

1.转发模型:

        

1.1 运行至完成:run to complate (RTC)

        参考笔记:DPDK介绍-CSDN博客

        选择哪些核可以被DPDK使用,最后把处理对应收发队列的线程绑定到对应的核上,每个报文的生命周期都只能在其中一个线程中。目前抗D检测设备用的就是着模型。

        调用DPDK的的API接口实现网络功能,需要二次开发,会有处理流程上的依赖问题,扩展性较好。

1.2 管道模型:pipeline

        参考笔记:DPDK介绍-CSDN博客

        pipeline的主要思想是不同的工作交给不同的模块,而每一个模块都是一个处理引擎,每一个处理引擎都只能单独处理特定的事务,每一个处理引擎都有输入和输出,通过这些输入和输出将不同的引擎连接起来,完成复杂的网络功能

        利用脚本方式可以快速配置需要的网络单元,迅速构建需要配置的网络单元,迅速构建网络产品所需要的功能,但在多核之间会有缓存一致性的问题,并且扩展不好。

2.大页内存

巨型帧结构.....

struck rte_mempool(内存池) ->struck rte_mbuf->网络数据帧内容

                                ->struck rte_mbuf

                                ->struck rte_mbuf

                                .....

Mbuf对象:

数据包内存操作对象:Mbuf结构,有限的Mbuf对象存储在内存池中,内存池用环形缓存区来保护空闲对象。当一个网络帧被网卡接收时,dpdk的网卡驱动将其存储在一个高效的环形缓存区中,同时在Mbuf的环形缓存区中创建一个Mbuf的对象

内存池双环形缓存区结构:

当然,两个行为都不涉及向系统申请内存,这些内存已经在内存池被创建好时就申请好了,Mbuf对象被创建后,网卡驱动根据分析出来的帧信息将其初始化,并将其和实际帧对象逻辑相连。对网络的分析处理都集中在Mbuf,仅在必要的时候访问实际网络帧,为增加对Mbuf的访问效率,内存池还拥有内存通道/rank对其辅助方法,内存池还允许用户设置核心缓存区大小来调节环形内存块读写的效率。

        Mbuf ------------》Packet :Mbuf对象和实际的packet是逻辑关联

3.内存结构

hugtlb

TLB:translation lookaside buffer 地址转换后援缓冲器,也简称为“快表”

        页表一般都很大(默认大小是4kb),并且存放在内存中,所以处理器引入MMU后,读取指令,数据需要访问两次内存:首先通过查询页表得到物理地址,然后访问物理地址读取指令,数据。为了减少因为MMU导致的性能下降,引入TLB,简单的说TLB就是页表的cache,其中存储了当前最可能被访问的页表项,其内容是部分页表项的一个副本。只有在TLB无法完成地址翻译任务时,才会到内存中查询页表,这样就减少了页表查询导致的处理器性能下降。

        详细参考:TLB的作用及工作过程 - 知乎

TLB命中:当CPU收到应用程序发来的虚拟地址后,首先到TLB中查找相应的页表数据,如果TLB正好存放着所需要的页表项,则称为TLB命中(TLB hit),如果TLB miss 接下来就必须访问物理内存中 存放的多级页表,同时更新TLB页表。

        每个进程都有属于各自的多级页表,而tlb表只有一个,位于cpu的高速缓存中。那cpu怎么知道tlb中存放的是哪个进程对应的虚拟地址转换信息呢?这里会引入一个cr3页表寄存器,存放的是某个进程的一级页表的地址。当cpu对某个进程提供的虚拟地址进行转换时,会将进程的一级页表加载到cr3页表寄存器,tlb中存放这个进程对应的地址转换信息,这样这个进程就与tlb关联起来了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑桌面日历怎么设置?超简单方法分享!

案例:电脑桌面日历怎么设置? 【最近因为工作的原因到了国外,但是电脑桌面的日历和时间一直都是错误的,急求一个设置电脑桌面日历的方法!感谢大家!】 电脑桌面日历是一种方便实用的工具,它可以…

liunx笔记

快捷键 #移动到行首 ctrla #移动到行尾 ctrle #删除光标之前的字符 ctrlu #删除光标之后的字符 ctrlk #清屏 ctrll正则表达式 正则中普通常用的元字符 元字符功能.匹配除了换行符以外的任意单个字符*前导字符出现0次或连续多次.*任意长度字符^行首(以…开头),如…

浅谈浏览器调试

浅谈浏览器调试 1. 假设你在控制台打印了一个变量 , 想在浏览器追踪从哪里来要到那里去:2. 开启source maps3. watch 可以监听当前变量, 也可以在scope中看当前作用域的变量:4. call Stack 可以查看当前调用链, 找到对应代码进行debugger5. 你…

TCP / IP 五层网络模型

目录 一、协议的概念 1.1 网络通信为什么需要使用协议 二、网络模型 2.1 OSI 七层模型 三、TCP / IP 五层网络模型 四、协议分层的背景下,数据如何通过网络传输? 4.1 再谈协议 4.2 封装 / 分用 vs 序列化 / 反序列化 4.3 什么是端口号 4.4 什么…

创新实践|导致创新团队敏捷实践失败的12种原因

揭示敏捷实践中常犯的12大错误,了解如何避免这些敏捷失败 陷阱,找出问题根源并采取有效改进措施,提高项目成功率。立即连线 Runwise.co 社区敏捷专家获得专业建议,或 Runwise.co 在线学习敏捷方法实战课程,提升您和团队…

layui入门使用文档(包含几个重要的组件)

一、引言 :注意部分配置是用到了和jsp交互使用在HTML时需要修改 1.1 介绍 https://www.layuiweb.com/ 在官网首页,可以很方便的下载LayUI LayUI 是一款经典模块化前端 UI 框架,我们只需要定义简单的HTML、CSS、JS即可实现很复杂的前端效果。 …

Vue3之setup参数介绍

setup(props, context) {... }一、参数 使用setup函数时,它将接受两个参数: propscontext 让我们更深入地研究如何使用每个参数 二、Props setup函数中的第一个参数是props。正如在一个标准组件中所期望的那样,setup函数中的props是响应…

Elasticsearch:Explicit mapping - 显式映射

显式映射相比较动态映射(Dynamic mapping)是需要我们在索引创建时就定义字段及其类型。这个和我们传统的 RDMS 数据库一样,在我们写入数据到数据库之前,我们需要工整地定义好每个字段及其类型和长度。Elasticsearch 既可以使用显式…

【C++】二叉搜索树(概念、实现、应用)

前言: 此前我们在C语言实现数据结构的时候学习过二叉树,但是那个时候我们没有深入学习二叉搜索树。本章重提二叉树并详解二叉搜索树有下面两个原因: 1、为我们下一章学习set和map做准备;2、详解我们进阶一点的二叉树的面试OJ题&a…

【C++学习】日积月累——二叉搜索树详解

一、二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一棵树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值;若它的右子树不为空,则右子树上…

程序员常用的代码比较工具,你更喜欢哪款?

目录 💡 Linux 命令行的对比工具 一. diff 二. vimdiff命令 💡 GUI 比对工具 三. WinMerge 四. Diffuse 五. Code Compare 六. Beyond Compare 七. UltraCompare 八. Altova DiffDog 九. Kompare 十. Meld 十一. XXdiff 十二. KDiff3 十…

拓扑排序模板及例题

概念 一个有向无环图必然存在一个拓扑序列与之对应。 流程: 先将所有入度为0的节点入队将队列中的节点出队,出队序列就是对应拓扑序。对于弹出的节点x,遍历x所有出度y,对y进行入读减一操作检查入度减一之后的节点y,…

慈航公益·高莞乡情行

2023年4月9日,慈航公益高莞乡情行---高村陈屋第二届“敬老睦宗情暖乡土”活动日暨“英华教育奖学基金”成立大会在高村陈屋如期举行。 高村陈屋位于河源市连平县境内,为了赶上10点开始的活动,清晨六点半,志愿者们便从慈航出发&am…

12电感的应用

目录 一、电源电路使用 1、设计实例 二、高频电路中使用 1、选择Q值高的电感器 2、选择自谐振频率高的电感器 3、选择电感偏差小的电感器 三、控制振荡频率 四、确保高频信号的隔离 五、共模轭流线圈 一、电源电路使用 如式(5)所示,…

数码照片管理系统Damselfly

什么是 Damselfly ? Damselfly 是一个基于服务器的数码照片管理系统。Damselfly 旨在管理基于文件夹的大型照片集合,特别关注快速搜索和关键字标记工作流程。Damselfly 包含强大的机器学习功能,可帮助您识别照片及其主体,包括人脸…

使用Socks5代理保障Windows网络安全

摘要:Socks5代理是一种在Windows系统中保障网络安全的有效方法。本文将详细介绍什么是Socks5代理,以及如何在Windows系统中使用Socks5代理来加强网络安全。同时,我们还将探讨如何编写代码来使用Socks5代理来保障应用程序的网络安全。 正文&am…

报表VS分析:为什么报表做不完?老板到底想要什么?

各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维数据分析,通过数据讲故事。 上一讲和大家讲了分析模型中的战斗机——财务分析模型。通过奥威BI软件的行计算模型来开发财务分析报表异常地简单,…

安装Django

1. 在物理环境安装Django Python官方的PyPi仓库为我们提供了一个统一的代码托管仓库,所有的第三方库,甚至你自己写的开源模块,都可以发布到这里,让全世界的人分享下载 pip是最有名的Python包管理工具 。提供了对Python包的查找、…

Linux 动态库的制作与使用

目录 动态库的制作和使用 动态库的制作和使用 原始结构如下: 先进入calc文件,并生成与位置无关的.o文件 接着生成动态文件库,使用ll指令可以看到,库名为绿色,linux中绿色的文件一般都是可执行文件 将其生成的lib…

如何快速搭建一个SpringBoot项目

前面我们了解了SpringBoot背景和特点,本节我们主要介绍如何快速构建一个SpringBoot项目,以此来提升日常开发效率。 SpringBoot是搭建应用的手脚架,由Spring公司的核心团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。…