自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (6)
  • 收藏
  • 关注

原创 snort规则检测引擎初探

0x01缘由       目前的产品开发过程中,涉及到了对应用层协议类型的检测。考虑到要构建高效的规则匹配引擎,于是再次研究了snort的规则引擎。     主要目的还是开阔下设计思路和借鉴一些方法。0x02 规则制定        良好的规则设计是今后配置规则和扩展的基础。        Snort 采用数据结构 RuleTreeNodes(RTN) 和 OptT

2017-06-30 20:33:09 2756 1

原创 DPDK的方法论

0x00缘由       吃完午饭,闲来无聊阅读了《深入浅出DPDK》,看到以下章节顿时感觉自己在性能优化上是摸着石头过河。如果好好理解这段话,会对目前工作做的事情有个好的指导。          DPDK采用了很多具体优化方法来达到高性能的提升,有一些是利用IA软件优化的最佳实践方法,还有一些是利用了IA的处理器特性。0x01 专用负载下的针对性软件优化       专用处理器通

2017-06-29 15:11:12 1288

转载 值得推荐的C/C++框架和库

转载理由:       在研发成员水平有限时 or 产品压力较大时 or 工期较紧时  or 初创,如何利用开源去拼装一个系统,利用前人的成果?      假如给你一个初创团队,成员不多,能否找出可行方案?转载于:    http://www.ezlippi.com/blog/2014/12/c-open-project.html值得学习的C语言开源项目Libe

2017-06-26 20:38:42 973 1

原创 技术团队管理--代码规范的制定与落地

0x01缘由      想想去年团队在经历业务拆分前执行的一些代码规范活动,发现效果较差,而且未在公司得到推广。究其原因是什么?     阅读:http://www.infoq.com/cn/articles/how-can-code-specification-be-executable有感而发。     规范制定 != 规范执行   这点做得不够,对于每个团队成员的代码编写情况的检

2017-06-25 21:25:35 1754

原创 阅读ISE 复习linux多线程开发时需使用的锁

1、缘由以项目带动学习,主要学习C++一些特性,复习linux编程中锁、信号、条件变量等。2、ISE点示例///////////////////////////////////////////////////////////////////////////////// class AutoInvokable/AutoInvoker - 自动被调对象/自动调用者//// 说明:/

2017-06-23 15:53:14 437

转载 评估磁盘IO速度

转载理由:在开发高性能软件,做性能优化时,大部分人都会找I/O瓶颈,但是I/O是不是瓶颈这个还有待确认。在处理大量数据时,对硬件的性能要有充分的了解,这样不会把优化目标转移。转载地址:http://blog.chinaunix.net/uid-24250828-id-3239100.html下面是我试用的案例:[root@BH analyzer_new]# df

2017-06-23 09:11:06 379

转载 elasticsearch技术手册 v1.0

转载理由:产品研发过程中,使用到了elasticsearch,虽然这块不是我负责,难免会遇到交集的地方,避免一无所知,学习之,MARK;转载地址:http://www.zhangxiaolong.org/2017/05/22/elasticsearch-tec-book-v1-0/?utm_source=tuicool&utm_medium=referral1.

2017-06-23 08:53:00 1266

转载 手把手简易实现shellcode及详解

转载理由: 处于安全行业靠边产业,经常听和看到shellcode,但是只有模糊的认识,于是学习一把,毕竟C和汇编了解,开阔下视野;转载于:http://blog.nsfocus.net/simple-realization-hand-handle-shellcode-detailed-explanation/?utm_source=tuicool&utm_medium=referral

2017-06-22 21:15:46 6231 2

原创 xplico中使用ndpi进行协议识别

0x01 缘由有人通过github找我了解xplico,一直没有好好解答他的问题,于是想着手写这么一篇简单文章。0x02 介绍做协议识别:1、特征码       2、端口      3、正则详细介绍,传送:http://www.sdnlab.com/17449.html0x03 xplico的使用在tTcp_garbage.c \Udp_analysis.c 中使用

2017-06-22 17:38:35 3004 1

原创 阅读ISE源码过程中重新对单例模式的理解

0x01缘由最近在项目开发中使用到了日志类,对其封装时采用的单例模式,但是仔细研究后,发现很多细节未考虑,于是学习了下ISE的单例模式设计;0x02单例模式需考虑的场景用于配置文件、日志等公共操作类。注意如下:1、每次instance()返回唯一个对象;2、多线程并发访问;(意味着加锁)3、返回对象效率要高;0x03ISE单例实现templateclass

2017-06-21 17:24:17 276

原创 Linux c/c++后端编程,信号量,屏蔽和不屏蔽,信号捕获;

0x01 缘起在 linux c/c++后端编程的过程中,我们经常对捕获和捕获一些信号的处理。主要是在程序收到相关信号时能进行安全的退出,做一些善后处理。如下场景:Linux下的线程实质上是轻量级进程(light weighted process),线程生成时会生成对应的进程控制结构,只是该结构与父线程的进程控制结构共享了同一个进程内存空间。 同时新线程的进程控制结构将从父线程(进

2017-06-20 18:05:47 1982 1

原创 snort 之AC匹配算法

0x01 缘起最近项目中使用AC算法,前面已经转载几篇文章学习之,就想起目前正在使用但是未深入分析的snort开源IDS项目。研究其高效AC匹配算法。下面主要针对源码讲解,然后添加了源码注释。写成这篇文章,也是做一个mark,阅读下源码0x02源码/* $Id$ *//* ** Copyright (C) 2014-2016 Cisco and/or its affiliate

2017-06-20 11:03:22 2655

转载 AC自动机

转载理由:理解更深刻,而且图形更可视化,关键构造失败函数比较抽象,类似KMP next函数的构建。基本原理已经理解,尝试实践和测试性能0(n);转载地址:http://blog.csdn.net/sealyao/article/details/45604271、概述Aho-Corasick自动机算法(简称AC自动机)1975年产生于贝尔实验室。该算法应用有限自动机巧妙地将字符比较转

2017-06-18 15:34:29 508

原创 堆栈溢出引出的一些mark知识点--汇编

0x01缘由      浏览博客时,发现一篇《CVE-2016-10190 FFmpeg Heap Overflow 漏洞分析及利用》传送:https://security.tencent.com/index.php/blog/msg/116?utm_source=tuicool&utm_medium=referral,因为从事C/C++编程,带着兴趣和疑问阅读了此篇文章。然后阅读这个的过程中

2017-06-18 13:10:04 835

转载 汇编入门

转载理由: 阅读堆栈溢出原来,复习下大学学的汇编;转载于:http://www.cnblogs.com/YukiJohnson/archive/2012/10/27/2741836.html本文翻译自:http://www.cs.virginia.edu/~evans/cs216/guides/x86.html本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的

2017-06-17 21:21:27 807

转载 AC算法

转载理由:产品开发中需要高效的字符串匹配算法,所以mark下转载于:http://blog.csdn.net/myjoying/article/details/7960534下一步:学习使用        早在1975年贝尔实验室的两位研究人员Alfred V. Aho 和Margaret J. Corasick就提出了以他们的名字命名的高效的匹配算法---AC算法。该算法

2017-06-16 16:47:34 2453

原创 xplico TCP流重组算法

对xplico的研究,断断续续,之前有人在github上咨询我问题,只简单的解答了一些粗浅的问题,下面主要针对TCP流重组。下面为xplico一条流重组的关键数据结构(没包含流表,所以不考虑流表的设计):包:struct seq { packet *pkt; /* packet 包*/ unsigned long seq; /* seq or

2017-06-16 16:09:58 3682

原创 ISE -- I/O Buffer 之 STL vector学习

0x01 缘起       在高性能服务器开发的过程中,良好的IO缓存是整个设计比较重要的环节。带着这方面的兴趣,阅读了开源ISE的IO Buffer设计,不评估其优劣,纯粹学习这方面知识,深度学习下STL vector容器的使用和内存的管理。0x02 IO Buffer介绍      消息缓存,主要存储socket接收和发送的消息。发送消息时,将消息有序的缓存到buffer中;消息接

2017-06-15 13:50:51 1039

转载 深入理解STL源码--空间配置器(allocator)

转载于:http://ibillxia.github.io/blog/2014/06/13/stl-source-insight-1-memory-allocator/?utm_source=tuicool&utm_medium=referral转载理由:实践项目中存在大量使用map,set,vector等STL容器,容器使用时内存分配、释放与长规的差异。主要学习了解,方便今后问题的排查。

2017-06-15 09:18:06 3443

原创 boost::scoped_ptr

0x01 缘由        我想有些知识点存在即有它的意义,可能在不同的场景有不同的使用场景。有了boost::shared_ptr 为啥还要有一个boost::scoped_ptr呢?带着这个疑问学习了一下。0x02 认识boost::scoped_ptr       scoped 意为作用域,表示此智能指针只能在本作用域里使用,不能允许拷贝和赋值,只能在scoped_ptr被申明

2017-06-12 14:13:45 439

原创 this指针

this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子:1234567voidDate::setMonth(intmn){  month=mn;  this->month=mn;  (*this).month=mn;  //这三句是等价的}1.this只能在成员函数中使用。

2017-06-11 10:56:20 247

原创 c++中易犯的错误

1声明和定义的区别①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。②变量声明:用于向程序表明变量的类型和名字。③定义也是声明:当定义变量时我们声明了它的类型和名字。④extern关键字:通过使用extern关键字声明变量名而不定义它。 1.定义也是声明,extern声明不是定义,即不分配存储空间。extern告诉编译器变量在其他地方定

2017-06-11 10:55:00 443

原创 Dpdk distrabutor

1.创建分流器distrabutor首先要检测系统的核数,核数至少需要2个才可以运行,建议核数大于等于3个,可以在分配worker时达到较好的效果。接下来就创建分流器了static struct rte_distributor *d;d =rte_distributor_create("Test_distributor", rte_socket_id(),           

2017-06-11 10:49:39 1412

原创 DPDK IP重组

1ip_reassembly功能介绍                                         ip_reassembly模块是在IP层将分片的IPv4和IPv6的报文进行重组。它是通过rte_ipv4_frag_reassemble_packett()和rte_ipv6_frag_reassemble_packet ()两个函数进行重组。2分片与IP首部1、对于

2017-06-11 10:43:18 2517

原创 dpdk IP分片

Ip_fragmentation的处理流程 1.初始化EAL环境先rte_eal_init(argc, argv)初始化EAL环境,确定绑定的核数,队列数。解析parse_args(argc, argv)参数,如-c是确定虚拟的内核数。2.获取网卡的数目通过函数rte_eth_dev_count()来获取网卡的数目。3. 获取核的个数通过函数rte_lcore_coun

2017-06-11 10:41:14 2068

原创 DPDK测试

1安装环境软件建议版本GNUmake coreutils:cmp, sed, grep, arch gcc:versions  >= 4.5.xlibcheaders (glibc-devel.i686 / libc6-dev-i386; glibc-devel.x86_64 for 64-bitcompilation)Linuxkernel headers or sour

2017-06-11 10:39:57 3394

转载 explicit关键字

下班回家,回想同事对这个关键字的理解,于是学了一把:转载于:http://www.cnblogs.com/ymy124/p/3632634.html         首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为impl

2017-06-08 20:44:48 255

原创 boost::any 学习

0x01 缘由       阅读源码ise发现此库的用法,于是学习学习,毕竟如果在性能要求不高的情况下,个人是不远造轮子的,而更愿意拿来使用,用好。0x02 boost::any 简介      0x03 boost::any 用法举例// class ObjectContext - 从此类继承给对象添加上下文class ObjectContext{public:

2017-06-07 16:36:56 488

原创 coredump 续---abort,addr2line

0x01缘由     在项目实际开发中,当出现段错误时,为了定位问题的代码行。必须保留程序运行上下文、根据linux内核日志定位代码行等。     有时当程序自己发现问题时,自动退出程序释放资源,如发现系统内存耗尽时,退出程序,又得自动将文件流刷新到磁盘等。0x02 abort介绍      信号量:SIGABRT   6    程序自己发现错误并调用 abort 时产生。 

2017-06-06 16:59:15 2228

原创 boost::function与boost::bind 的使用

0x01 为啥?     为啥要用这个?这个用起来有什么好处?查了下资料陈硕大哥的见解:http://blog.csdn.net/solstice/article/details/3066268      下面也说说我的想法:每个技术点都有适合的用法,使用某项技术点,还是依据整个团队的技术成熟度、熟悉度等。     最近在阅读haoxingeng的服务器框架ise,发现其用法,于是有学

2017-06-05 16:01:31 5625

原创 /proc/sys/net/ipv4/ 下参数理解,方便服务器优化

/proc/sys/net/ipv4/下文件:1)  /proc/sys/net/ipv4/ip_forward该文件表示是否打开IP转发。0,禁止1,转发基本用途:如VPN、路由产品的利用;原理图:缺省设置:02)  /proc/sys/net/ipv4/ip_default_ttl该文件表示一个数据报的生存周期(Tim

2017-06-02 16:52:27 6389

原创 boost::shared_ptr 智能指针在项目中的使用

0x01 智能指针的设计的目的      在linux c/c++编程过程中,对资源的合理使用是一个常遇到的题,如何防止内存泄露是c/c++程序员必须关注的问题。如何规避内存泄露,那就必须要有良好的编程习惯,malloc/free,new/delete需成对出现等。      C++编程中为了防止内存的泄露,boost设计了智能指针,目的消除未delete时的内存泄露。0x02 智能指

2017-06-02 11:54:44 657

转载 DDoS攻击原理及防护方法论

转载于:http://netsecurity.51cto.com/art/200903/114969.htm   戴鹏飞目的:了解DDOS攻击原理,IDS防护设备开发打下基础  从07年的爱沙尼亚DDoS信息战,到今年广西南宁30个网吧遭受到DDoS勒索,再到新浪网遭受DDoS攻击无法提供对外服务500多分钟。DDoS愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形势十分

2017-06-01 18:26:28 893

Snort运行流程图(gperftools结果)

Snort运行流程图(gperftools结果),整体了解snort运行机制。

2017-06-29

Stack 的建立,删除及相关操作

Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作

2010-12-24

Stack 的建立,删除及相关操作

Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作

2010-12-24

Stack 的建立,删除及相关操作

Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作Stack 的建立,删除及相关操作

2010-12-24

数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT

数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT数据结构PPT

2010-12-21

Link操作链表的操作,删除,插入等

链表的操作,删除,插入等链表的操作,删除,插入等链表的操作,删除,插入等链表的操作,删除,插入等链表的操作,删除,插入等

2010-12-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除