原创 UNIX 環境編程 之 進程間通訊(IPC) 三 命名管道(FIFO)

一 概述 命名管道(FIFO) 跟管道(pipe)最大的一個區別,要讓無親緣關係的兩個進程間通訊,管道是做不到的。而命名管道其實是跟路徑名關聯的,從而允許無親緣關係的兩個進程間通訊。 二 管道函數的使用 mkfifo函數 #inc

原创 UNIX 環境編程 之 進程間通訊(IPC) 二 管道(pipe)

一 概念 管道是一種最基本的IPC機制,完成數據傳遞。調用pipe系統函數即可創建一個管道。 作用於有血緣關係的進程之間,只能在具有公共祖先的進程之間使用 管道是半雙工的。數據只能在一個方向上流動 管道是由內核管理的一個緩衝區

原创 linux 下 packet_mmap 中篇 (發送實現)

一 概述 前篇已經講述了接收實現,而對於libpcap抓包的重要工具,本身其實也集成了packet_mmap抓包方式。那麼既然可以用於捕獲抓包。packet_mmap可以實現發送抓包嗎?答案當然是肯定的。不過網上對於packet_

原创 linux 下的 iptables/ netfilter 防火牆 深度理解 前篇

一 概述 iptables 其實不是真正的防火牆,我們可以把它理解爲一個客戶端代理,用戶通過iptables 這個代理,將用戶的安全設置執行到對應的“安全框架”中,這個安全框架纔是真正的防火牆。這個框架的名稱叫做netfilter

原创 linux 下 tcpdump 詳解 前篇(libpcap庫源碼分析)

一 概述 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。 至於tcpdump參數如何使用,這不是本章討論的重點。 liunx

原创 UNIX 環境編程 之 進程間通訊(IPC) 四 System V共享存儲

一 什麼是共享內存 顧名思義,共享內存就是允許兩個不相關的進程訪問同一個邏輯內存。共享內存是在兩個正在運行的進程之間共享和傳遞數據的一種非常有效的方式。不同進程之間共享的內存通常安排爲同一段物理內存。進程可以將同一段共享內存連接到

原创 UNIX 環境編程 之 進程間通訊(IPC) 一 IPC概述

1.概述 IPC是進程間通信(inter process communication)的簡稱,傳統上該術語描述的是運行在某個操作系統之上的不同進程間的各種消息傳遞.而涉及不同進程間對消息的處理的時候,也就必須要考慮相關消息的同步。

原创 linux 下 packet_mmap 前篇 (抓包實現)

一 概述 本人 linux下 tcpdump 詳解前中後 分析過抓包的流程。具體篇章對應如下 前篇瞭解了libpcap庫如何實現抓包 中篇深入內核底層講述了抓包的原理 後篇自己實現過抓包過程 tcpdump 篇章中講述的只是原

原创 linux 下 tcpdump 詳解 中篇(內核源碼分析)

一 概述 前篇通過libpcap分析,可以很清楚的發現其實用戶層調用了三個系統調用,就實現了將內核網卡抓的包,返回給用戶層。 1.創建一個socket ; sock_fd = cooked ?socket(PF_PACKET

原创 linux 內核動態模塊初始化 __attribute__((section(XXX)))

一 概述 傳統的應用編寫時,每添加一個模塊,都需要在main中添加新模塊的初始化。也就是說增加的一個不能算是真正的獨立模塊,得在main中修改代碼才能集成這模塊功能。有沒有什麼辦法可以實現main跟其他模塊之間隔離呢?main不再

原创 linux 下 tcpdump 詳解 後篇(自己實現抓包過濾)

一 概述 在瞭解了tcpdump的原理後,你有沒有想過自己去實現抓包過濾? 可能你腦子裏有個大概的思路,但是知道了理論知識,其實並不能代表你完全的理解。只要運用後,你才知道哪些點需要注意,之前沒有考慮到的。 二 如何實現抓包過濾

原创 UNIX 環境編程 之 進程間通訊(IPC) 五 System V信號量

一 概述 信號量與先前介紹的IPC(管道,FIFO,以及消息隊列)不同,它是一個計數器,主要用來解決進程或線程間共享資源引發的同步問題。使得資源在一個時刻只有一個進程(線程)所擁有。 信號量只能進行兩種,等待(使用信號)和發送(釋

原创 linux 下的 iptables/ netfilter 防火牆 深度理解 中篇

一 概述 前篇主要提到了用戶空間 iptables 1.3.5 源碼對規則的處理。但是並沒有涉及內核空間netfliter 模塊的處理。用戶空間上的規則要生效最終肯定是通過傳給內核空間的netfilter,讓netfliter這個

原创 linux 防火牆: 從 iptables 到 ipset 的過濾ip

一 iptables 瞭解 iptables,可以將規則組成一個列表,實現絕對詳細的訪問控制功能工作在用戶空間中,定義規則的工具,本身並不算是防火牆。它們定義的規則,可以讓在內核空間當中的netfilter來讀取,並且實現讓防火牆

原创 liunx 下的 iptables/ netfilter 防火牆 深度理解 前篇

一 概述 iptables 其實不是真正的防火牆,我們可以把它理解爲一個客戶端代理,用戶通過iptables 這個代理,將用戶的安全設置執行到對應的“安全框架”中,這個安全框架纔是真正的防火牆。這個框架的名稱叫做netfilter