深入理解Linux網路內幕-PART I -通用背景(轉)
深入理解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層協議"。
待續...
第一章,介紹
本章的主旨在於介紹一些常見的程式設計模式和技巧,這些模式與技巧你將在網路部分原始碼中經常碰到。
第二章,重要的資料結構
在這一章中,你將看到網路部分程式碼中用到的兩個重要資料結構的詳細描述: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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入Linux網路核心堆疊(轉)Linux
- 深入剖析全鏈路灰度技術內幕
- 深入理解hadoop網路Hadoop
- Linux開機程式內幕(轉)Linux
- 機器學習:深入理解LSTM網路 (二)機器學習
- Linux 核心偵錯程式內幕(轉)Linux
- 深入理解Java I/O模型Java模型
- 用神經網路模型給你的照片打分(Part I)神經網路模型
- 通用ShellCode深入剖析 (轉)
- 深入理解Node.js-背景瞭解Node.js
- 兩張圖看懂網際網路彩票停售事件內幕事件
- 深入理解硬碟的 Linux 分割槽(轉)硬碟Linux
- 揭秘Linux核心偵錯程式之內幕(轉)Linux
- 計算機網路——深入理解TCP/IP計算機網路TCP
- 深入理解Hadoop叢集和網路Hadoop
- 螢幕取詞核心內幕 (轉)
- Linux 上用 IP轉發使內部網路連線到網際網路Linux
- HPE揭祕網路犯罪經濟的內幕
- 深入 Linux I/O 重定向Linux
- linux網路知識:TCP/IP設定內容(轉)LinuxTCP
- 深入分析java web技術內幕JavaWeb
- 從網路I/O模型到Netty,先深入瞭解下I/O多路複用模型Netty
- DDX/DDV工作內幕 (轉)
- 如何在 Linux 上用 IP轉發使內部網路連線到網際網路Linux
- 「譯」 MotionLayout 介紹 (Part IV) 深入理解關鍵幀
- 計算機網路——深入理解HTTP以及HTTPs計算機網路HTTP
- 深入理解Cassandra內部結構
- 深入理解LILO(轉)
- 深入理解linux系統下proc檔案系統內容Linux
- 深入理解 python 非同步 i/o 庫 —— asyncioPython非同步
- Nimda程式設計內幕 (轉)程式設計
- Slackware Linux技術內幕之--包管理機制(轉)Linux
- 深入理解Linux修改hostnameLinux
- DockOne微信分享(一三三):深入理解Kubernetes網路策略
- Go語言內幕(2):深入 Go 編譯器Go編譯
- 網路I/O模型模型
- Linux 引導過程內幕Linux
- 深入理解行內元素的佈局