這是一本介紹協定核心實現原始程式碼的書,不是介紹“協定”的書。
本書作者做過一些網路通信產品開發,所以對網路內部實現很感興趣,於是在學習和工作時間之餘記錄下分析和調用Linux 的網路通訊協定核心的心得體會。
很多人對網路非常感興趣,但卻不理解內部是如何運作的,或知之不多,最終的結果就是行之不遠。本書嘗試用淺顯的語言和合理的安排帶領讀者到Linux 核心網路模組的程式碼叢林中一遊,既讓你有所知,也讓您有所思。
Linux 是經過成千上萬用戶使用過並且還將不斷發展的,目前Linux 在伺服器市場上已經證明其設計的精巧和健壯,特別是當核心也從非搶佔式發展成為搶佔式後,嵌入設備市場上也將要掀起一股風浪。於是Linux 核心分析的資料層出不窮,但有的太老(核心的程式碼還使用2.2 的),有的對網路部分的分析不甚詳細,因此作者萌發了分析整個Linux 網路通訊協定核心的想法。
希望能在研究一些經典程式碼時發現與時俱進的部分,抛磚引玉,吸引更多的人參與到研究網路通訊協定核心的實現技巧以及移植工作上,而不用對照枯燥的RFC 文件和程式碼。
目錄
前言
第1 章 作業系統、網路、協定核心、程式碼
1.1 L nux 作業系統介紹
1.1.1 L nux 作業系統架構簡介
1.1.2 網路通訊協定發展介紹
1.2 本書的組織和安排
1.2.1 基本的資料結構和電腦術語
1.2.2 圖片風格展示
1.2.3 本書的組織
第2 章 核心系統初始化
2.1 系統初始化流程簡介
2.2 核心檔案解讀
2.2.1 ELF 檔案格式
2.2.2 L nk Scr pts 知識
2.2.3 L nux 核心鏡像解析
2.3 中斷及任務呼叫管理
2.3.1 中斷及軟中斷模型
2.3.2 各種語系環境下的切換
2.3.3 核心下的同步與互斥
2.3.4 各種非同步手段
2.4 虛擬檔案系統
2.5 網路通訊協定核心各部分初始化
2.5.1 網路基礎系統初始化
2.5.2 網路記憶體管理
2.5.3 網路檔案系統初始化
2.5.4 網路通訊協定初始化
2.5.5 初步瞭解路由系統
2.6 Linux 設備管理
2.6.1 底層PCI 模組的初始化
2.6.2 網路設備介面初始化函式
第3 章 配置網路系統
3.1 配置過程分析
3.1.1 配置是如何下達到核心的
3.1.2 socket 系統呼叫
3.1.3 octl 程式碼的實現
3.1.4 loopback 介面的配置過程
3.1.5 IP 別名的實現
3.2 回顧FIB 系統初始化
3.3 深入FIB 系統
3.4 FIB 系統發生了什麼樣的變化
3.5 直接連結路由表
3.6 介面狀態變化的處理過程
第4 章 網路層實現的初步研究
4.1 從p ng 127.0.0.1 開始旅程
4.2 再次相遇Socket 系統呼叫
4.3 IP 資料封包內容格式
4.4 send 系統呼叫
4.5 在路由系統中遊歷
4.5.1 尋找出口
4.5.2 當目的地址是遠端主機時
4.5.3 建立對應路由cache 表項
4.5.4 建立對應芳鄰表項
4.6 回到發送的路徑
4.6.1 IP 層發送過程
4.6.2 揭密hh_cache
4.7 ARP 的作用
4.7.1 ARP 的機制
4.7.2 ARP 封包格式
4.7.3 L nux ARP 協定的實現
4.8 到達設備驅動層
4.8.1 Loopback 設備的發送過程訊框數據鏈路層格式
4.8.2 Loopback 設備的發送過程
4.9 接收過程:從中斷到路由系統
4.10 ICMP
4.10.1 ICMP 封包格式
4.10.2 p ng 本機地址及回環地址
4.10.3 p ng 外部位址
4.11 從核心到用戶
第5 章 傳輸層實現的研究
5.1 進一步到UDP
5.1.1 UDP 用戶程式碼
5.1.2 UDP 資料封包格式
5.1.3 伺服器端b nd 的實現
5.1.4 接收程式碼
5.1.5 釋放UDP 的socket
5.2 更高階的TCP
5.2.1 TCP 用戶程式碼
5.2.2 TCP 資料封包格式
5.2.3 TCP 協定及socket 的初始化
5.2.4 伺服器端b nd 和l sten 的實現
5.2.5 伺服器端accept 的實現
5.2.6 用戶端connect 的實現—發起三次握手
5.2.7 TCP 封包的接收
5.2.8 三次握手的實現
5.2.9 核心收到封包轉到用戶狀態
5.2.10 釋放TCP 的socket
5.3 TCP 擁塞控制
5.3.1 TCP 擁塞控制機制介紹
5.3.2 L nux 核心擁塞控制功能的實現
第6 章 Select 系統呼叫的實現機制
6.1 如何使用select
6.2 Select 的核心實現
第7章 資料連結層協定實現
7.1 基本的2 層知識
7.2 L nux 橋實現的基本框架
7.3 VLAN
7.3.1 VLAN 概念
7.3.2 L nux 下VLAN—存在巨大的缺陷
7.4 LACP 協定
7.4.1 聚合連接埠簡介
7.4.2 LACP 在L nux 中的實現
7.5 2 層功能總結
後 記
前言
第1 章 作業系統、網路、協定核心、程式碼
1.1 L nux 作業系統介紹
1.1.1 L nux 作業系統架構簡介
1.1.2 網路通訊協定發展介紹
1.2 本書的組織和安排
1.2.1 基本的資料結構和電腦術語
1.2.2 圖片風格展示
1.2.3 本書的組織
第2 章 核心系統初始化
2.1 系統初始化流程簡介
2.2 核心檔案解讀
2.2.1 ELF 檔案格式
2.2.2 L nk Scr pts 知識
2.2.3 L nux 核心鏡像解析
2.3 中斷及任務呼叫管理
2.3.1 中斷及軟中斷模型
2.3.2 各種語系環境下的切換
2.3.3 核心下的同步與互斥
2.3.4 各種非同步手段
2.4 虛擬檔案系統...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。