当前位置: 首页 > wzjs >正文

做网站需要多少钱西安抽奖小程序制作

做网站需要多少钱西安,抽奖小程序制作,佛山乐居装饰公司,网站空间 jsp【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全,欢迎关注与评论。 1. 概要 👋 在 Suricata 中抽象出线程、线程模块和队列三个概念:线程类似进程,可多线程并行执行操作;监听、解码、检…

【作者主页】只道当时是寻常

【专栏介绍】Suricata入侵检测。专注网络、主机安全,欢迎关注与评论。


1. 概要

👋 在 Suricata 中抽象出线程、线程模块和队列三个概念:线程类似进程,可多线程并行执行操作;监听、解码、检测等网络操作被抽象为模块,由线程执行,而不同的线程可以执行一个或多个不同的模块;队列实现线程间数据包流转,三者的不同组合构成 Suricata 的运行模式。

2. 运行模式

Suricata的运行模式可通过参数 --list-runmodes 显示,执行后结果汇总成表格如下所示,RunMode Type 和 Custom Mode 配置同时指定一种运行模式。

RunMode TypeCustom ModeDescription
PCAP_DEVsingle单线程pcap实时模式
autofp多线程pcap实时模式。来自每个流的数据包被分配到一个一致的检测线程
workers工作者pcap实时模式,每个线程执行从采集到日志记录的所有任务
PCAP_FILEsingle单线程pcap文件模式
autofp多线程pcap文件模式。来自每个流的数据包被分配到一个一致的检测线程
PFRINGautofp多线程pfring模式。来自每个流的数据包被分配到一个检测线程,不同于"pfring_auto"模式,在"pfring_auto"模式中,同一流的数据包可以由任何检测线程处理
single单线程pfring模式
workers工作者pfring模式,每个线程执行从采集到日志记录的所有任务
NFQautofp考虑流的多线程NFQ IPS模式
workers每队列一个线程的多队列NFQ IPS模式
NFLOGautofp多线程nflog模式
single单线程nflog模式
workers工作者nflog模式
IPFWautofp考虑流的多线程IPFW IPS模式
workers每队列一个线程的多队列IPFW IPS模式
ERF_FILEsingle单线程ERF文件模式
autofp多线程ERF文件模式。来自每个流的数据包被分配到一个检测线程
ERF_DAGautofp多线程DAG模式。来自每个流的数据包被分配到一个检测线程,不同于"dag_auto"模式,在"dag_auto"模式中,同一流的数据包可以由任何检测线程处理
single单线程DAG模式
workers工作者DAG模式,每个线程执行从采集到日志记录的所有任务
AF_PACKET_DEVsingle单线程af-packet模式
workers工作者af-packet模式,每个线程执行从采集到日志记录的所有任务
autofp多套接字AF_PACKET模式。来自每个流的数据包被分配到一个检测线程。
AF_XDP_DEVsingle单线程af-xdp模式
workers工作者af-xdp模式,每个线程执行从采集到日志记录的所有任务
NETMAP(DISABLED)single单线程netmap模式
workers工作者netmap模式,每个线程执行从采集到日志记录的所有任务
autofp多线程netmap模式。来自每个流的数据包被分配到一个检测线程。
DPDK(DISABLED)workers工作者DPDK模式,每个线程执行从采集到日志记录的所有任务
UNIX_SOCKETsingleUnix套接字模式
autofpUnix套接字模式
WINDIVERTautofp按流负载均衡的多线程WinDivert IPS模式

2.1 single模式

Suricata 里,single 模式被限制为只能监听单个网卡设备,并且仅仅创建一个线程来执行数据包嗅探解码以及 flow 解析等操作。由于这种单线程的处理方式,开发者在调试和测试过程中能够更方便地进行操作,所以该模式在开发过程中十分实用。

2.2 autofp模式

Suricata autofp 模式中,捕获解码线程负责数据包的捕获与解码,并通过队列将其传递至 "flow worker" 线程进行处理和响应。此模式支持一个或者多个网卡的同时监听,每个网卡设备可通过配置文件设定数据包嗅探线程的数量(例如pcap-interface:ens33-threads配置),而"flow worker"线程处理数量取决于配置文件中threading-cpu-affinity-worker-cpu-set-threads数量。

2.3 workers模式

通常情况下,workers 运行模式的性能表现最佳。在此模式中,每个数据包处理线程都包含完整的数据包处理流程(即完整的数据包管道)。此模式支持同时监听多个网卡设备,且可通过配置文件配置指定每个网卡设备线程数量。

3. 源码分析

3.1 注册运行模式

Suricata 中,RunModeRegisterRunModes 函数是各种运行模式注册函数,该函数会将章节2中通过--list-runmodes 显示的所有运行模式注册到一个全局变量 runmodes 中,该变量的结构和定义如下所示:

typedef struct RunModes_ {int cnt;RunMode *runmodes;
} RunModes;static RunModes runmodes[RUNMODE_USER_MAX];

下面是 RunModeRegisterRunModes 函数示意图:

3.2 注册线程模块

Suricata 中将不同的功能封装成模块的形式,通过将这些模块分配给不同的线程从而显示对线程所实现功能的控制。RegisterAllModules 函数是注册模块的入口函数,将所有的模块功能存储在一个名为 tmm_modules 的全局变量中,该变量的声明与定义如下所示:

typedef struct TmModule_ {const char *name;/** thread handling */TmEcode (*ThreadInit)(ThreadVars *, const void *, void **);void (*ThreadExitPrintStats)(ThreadVars *, void *);TmEcode (*ThreadDeinit)(ThreadVars *, void *);/** the packet processing function */TmEcode (*Func)(ThreadVars *, Packet *, void *);TmEcode (*PktAcqLoop)(ThreadVars *, void *, void *);/** terminates the capture loop in PktAcqLoop */TmEcode (*PktAcqBreakLoop)(ThreadVars *, void *);/** does a thread still have tasks to complete before it can be killed?*  \retval bool*  \param tv threadvars*  \param thread_data thread module thread data (e.g. FlowWorkerThreadData for FlowWorker) */bool (*ThreadBusy)(ThreadVars *tv, void *thread_data);TmEcode (*Management)(ThreadVars *, void *);/** global Init/DeInit */TmEcode (*Init)(void);TmEcode (*DeInit)(void);
#ifdef UNITTESTSvoid (*RegisterTests)(void);
#endifuint8_t cap_flags; /**< Flags to indicate the capability requirement ofthe given TmModule *//* Other flags used by the module */uint8_t flags;
} TmModule;TmModule tmm_modules[TMM_SIZE];

RegisterAllModules 函数实现如下所示:

TmModuleReceivePcapRegister 为例,Suricata 会将网络报文的嗅探功能封装成一个模块,模块中包含初始化函数、销毁函数、主函数等信息,并通过注册函数将其添加到tmm_modules数组中。 TmModuleReceivePcapRegister 函数实现如下所示:

/*** \brief Registration Function for ReceivePcap.*/
void TmModuleReceivePcapRegister (void)
{tmm_modules[TMM_RECEIVEPCAP].name = "ReceivePcap";tmm_modules[TMM_RECEIVEPCAP].ThreadInit = ReceivePcapThreadInit;tmm_modules[TMM_RECEIVEPCAP].ThreadDeinit = ReceivePcapThreadDeinit;tmm_modules[TMM_RECEIVEPCAP].PktAcqLoop = ReceivePcapLoop;tmm_modules[TMM_RECEIVEPCAP].PktAcqBreakLoop = ReceivePcapBreakLoop;tmm_modules[TMM_RECEIVEPCAP].ThreadExitPrintStats = ReceivePcapThreadExitStats;tmm_modules[TMM_RECEIVEPCAP].cap_flags = SC_CAP_NET_RAW;tmm_modules[TMM_RECEIVEPCAP].flags = TM_FLAG_RECEIVE_TM;
#ifdef UNITTESTStmm_modules[TMM_RECEIVEPCAP].RegisterTests = SourcePcapRegisterTests;
#endif
}


文章转载自:

http://ORwq1EoD.yjknk.cn
http://p5Wd7sXH.yjknk.cn
http://3Xjj8ENd.yjknk.cn
http://Naje6syg.yjknk.cn
http://VSkszRHl.yjknk.cn
http://4nndq3KL.yjknk.cn
http://YPTcGoL6.yjknk.cn
http://SfqvJp2c.yjknk.cn
http://y5AoY3nP.yjknk.cn
http://adAS7TOs.yjknk.cn
http://MrPcZ8xZ.yjknk.cn
http://l9WIydHe.yjknk.cn
http://WpgZ0Utb.yjknk.cn
http://gRHfCMqt.yjknk.cn
http://pPF0n5LQ.yjknk.cn
http://EE9SxPAJ.yjknk.cn
http://wb2vqWik.yjknk.cn
http://RzEmSgLZ.yjknk.cn
http://KEalrrPr.yjknk.cn
http://HxxthHGP.yjknk.cn
http://Ik7qCESk.yjknk.cn
http://gWtTS8GC.yjknk.cn
http://5Oxa4tcC.yjknk.cn
http://ELNI8JqK.yjknk.cn
http://KS8Ea8bw.yjknk.cn
http://OSK8RDzv.yjknk.cn
http://xCAsO2lG.yjknk.cn
http://36na4byG.yjknk.cn
http://XYRx5TgV.yjknk.cn
http://UXGE72gV.yjknk.cn
http://www.dtcms.com/wzjs/614613.html

相关文章:

  • 设计网站得多少钱遵义网站推广
  • 宁波网站推广公司价格wordpress修改博客界面
  • 宝安网站制作哪里好网页广告投放
  • 网站类型案例建设自己的企业网站需要什么
  • 如何用ps做网站网页百度给做网站吗
  • 广东建泰建设有限公司网站网站后台管理系统进不去怎么办
  • 网站开发作业总结没有注册公司可以建网站吗
  • 创建网站做搞笑视频惠州市住房和城乡建设厅网站
  • 铜陵app网站做招聘dedecms 资源类网站
  • 大型大型网站制作柳州seo关键词优化
  • 购物网站的后台用哪个程序做网站收录好
  • 张掖网站建设推广wordpress 自动缩略图
  • 创意经济型网站建设网站建设技术服务费怎么入账
  • 付费阅读下载网站开发公司网络推广营销
  • 备案网站名称怎么写个人广州排前三的seo公司
  • 公章在线制作网站做不了北京最好设计公司
  • 番禺网站建设效果手机之家对比
  • 网站做关键词注册域名后怎么建网站
  • cnnic可信网站医院网站建设规范
  • 什么犁网站做淘宝门头一起做网店货源
  • 旅游网站建设解决方案vps试用30天
  • 域名备案需要网站搭建完成吗seo推广文章
  • 网站的备案怎么处理织梦手机网站教程
  • 网站建设评估报告公司建设网站需求
  • 网站修改思路陕西省建设监理协会官方网站
  • 网站栏目 英文长治网站建设案例
  • 我的世界官方网站铁马铠怎么做网站主流服务器语言
  • 简述建设一个网站的基本步骤网站建设的评价
  • 网站开发主要做什么建设部网站资质人员查询
  • 调颜色网站北京到安阳高速费多少钱