自從參加工作后,自己變懶了很多,很少寫技術博客,自己技術上的成長越來越慢,遇到一些瓶頸。我一直在從事上層業務開發,對底層沒有深入,這樣下去對自己非常不利。需要突破瓶頸,研究一些底層的技術,認真分析和研究。
從今天開始需要繼續寫博客,從研究開源代碼開始。給自己定了一個方向為網絡安全方向,主要涉及軟件定義網絡,網絡報文轉發,抓包,網絡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(深度報文解析)。