深入理解Linux網路內幕-PART I -通用背景(轉)

BSDLite發表於2007-08-15
深入理解Linux網路內幕-PART I -通用背景(轉)[@more@]這一部分內容是你順利的理解本書其餘章節所必須的。如果你已經熟悉了Linux核心,亦或者你是一個老道的軟體工程師,那麼你會非常快的過完這些章節。而對於其他讀者,我建議先熟悉這一部分內容然後再開始本書的其他部分:

第一章,介紹

本章的主旨在於介紹一些常見的程式設計模式和技巧,這些模式與技巧你將在網路部分原始碼中經常碰到。

第二章,重要的資料結構

在這一章中,你將看到網路部分程式碼中用到的兩個重要資料結構的詳細描述:socket緩衝結構sk_buff和網路裝置結構net_device。

第三章,使用者空間到核心的介面

本書中討論的每一個Linux網路特徵,都以介紹使用者空間工具怎樣與核心通訊的小節為終結。這一章的資訊將幫助你更好的理解這些小節。

第一章 介紹
研究一個大工程的原始碼,就好像進入了一個有著自己的風俗和語言的陌生新大陸。預先學習一些主要的當地習俗,並且試著與當地居民交流而不是避而遠之,這都是非常有用的。

本章主要為你介紹一些通用的程式設計模式和技巧,你將在網路部分程式碼中經常碰到他們。

如果可能的話,我鼓勵你,試著透過使用者空間的工具與一塊特定網路部分程式碼進行互動。如果你的Linux發行版還沒有安裝這些工具,或假如你只是簡單的想將他們升級到最新版本,那麼在這章,我將告訴你一些資訊哪裡能下載到那些工具。

我還會介紹一些工具,他們可以使你輕鬆的穿越龐大的原始碼。最後,我將簡短的介紹一下為什麼一些核心特徵沒有被整合進官方釋出版中,雖然他們已經在Linux社群中被廣泛使用。

基本術語
這一小節,我將介紹一些本書中廣泛使用的術語與縮寫詞。

8位元在網路領域通常被稱為octets。然而,在本書,我將使用更為通用的術語位元組(byte)。畢竟,本書描述的是核心的行為而不是網路抽象,而且核心開發人員也更習慣於使用位元組。

向量(vector)和陣列(array)將被互動的使用。

當提及TCP/IP協議棧的層次時,我將分別使用縮寫L2,L3,L4來代替資料鏈路層,網路層和傳輸層。縮寫中的數字基於著名的(也許現在已不恰當)七層OSI模型。在絕大多數例子中,L2將成為以太的同義詞,L3則代表了IPv4或IPV6,而L4則是UDP,TCP,ICMP等協議。當我要提及一種具體的協議時,我會使用它的名字(比如TCP)而不是術語"Ln層協議"。

待續...

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-959965/,如需轉載,請註明出處,否則將追究法律責任。

相關文章