自从参加工作后,自己变懒了很多,很少写技术博客,自己技术上的成长越来越慢,遇到一些瓶颈。我一直在从事上层业务开发,对底层没有深入,这样下去对自己非常不利。需要突破瓶颈,研究一些底层的技术,认真分析和研究。
从今天开始需要继续写博客,从研究开源代码开始。给自己定了一个方向为网络安全方向,主要涉及软件定义网络,网络报文转发,抓包,网络IPS,网络IDS、Nginx。
在2016年的剩下的三个月计划如下:
1、研究suricata的源码,从其功能、原理和架构进行分析。具体分为:网络抓包、网络报文解码,网络报文检测等。
(1)分析suricata的抓包方式,libpcap、af_packet、af_packet mmap等方式
(2)snort规则解析引擎
(3)http报文解析 libhtp库,正则表达式的pcre的使用
(4)suricata的工作模式,模块化编程,多线程
2、研究DPDK的源码,弄明白DPDK的原理,可以用DPDK做些什么。如何实现二层和三层报文转发。认真分析DPDK使用的相关技术
(1)UIO 用户空间和内核空间抓包
(2)大页内存技术
(3)无锁队列
(4)多core的绑定,cpu亲和性
3、阅读http权威指南,研究nginx的源码
(1)深入理解http协议,http的请求和回复报文的字段,返回码
(2)nginx的事件驱动编程,master-worker模型
(3)nginx的反向代理,负载均衡
(4)https的openssl研究
合理利用工作的业余时间,深入研究源码,写高质量的文章。
每周至少写三篇文章。
先分析suricata的源码,在研究dpdk配合suricata构建网络安全的DPI(深度报文解析)。