原创 使用CNN實現圖像分類——理解卷積神經網絡(卷積、池化、全連接)

1. 卷積神經網絡(CNN)簡介 19世紀60年代,科學家通過對貓的視覺皮層細胞研究發現,每一個視覺神經元只會處理一小塊區域的視覺圖像,即感受野(Receptive Field)。卷積神經網絡的概念即出自於此。簡單說這樣做保留了圖

原创 suricata架構——數據結構和代碼流程圖解

Suricata是一款高性能網絡入侵檢測防禦引擎。該引擎基於多線程,充分利用多核優勢。 數據結構 流程 行鎖 表鎖哈希表,只有一把鎖,內存少,實現簡單,但是在併發訪問時,效率極其低下; 行級鎖哈希表則每一行都有一把鎖,內存開銷

原创 重新學習c++--理解引用、智能指針、虛函數、模板、容器

最近幾年用c和python比較多,上次用c++寫程序已經是幾年前的事情了。溫故而知新,是時候重新學習下c++了。 C++可以分成四大塊去理解: C c++仍以C爲基礎,區塊blocks、語句statements、預處理器prep

原创 查找、插入、刪除都很快的數據結構(散列表vs紅黑樹vs跳錶)

散列表 散列表的插入、刪除、查找操作的時間複雜度可以做到常量級的 O(1),非常高效。 平衡二叉查找樹(紅黑樹) 二叉查找樹在比較平衡的情況下(紅黑樹是一種平衡二叉樹),插入、刪除、查找操作時間複雜度是 O(logn)。 跳錶

原创 Linux策略路由--原理、配置和應用

1. 策略路由簡介 對比傳統的基於數據包目的地址的路由算法,基於策略的路由算法更加靈活。 策略路由算法引入了多路由表以及規則的概念,支持按數據報屬性(源地址、目的地址、協議、端口、數據包大小、內容等規則)選擇不同路由表。 Linu

原创 docker網絡--理解linux底層實現機制、docker網絡模式

1. Linux網絡基礎 Linux內核具有非常成熟和高性能的TCP / IP堆棧實現。Docker網絡使用linux內核的網絡堆棧作爲低級原語來創建高級網絡驅動程序。簡而言之,Docker網絡就是 Linux網絡。 1.1 Li

原创 五分鐘入門rust語言

1. 入坑rust 1.1 rust發展歷程 2006年,Mozilla 員工 “Graydon Hoare” 開發了Rust。 2015年5月15日,Rust編程語言核心團隊正式宣佈發佈Rust 1.0版本,之後連續4年,在S

原创 入侵檢測系統原理和實現

1. 入侵檢測系統簡介 1.1 入侵檢測分類 按信息源分類 根據信息源的不同,入侵檢測技術分爲基於主機型和基於網絡型兩大類。 1)基於主機的入侵檢測技術 基於主機的入侵檢測技術可監測系統、事件和WindowsNT下的安全記錄,以及

原创 基於tensorflow實現圖像分類——理解神經網絡運作過程、tensorflow入門

1. 人工神經網絡 1.1 神經網絡結構 人工神經網絡(簡稱神經網絡)是模擬人類大腦神經元構造的一個數學計算模型。 一個神經網絡的搭建,需要滿足三個條件。 輸入和輸出 權重(w)和閾值(b) 多層感知器的結構 1.2 神

原创 linux bug定位神器——lsof | grep 簡直不能太好用

在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。 因爲應用程序打開文件的描述符列表提供了大量關於這個應用程序本身的信息,因此通過lsof工具能夠查看這個列表對系統監測以及排

原创 linux之EXT2文件系統--理解block/block group/索引結點inode/索引位圖

0. 文件系統和圖書館 在linux上操作文件,和在圖書館借書是非常相似的。 硬盤上的文件系統,好比圖書館的書架;而vfs則是圖書館的管理系統。 內核的工作: 1. 維護一個文件的目錄樹(dentry),供用戶查找自己想要的文件。

原创 入侵檢測規則匹配算法--單模匹配算法、多模匹配算法、hyperscan

入侵檢測規則匹配算法,分爲單模式匹配算法和多模式匹配算法。 1. 單模式匹配 單模式匹配,就是一個串跟一個串進行匹配,常見算法有:BM算法和KMP算法。 1.1 BF (Brute Force)暴力匹配算法 作爲最簡單、最暴力的字

原创 ebpf深入理解和應用介紹

1. ebpf概述 1.1 ebpf發展歷史 BPF,及伯克利包過濾器Berkeley Packet Filter,最初構想提出於 1992 年,其目的是爲了提供一種過濾包的方法,並且要避免從內核空間到用戶空間的無用的數據包複製

原创 linux報文高速捕獲技術對比--napi/libpcap/afpacket/pfring/dpdk/xdp

1. 傳統linux網絡協議棧流程和性能分析 Linux網絡協議棧是處理網絡數據包的典型系統,它包含了從物理層直到應用層的全過程。 數據包到達網卡設備。 網卡設備依據配置進行DMA操作。(第1次拷貝:網卡寄存器->內核爲網卡分

原创 docker存儲--理解鏡像文件系統aufs/device mapper、主機存儲共享、容器間存儲共享、分佈式存儲Flocker

1. docker存儲分類 Docker爲容器提供了兩種存放數據的資源,分別是: 由storage driver管理的鏡像層和容器層,即鏡像內文件系統。 Data Volume,宿主機文件系統 2. 鏡像內文件系統(stora