追蹤Linux TCP\IP代碼運行--基於2.6內核(附光盤)
內容描述
<內容簡介>
本書以應用程序為線索,詳細描述了數據包在協議棧的分段、重組、發送、接收過程,同時分析了路由的初始化和設置過程,主要包括socket應用程序、TCP/IP協議、路由、通知鏈、鄰居子系統等內容。全書涵蓋了協議棧的全部知識點,對於廣大的讀者來說這是一本極其難得的技術資料。同時,書中論述了網絡設備的工作原理,解釋了RTL8169和嵌入式CS8900、DM9000網卡設備的核心過程。本書可作為3G網絡開發人員、嵌入式通信產品開發人員、網絡應用開發人員、網絡管理人員及網絡愛好者、從事網絡方向的本科生、研究生的參考書。
<章節目錄>
第1章 本書的計劃 1.1 基本路線和要求 1.2 TCP/IP協議層的劃分與基本知識 1.3 函數到系統調用的過程 1.4 網絡文件系統第2章 socket的創建 2.1 本章幾個重要數據結構 2.2 分配並初始化socket結構 2.3 使用協議族的函數表初始化socket 2.4 分配並初始化sock結構 2.5 TCP協議對sock結構初始化 2.6 socket與文件系統的關聯第3章 socket地址設置 3.1 地址設置接口 3.2 地址結構定義 3.3 地址類型 3.4 設置地址和埠 3.5 網絡空間總管init_net第4章 路由 4.1 路由函數表結構及關係圖 4.2 路由函數表的初始化 4.3 通過路由函數表查找路由信息 4.4 路由的設置及相關結構的初如化 4.5 基於輸出方向的路由表查找與創建 4.6 基於輸入方向的路由表查找與創建第5章 通知鏈 5.1 設備通知鏈節點的掛入 5.2 地址通知鏈節點的掛入 5.3 通知鏈的調用和執行第6章 netlink概述 6.1 netlink的創建 6.2 註冊路由的netlink 6.3 通過netlink通信第7章 監聽連接請求 7.1 內核的監聽函數 7.2 內核的監聽隊列第8章 接收連接請求 8.1 接收連接函數 8.2 異步接收方式 8.3 獲取連接請求第9章 準備連接請求 9.1 內核的連接函數 9.2 分配數據包結構和數據塊空間 9.3 構建、發送TCP數據包 9.4 進化成IP數據包 9.5 進化成以太網數據包 9.6 發送以太網數據包第10章 鄰居子系統 10.1 鄰居子系統的初始化 10.2 查找鄰居結構
10.3 鄰居子系統的發送事件 10.4 鄰居子系統的接收處理第11章 流量控制 11.1 排隊規則的初始 11.2 排隊規則的入隊和發送第12章 建立連接的過程 12.1 驅動程序接收並建立數據包 12.2 查找數據包類型且調用其處理函數 12.3 接收或轉發IP數據包 12.4 TCP數據包的處理 12.5 3次握手過程第13章 Internet控制信息的傳輸 13.1 發送ICMP信息 13.2 接收ICMP信息第14章 數據包的分段與重組 14.1 數據包的分段發送 14.2 數據包的分段接收和重組 14.3 分段數據包的接收隊列 14.4 查找與創建分段隊列 14.5 釋放和銷毀分段隊列第15章 發送和接收數據包 15.1 內核的發送、接收函數 15.2 客戶端發送數據包 15.3 服務器接收數據包第16章 socket的關閉 16.1 內核的關閉函數 16.2 服務器與客戶端的共同關閉索引參考文獻
<作者介紹>
秦健秦健 嵌入式研發工程師。精通Linux內核,多年從事嵌入式軟硬件開發,使用Linux平臺設計電子產品。已經三十四歲的他憑借一顆熱愛技術、永不放棄的心,十年如一地堅持技術研發的人生道路,推翻了「三十歲是技術員墳墓」的謬論,為年輕工程師樹立了榜樣。