- 博客(52)
- 收藏
- 关注

原创 DPDK官方文档说明
36、dpdk-pipeline:展示了与P4语言一致的软件交换机(SWX)管道的特性37、dpdk-eventdev_pipeline:使用软件PMD使用eventdev API。5、dpdk-dumpcap:支持条件过滤的抓包工具,它作为辅助DPDK进程运行,捕获进出DPDK主进程的数据包。33、dpdk-vdpa:通过使用vdpa后端创建vhost-user套接字34、dpdk-ip_pipeline :DPDK pipeline模式处理报文的示例。更详细的实现,可以看L2和L3转发示例应用程序。
2023-06-04 14:39:22
311

原创 DPDK相关开源代码汇总
f-stack是基于DPDK(Data Plante Development Kit)实现的一个用户态的协议栈,从FressBsd协议栈移植而来的用户态协议栈。它的目的是通过编程扩展支持大规模网络自动化,同时还支持标准的管理接口和协议。dpvs是爱奇艺公司基于DPDK开发的高性能第4层负载均衡器(Layer-4 load balancer),dpvs的名字来源于DPDK+LVS,这里的LVS是阿里巴巴改进版的lvs。》中,我们讲了学习DPDK的相关资料,今天我们来讲一下DPDK相关的开源代码。
2023-06-01 21:22:58
418

原创 DPDK相关学习资料汇总
8.《DPDK应用基础》,作者:唐宏,柴卓原,任平,王勇,等 ,本书不仅深入浅出地介绍了DPDK的基础原理和安装调试方法,还详细介绍了DPDK在NFV中的应用场景和测试方法,并叙述了DPDK应用开发的技术细节和实践经验,是DPDK的入门,是了解NFV加速转发技术的指南。5.《深入浅出DPDK》(作者:张梅、许云杰)- 该书是目前市场上关于DPDK的最佳实践和最全面的参考书之一,既深入浅出地介绍了DPDK的基础知识,又详细地讲解了如何使用DPDK构建高性能的应用程序。
2023-05-31 21:36:08
492

原创 suricata中DPDK收发包源码分析1
2)source-dpdk.c在RegisterAllModules()函数中调用TmModuleReceiveDPDKRegister()和TmModuleDecodeDPDKRegister()来注册DPDK对应的收包和解码两个module,大部分代码是对这两个module提供的API函数的实现,包括收包前的初始化和收取报文,解码前的初始化和报文解码。好了,关于suricata中DPDK收发包的初始化以及框架代码的分析就到这里了。
2023-05-14 21:36:19
311

原创 DPDK抓包工具dpdk-dumpcap的使用
dpdk-dumpcap工具是一个数据平面开发工具包(dpdk)网络流量转储工具。该界面类似于Wireshark中的dumpcap工具。它作为辅助DPDK进程运行,允许您捕获进出DPDK主进程的数据包。dpdk-dumpcap以Pcapng数据包格式写入文件。
2023-05-08 22:05:06
426

原创 基于DPDK收包的suricata的安装和运行
先用lshw -C network -businfo命令找到网卡的pcie地址,然后在/usr/local/etc/suricata/suricata.yaml文件中配置suricata DPDK收包,主要修改interface和copy-iface配置。suricata是一个基于规则的入侵检测和防御引擎,功能强大,但性能可能 差强人意,不过目前最新的7版本已经支持DPDK收包了,DPDK是Intel提供的高性能网络收发包开源库,可想而知,suricata支持DPDK收包会带来性能的极大提升。
2023-03-30 11:09:03
474
10

原创 DPDK的源码编译安装
操作系统版本:Ubuntu 20.04.5DPDK版本: 21.11Intel® DPDK全称Intel Data Plane Development Kit, 是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持。PATHPATHmake成功编译后,可以看到生成了igb_uio.ko驱动文件,后面会加载这个文件。cd dpdk/
2023-03-30 10:40:39
249

原创 Hyperscan的源码编译安装
Hyperscan是一个正则表达式引擎,旨在提供高性能、同时匹配多个表达式的能力以及扫描操作的灵活性。要想实现高性能的字符串或者正则匹配,就可以使用它。操作系统版本: Ubuntu 20.04.5。Hyperscan版本: 5.3.0。
2023-03-30 09:03:52
307
原创 DPDK网卡PMD驱动常用属性字段和API函数汇总
使用方法:rte_eth_dev_configure函数的struct rte_eth_conf的参数指定rxmode.mq_mode = RTE_ETH_MQ_RX_RSS_FLAG,rx_adv_conf.rss_conf指定哈希key。如果网卡支持RTE_ETH_TX_OFFLOAD_MT_LOCKFREE属性,则多个线程可以在没有锁的情况下,在同一个Tx队列上并发地调用rte_eth_tx_burst()发送报文。请注意,扩展统计信息标识符是驱动程序特定的,因此对于不同的端口可能不一样。
2023-06-08 22:40:48
原创 开源杀毒引擎库libclamav的使用方法
中我们讲了ClamAV的安装和使用方法,可以很方便的使用ClamAV提供的工具进行病毒扫描,当然我们也可以在我们的程序中集成它提供的libclamav开发库来实现病毒扫描,libclamav是一个功能强大的病毒扫描库,提供了许多API函数来帮助开发者编写自己的病毒扫描程序。CL_INIT_DEFAULT是一个宏,可以传递给代表默认初始化设置的cl_init()。cl_init()完成后,就可以通过调用cl_engine_new()来创建新的扫描引擎了。函数返回一个静态分配的字符串。
2023-06-07 21:50:20
115
原创 开源杀毒引擎ClamAV的源码编译安装和测试
ClamAV是一款免费的开源杀毒软件,支持多种平台,如:Linux/Unix、MAC OS X、Windows,如果我们开发的网络产品想集成防病毒功能,但是又不想付费使用商业杀毒软件,ClamAV是一个不错的选择。7)扫描目录下是否有病毒文件:./clamscan ../etc/,可以看到,在/etc目录下放的一个测试样本文件,被ClamAV成功给扫描出来了。有问题的朋友,可以进网络技术开发交流群提问(先加我wx,备注加群)。好了,ClamAV的源码编译安装和简单测试,到此就已经大功告成了。
2023-06-06 22:09:47
123
原创 suricata的flow流会话管理分析1
1)就是当流表内存不够用时,会有一个紧急状态机制FLOW_EMERGENCY,这个时候不同协议以及不同流状态的老化时间会大大的缩短,加速流表老化,以腾出更多的内存空间为新流所用,例如紧急状态下TCP流的初建阶段的老化时长默认值为FLOW_IPPROTO_TCP_EMERG_NEW_TIMEOUT 10秒,而对于TCP握手完成之后的流老化时长默认为FLOW_IPPROTO_TCP_EMERG_EST_TIMEOUT 100秒。创建流表时,先优先从这些节点上获取flow。喜欢文章内容的朋友,加个关注呗~~
2023-06-05 22:42:35
123
原创 关于f-stack转发框架的几点分析思考
f-stack的报文收发逻辑,简单一点说,就是先使用f-stack的lib库中的DPDK API接口把报文收上来,然后将报文给到移植的FreeBSD协议栈(也可以根据配置的端口,通过KNI过滤部分报文给Linux内核),上层的应用程序比如nginx或redis需要修改原有的socket的API为f-stack封装的socket API,就可以收到DPDK收上来的报文了。5、性能方便,f-stack在较少cpu core的表现较好,就是相同性能表现的情况下,可以比nginx用到的cpu的资源少。
2023-05-28 15:06:34
715
原创 f-stack的源码编译安装
F-Stack是一个全用户态(kernel bypass)的高性能的网络接入开发包,基于DPDK、FreeBSD协议栈、微线程接口等,适用于各种需要网络接入的业务,用户只需要关注业务逻辑,简单的接入F-Stack即可实现高性能的网络服务器。),但是它并没有提供对应的IP/TCP协议栈,所以在网络产品的某些功能场景下(特别是涉及到需要使用TCP协议栈的情况),比如BGP邻居建立、nginx代理转发等等,都需要一套协议栈来实现这些功能。8、编译安装f-stack:。
2023-05-28 14:59:09
683
原创 suricata中的线程管理分析
在runmodes.c中定义了如下的线程命名,从中大概可以看出suricata存在哪些线程,由于我们重点关注的是DPDK的workers模式收包,所以无关的线程,我们暂时不关注(已在下面的线程名后面标识出来)一文中,我们讲到了suricata中如何自定义命令,现在我们来实践一下,加入threads-list和slots-list这两个自定义命令,分别查看suricata的线程列表以及指定线程的slots。有问题或者需要自定义命令源码的朋友,可以进网络技术开发交流群提问(先加我wx,备注加群)。
2023-05-23 22:31:24
12
原创 suricata的Decode协议解码流程源码分析
一般报文的解码流程比较简单,先确定报文的起始位置和总长度,这两个值在ReceiveDPDKLoop中PacketSetData函数,将DPDK mbuf的报文起始地址和报文总长度赋值给了suricata报文Pakcet结构体的ext_pkt和pktlen。DPDK解码流程的函数入口是DecodeDPDK,解码流程按照以太网层、网络层、传输层以及负载一层层找到报文中指定的位置,并且记录相关字段,最后在FlowSetupPacket函数中根据建流的需要打上相应的标记以及计算出流表的哈希值。
2023-05-22 21:58:02
8
原创 DPDK内存池使用注意事项1 -- 重复释放问题
DPDK提供了内存池的接口,可以很方便地让我们进行内存节点的管理分配,但是如果使用不当,可能会造成很隐蔽的问题。有问题的朋友,可以进网络技术开发交流群提问(先加我wx,备注加群)。喜欢文章内容的朋友,记得加个关注哦~~所以,我们在使用DPDK内存池时,为了避免这种问题出现,一定不能重复释放内存节点。好了,关于DPDK需要注意的重复释放的问题就讲到这里了。下面讲到的是DPDK内存池节点重复释放导致的问题。
2023-05-21 12:40:51
10
原创 suricata中command的实现分析和自定义命令方法
1)注册命令:在UnixManagerThreadSpawnNonRunmode函数中注册命令"just-test": UnixManagerRegisterCommand("just-test", Justtest, NULL, 0);SCEnter();int i = 0;
2023-05-20 12:10:10
172
原创 应用层HTTP协议详解 - 跟小智一起学网络(5)
前言哈喽,小伙伴们,大家好,我是小智。前面的准备工作都做好了,现在我们就要真正开始学习网络协议知识了。在上一章节中,我们使用 Wireshark,简单分析过访问世界上第一个网站 http://info.cern.ch(后面简称 cern 网站)的 HTTP 报文,不过这个分析太过于简单。由于 HTTP 使用得非常广泛,在互联网公司面试中,HTTP 也被经常问到,所以我们有必要比较系统的来学习一下它。这个章节包含的内容如下:正文HTTP是什么HTTP,全称HyperText Transfer
2020-11-28 16:38:02
548
原创 网络报文分析工具的使用 - 跟小智一起学网络(4)
前言哈喽,小伙伴们,大家好,我是小智。在后面的网络知识学习中,都离不开对数据报文的分析。俗话说,工欲善其事,必先利其器。掌握网络分析工具的基本使用,对我们后面的学习会起到事半功倍的效果。网络世界中的数据报文(我们也叫它数据包)看不见摸不着,但是通过 Wireshark 这款软件,我们不仅可以抓取到报文,而且还可以详细分析报文的每个字段。这个章节包含的内容如下:tcpdump的安装由于前面安装的 CentOS 没有图形化界面,所以在 CentOS 里面不能直接使用 Wireshark 抓包,我们
2020-11-28 15:34:32
2757
6
原创 《跟小智一起学网络》教程目录
写在前面 - 跟小智一起学网络(1)计算机网络概述 - 跟小智一起学网络(2)Linux系统学习环境搭建 - 跟小智一起学网络(3)
2020-11-28 12:37:00
132
原创 Linux系统学习环境搭建 - 跟小智一起学网络(3)
前言哈喽,小伙伴们,大家好,我是小智。在正式开始学习网络知识之前,我们先把学习环境先搭建好,这样在后面学习的过程中,就可以边学习理论边实践啦。这个章节包含的内容如下:虽然我们日常生活或者在大学教学中,大都是使用 Windows 系统,但是实际工作进行软件开发时,使用 Linux 还是占绝大部分,所以我们学习环境的操作系统选择的 是Linux。安装 Linux 系统,最简单的就是在我们平时使用的电脑上安装一个虚拟机就行了。正文安装VMware Workstation安装 Linux 虚拟机,常
2020-11-28 11:56:55
183
原创 计算机网络概述 - 跟小智一起学网络(2)
《跟小智一起学网络》教程目录写在前面 - 跟小智一起学网络(1)前言哈喽,小伙伴们,大家好,我是小智。这个章节,主要让大家先了解一下计算机网络的全貌,能够从整体上建立对计算机网络的认识。主要包含的内容如下:正文计算机为什么要联网?计算机网络,顾名思义,就是由计算机组成的网络,而网络的定义是由若干节点和连接这些节点的链路组成。所以计算机网络,我们可以理解是由很多计算机和连接这些计算机的通信链路组成的一个网状的系统。那我们有没有想过,计算机为什么要组成网络呢?设想一下,如果我们正在使用的
2020-11-25 22:21:17
1015
原创 写在前面 - 跟小智一起学网络(1)
写在前面《跟小智一起学网络》是一个有关计算机网络的学习教程。这个章节是对教程的介绍,主要包含的内容如下:教程的特点1)重点突出,贴近实际教程对计算机网络教材中的重点章节进行深入讲解,所讲内容更贴近实际工作,让学习者能够做到学以致用。2)通俗易懂,学习门槛低教程通过大量的举例和配图,尽可能将复杂的问题简单化,学习门槛低,非常适合初学者。3)重视实践,兼顾理论教程坚持理论指导实践,实践检验理论的原则。通过网络工具的分析、对Linux系统的实际操作以及代码的编程,让学习者加深对网络理论知识的理
2020-11-22 11:48:08
278
2
原创 3. 计算机MAC寻址的这些细节,你真的懂了吗
小智的疑问小智: 大鹏哥,上节中你讲的QQ发消息的那个例子,我有个问题没太想明白,就是以太网报文头里面的目的MAC是从哪里来的啊?源MAC好理解,源MAC是我自己电脑网卡的MAC,肯定有办法获取到,可是目的MAC从哪里获取呢?还有目的MAC到底是谁的MAC,是目的主机的MAC吗?大鹏: 你问得很好,从这个问题开始,我们就慢慢开始深入到通信的细节了。首先我得说下,目的MAC其实有两种情况,如果是在“国内”通信,目的MAC是目的主机的MAC,如果要跟“国外”通信,目的MAC是源主机的网关的MAC。小
2020-10-21 23:39:20
1475
2
原创 2. 计算机网络中各个层次间是如何配合工作的
小智: 大鹏哥,上次你给我讲了网络分层,还有各个层次间的作用,可是我还是没搞清楚他们之间是如何配合一起工作的呢?协议报文大鹏:别急,在搞清楚这个问题之前,我们得先了解另外一个在网络中非常重要的概念——报文,报文是各种网络协议一起配合完成网络通信的最终实体,不管是哪种网络协议,不管协议多么复杂,也不管两台主机要互相发送什么内容,最终在网络当中传输的都是一个一个的协议报文。就像人说话,说的内容用文字记录,网络协议的内容是用报文来记录的。要搞清楚网络中各个层次之间配合工作的机制,通过看每层协议的报文就很可以很
2020-10-20 23:11:53
553
原创 计算机网络到底讲了些什么
小智:大鹏哥,我最近看了下计算机网络,把书上的内容都过了一遍,可是感觉还是串不起来,不知道计算机网络到底讲了些什么内容,也不知道重点在哪里,你能不能给我梳理梳理呀!计算机为什么要联网大鹏:行,那咱们就从“计算机网络”这五个字说起,计算机网络,顾名思义,就是由计算机组成的网络,那计算机组成网络要干什么呢?我们知道,不联网的计算机只能单兵作战,只能玩单机游戏,只能简单的处理文档,而通过联网,计算机可以玩网游,可以看电影,可以聊QQ,总之,计算机联网之后功能大大扩展。那回到刚刚计算机要组成网络的问题,很显
2020-10-18 19:08:24
5680
18
原创 有一个属于自己的网站是不是很酷呢,超详细的建站流程,我都给你总结好了
上篇文章Relax讲到希望在AR这个方向上做一些事情,落实到具体上肯定是要做一些东西出来,从软件层面来说,传统互联网兴起是以成千上万的网站呈现的,移动互联网是以成千上万的APP呈现的,当然其实还有别的方式,比如小程序,浏览器插件,自媒体等等,那么基本的,Relax自然也想搭建一个属于自己的AR内容网站。其实Relax的网站已经搭建好了,并且可以正常访问了,每个栏目下面都已经有了部分相关的内容,目...
2020-03-04 10:25:42
2939
6
转载 七麦研究院首发AR产品数据报告,数读App Store上的AR世界
AR 是增强现实的一种科学技术,同时也是将虚拟信息与真实世界巧妙融合的技术。从 2015 年开始,AR 行业投融资开始爆发,风口正式确立,资本迅速涌入。基于此,七麦研究院重磅发布《2019 年 AR 产品数据报告》(访问AR新世界查看原版PDF报告),更加深入了解 App Store 上的 AR 世界。让更多用户感受到 AR 技术给予产品的魅力No.1AR 发展历程及里程碑相...
2020-01-07 22:24:18
476
原创 AR开发之路---想法和行动
又有一段时间没有更新文章了,不是不想更新,实在是精力有限,最近又有些朋友关注了我,所以还是想跟大家分享下,最近的一些想法和最近在做什么。首先说下想法,AR目前的应用主要还在军事或者工业领域,比如电力、汽修等,很多厂商发布的都是工业AR眼镜,所以说了解AR的人并不多,网上关于AR的文章,看的人也比较少,开发教程就更是寥寥无几了;但是Relax注意到了,目前谷歌、苹果、Facebook、阿里、华为...
2019-12-29 22:12:37
311
原创 AR增强现实应用开发入门之示例运行
上篇文章Relax给大家讲了一下如何搭建Unity的AR开发环境,不知道大家是否已经搭建好了开发环境呢?如果大家在搭建环境的过程中遇到有什么问题,可以加群或后台留言,问Relax就行了。首先请大家新建一个Unity工程,然后导入ARCore Unity SDK开发包,Relax用的是1.12.0版本,名称是:arcore-unity-sdk-1.12.0,这个安装包Relax已经上传到群里面,大...
2019-12-29 22:07:13
526
原创 AR增强现实应用开发入门之环境搭建
上一篇文章《AR应用开发入门之总体篇(一)》,Relax从总体上讲了AR当前的发展情况、AR开发平台的选择以及学习资料等等,Relax选择的开发工具是Unity,AR SDK使用Google的ARCore,这篇文章就讲一讲具体如何搭建一个开发环境,开发环境搭建好了,大家就可以按照教程愉快的开始我们的AR开发之旅了。1、安装JDKJDK全称是Java平台标准版开发工具包(JDK),它是一个使用J...
2019-12-29 22:03:49
907
原创 超详细的AR增强现实开发入门总结
最近有一些朋友在QQ群或者微信公众号后台问Relax关于AR应用开发如何入门的问题,我想后面肯定还有很多人会问这样的问题,干脆就自己所知道的,比较系统的写一篇入门文章出来,供大家参考一下。这是AR应用开发入门的第一篇,先从整体上给大家讲一下,后面文章再分开来详细讲。1、AR发展现状在做AR开发之前,有必要说一下AR开发的现状。AR目前已经在军事和工业方面有比较多的应用,硬件设备大都是基于AR...
2019-12-29 21:57:41
4411
2
原创 通过wifi连接手机使用adb命令调试APP
现在才知道以前调试APP很傻,每次都搞一根USB线连到电脑上,今天才发现通过wifi其实可以实现无线安装调试APP,感觉太高级了,一下觉得自己之前是多么的low,为什么要用无线呢,主要是调试AR应用,需要手机到处移动来测试,所以通过wifi无线方式来调试,太nice了有木有。所以赶紧写篇文章来分享给大家。那么具体怎么操作呢?上篇文章写道,Relax入手的是一部华为Nova 3i,所以第一步需要打...
2019-12-29 21:47:51
1365
原创 AR开发之路——准备工作
由于现在支持AR功能的手机没有普及,讲AR开发的教程也少,所以要学习AR开发还是要花点成本的,当然也有好处,花了学费,才会逼着自己坚持学下去。为了学习AR,Relax今天入手了一部华为Nova 3i手机,1200大洋,算是国内支持AR最低端的手机了,刚用Unity打包出的ARCore HelloAR示例应用测试了一下,支持AR没问题,所以想学习AR开发,手里又没有支持AR手机的朋友,可以跟Rel...
2019-12-29 21:40:13
553
原创 运行ARCore官方示例hellosceneform遇到的问题
Google ARCore 官方网站https://developers.google.cn/ar/develop提供了ARCore几种类型的API,由于我是选择android开发,所以选择android相关的,android也分为两种,Android和Android NDK,NDK是原生语言开发的意思,就是说可以用c/c++等语言进行开发,我选择用java,所以就选择Andoid的SDK,点击A...
2019-12-29 21:36:34
586
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人