注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡操作系統(tǒng)Linux嵌入式Linux網絡體系結構設計與TCP/IP協議棧

嵌入式Linux網絡體系結構設計與TCP/IP協議棧

嵌入式Linux網絡體系結構設計與TCP/IP協議棧

定 價:¥69.00

作 者: 單立平 編著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: LINUX

購買這本書可以去


ISBN: 9787121129766 出版時間: 2011-05-01 包裝: 平裝
開本: 16開 頁數: 462 字數:  

內容簡介

  《嵌入式linux網絡體系結構設計與tcp/ip協議?!泛w了linux嵌入式系統(tǒng)開發(fā)中網絡體系結構實現的主要內容。《嵌入式linux網絡體系結構設計與tcp/ip協議?!饭卜?2章,第1章概述linux內核組件與內核技術特點,以及網絡體系結構實現應用到的內核開發(fā)的基礎知識。第2~5章在介紹了實現網絡體系結構、協議棧、設備驅動程序的兩個最重要的數據結構sk_buff和net_device的基礎上,展示了linux內核中為網絡設備?動程序設計和開發(fā)而建立的系統(tǒng)構架,最后以兩個實例來具體說明如何著手開發(fā)網絡設備驅動程序,數據在硬件設備上的接收和發(fā)送過程。第6章討論了網絡協議棧中數據鏈路層收發(fā)數據的設計和實現,以及硬件層與協議層之間的接口。第7章講解了網絡層ip協議的實現。第8~9章介紹傳輸層數據收發(fā)過程,重點介紹基于套接字的tcp/udp傳輸實現。第10章討論了linux內核套接字層的實現,以及套接字層與應用層、傳輸層之間的接口。第11章介紹網絡應用軟件的開發(fā)技術,以及內核對網絡應用的支持。第12章講解在嵌入式系統(tǒng)開發(fā)中如何將硬件驅動程序、內核代碼、?用程序集成在一起下載至芯片中,形成嵌入式可運行的系統(tǒng),作為全書的總結?!肚度胧絣inux網絡體系結構設計與tcp/ip協議?!房梢宰鳛楦叩仍盒S嬎銠C、通信專業(yè)學生學習操作系統(tǒng)的參考書,也可以作為從事嵌入式、計算機行業(yè)的工程技術人員的參考書。

作者簡介

  單立平,電子科技大學計算機學院計算機軟件碩士,精通C語言和匯編語言程序設計,以及實時軟件系統(tǒng)開發(fā)。在母校執(zhí)教期間,主講《計算機組成原理》、《計算機導論》、《匯編語言程序設計》、《C語言程序設計》、《Java程序設計》等課程,參與編寫多本高校規(guī)劃教材,同時從事通信、數據庫、嵌入式方向的科研工作。亦有在信息產業(yè)部第十研究所從事衛(wèi)星跟蹤實時軟件系統(tǒng)研發(fā)的經歷。2005年后定居加拿大,先后在MEADE WILLIS Company及BlueTree Wireless Data Inc.任職,主攻Linux平臺下嵌入式無線通信、GPS全球定位系統(tǒng)、汽車電子系統(tǒng)的研究與開發(fā)。

圖書目錄

第1章 概述 
1.1 linux內核組件 
1.2 linux內核中的活動 
1.2.1 進程和系統(tǒng)調用 
1.2.2 硬件中斷 
1.2.3 tasklet 
1.2.4 workqueue 
1.2.5 軟件中斷 
1.3 互斥機制 
1.3.1 spin lock 
1.3.2 讀-寫 spin lock 
1.3.3 讀-復制-更新(read-copy-update,rcu) 
1.4 內核模塊(module) 
1.4.1 管理內核模塊 
1.4.2 自動裝載模塊 
1.4.3 模塊功能的注冊和取消 
1.4.4 在模塊裝載時給模塊傳遞參數 
1.4.5 內核和模塊的符號表 
1.5 內存資源 
1.5.1 高速緩沖區(qū)(memory cache) 
1.5.2 高速緩存和哈希鏈表 
1.6 時間管理 
1.7 嵌入式的挑戰(zhàn) 
1.8 本章總結 第2章 linux網絡包傳輸的關鍵數據結構——socket buffer 
2.1 socket buffer 設計概述 
2.1.1 socket buffer與tcp/ip協議棧 
2.1.2 socket buffer的對外接口 
2.1.3 socket buffer的特點 
2.2 socket buffer的構成 
2.2.1 socket buffer的基本組成 
2.2.2 socket buffer穿越tcp/ip協議棧 
2.3 sk_buff數據域的設計和含義 
2.3.1 sk_buff 中的結構管理域 
2.3.2 常規(guī)數據域 
2.3.3 sk_buff 的網絡功能配置域 
2.4 操作sk_buff的函數 
2.4.1 創(chuàng)建和釋放socket buffer 
2.4.2 數據空間的預留和對齊 
2.4.3 復制和克隆 
2.4.4 操作隊列的函數 
2.4.5 引用計數的操作 
2.4.6 協議頭指針操作 
2.5 數據分片和分段 
2.5.1 為什么要分割數據包 
2.5.2 設計skb_shared_info數據結構的目的 
2.5.3 操作skb_shared_info的函數 
2.6 本章總結 第3章 網絡設備在內核中的抽象——struct net_device數據結構 
3.1 協議棧與網絡設備 
3.1.1 協議棧軟件與網絡設備硬件之間的接口 
3.1.2 設備獨立接口文件dev.c 
3.1.3 設備驅動程序 
3.1.4 struct net_device數據結構 
3.2 struct net_device 數據結構 
3.2.1 struct net_device數據結構的數據域 
3.2.2 struct net_device數據結構的其他數據域 
3.3 struct net_device數據結構中數據域的功能分類 
3.3.1 設備管理域 
3.3.2 設備配置管理域 
3.3.3 設備狀態(tài) 
3.3.4 統(tǒng)計 
3.3.5 設備鏈表 
3.3.6 鏈路層組傳送 
3.3.7 流量管理 
3.3.8 常規(guī)域 
3.3.9 操作函數結構 
3.4 函數指針 
3.4.1 設備初始化 
3.4.2 傳送 
3.4.3 硬件協議頭 
3.4.4 網絡統(tǒng)計狀態(tài) 
3.4.5 修改配置 
3.5 本章總結 第4章 網絡設備在linux內核中識別 
4.1 內核初始化的特點 
4.1.1 命令行參數 
4.1.2 網絡子系?的命令行參數 
4.2 內核啟動過程 
4.2.1 用do_initcall函數完成的初始化 
4.2.2 標記初始化函數的宏 
4.2.3 網絡子系統(tǒng)初始化 
4.2.4 網絡設備的初始化 
4.3 網絡設備的注冊和struct net_device數據結構實例的初始化 
4.3.1 初始化函數的任務 
4.3.2 網絡設備的注冊和注銷 
4.3.3 網絡設備的引用計數(reference count) 
4.3.4 允許和禁止網絡設備 
4.4 網絡設備的管理 
4.4.1 管理網絡設備的鏈表 
4.4.2 網絡設備的搜索函數 
4.5 事件通知鏈 
4.5.1 事件通知鏈構成 
4.5.2 注冊回調函數到事件通知鏈 
4.5.3 通知子系統(tǒng)有事件發(fā)生 
4.5.4 網絡子系統(tǒng)中的事件通知鏈 
4.5.5 網絡子系統(tǒng)傳送的事件 
4.6 本章總結 第5章 網絡設備驅動程序 
5.1 網絡設備驅動程序概述 
5.1.1 網絡設備驅動程序的任務 
5.1.2 網絡設備驅動程序的構成 
5.2 網絡設備與內核的交互 
5.2.1 設備與內?的交互方式 
5.2.2 硬件中斷 
5.2.3 中斷在內核的實現 
5.2.4 軟件中斷 
5.3 網絡設備驅動程序的實現 
5.3.1 網絡適配器的初始化 
5.3.2 網絡設備活動功能函數 
5.3.3 網絡設備管理函數 
5.3.4 在適配器中支持組發(fā)送 
5.4 cs8900a網絡適配器驅動程序的實現 
5.4.1 cs8900a網絡控制芯片的功能概述 
5.4.2 cs8900a的packetpage結構 
5.4.3 cs8900a的操作 
5.4.4 cs8900a設備驅動程序分析 
5.5 本章總結 第6章 數據鏈路層數據幀的收發(fā) 
6.1 關鍵數據結構 
6.1.1 struct napi_struct數據結構 
6.1.2 struct softnet_data數據結構 
6.2 數據幀的接收處理 
6.2.1 napi的實現 
6.2.2 netif_rx函數分析 
6.3 網絡接收軟件中斷 
6.3.1 net_rx_action的工作流程 
6.3.2 net_rx_action函數的實現細節(jié) 
6.3.3 從輸入隊列中讀取數據幀 
6.3.4 處理輸入數據幀 
6.4 數據鏈路層?網絡層的接口 
6.4.1 輸入數據幀協議解析 
6.4.2 實現數據鏈路層與網絡層接口的關鍵數據結構 
6.4.3 接口的組織 
6.5 數據鏈路層對數據幀發(fā)送的處理 
6.5.1 啟動/停止設備發(fā)送數據 
6.5.2 調度設備發(fā)送數據幀 
6.5.3 隊列策略接口 
6.5.4 dev_queue_xmit函數 
6.5.5 發(fā)送軟件中斷 
6.5.6 watchdog時鐘 
6.6 本章總結 第7章 網絡層傳送 
7.1 internet協議的基本概念 
7.1.1 internet協議的任務 
7.1.2 internet 協議頭 
7.1.3 linux內核中描述ip協議頭的數據結構 
7.2 ip協議實現前的準備工作 
7.2.1 協議初始化 
7.2.2 與網絡過濾子系統(tǒng)的交互 
7.2.3 與路由子系統(tǒng)的交互 
7.3 輸入數據包在ip層的處理 
7.3.1 ip_rcv函數分析 
7.3.2 ip_rcv_finish函數分析 
7.3.3 接收操作中ip選項的處理 
7.4 ip選項 
7.4.1 ip選項的格式 
7.4.2 描述ip選項的數據結構 
7.4.3 linux內核對ip選項的處理 
7.4.4 linux內核對ip選項處理的具體實現 
7.5 ipv4數據包的前送和本地發(fā)送 
7.5.1 數據包的前送 
7.5.2 dst_output函數的實現 
7.5.3 本地發(fā)送的處理 
7.6 在ip層的發(fā)送 
7.6.1 執(zhí)行發(fā)送的關鍵函數 
7.6.2 發(fā)送數據包相關信息的數據結構 
7.6.3 ip_queue_xmit函數 
7.6.4 ip_append_data函數預備 
7.6.5 ip_append_data函數分析 
7.6.6 ip_append_page 函數 
7.6.7 ip_push_pending_frames函數 
7.6.8 發(fā)送數據包的整體過程 
7.7 與相鄰子系統(tǒng)的接口 
7.8 數據包的分片與重組 
7.8.1 數據分片需要考慮的問題 
7.8.2 在上層分片的效率 
7.8.3 數據包分片/重組使用的ip 協議頭數據域 
7.9 本章總結 第8章 傳輸層udp協議的實現 
8.1 udp協議基礎 
8.2 udp協議實現的關鍵數據結構 
8.2.1 udp協議頭的數據結構 
8.2.2 udp的控制緩沖區(qū) 
8.2.3 udp套接字的數據結構 
8.2.4 應用程序發(fā)送給udp負載數據的數據結構 
8.3 udp、套接字層、ip層之間的接口 
8.3.1 udp協議實例與套接字層間的接口 
8.3.2 udp協議與ip層之間的接口 
8.4 發(fā)送udp數據報的實現 
8.4.1 初始化一個連接 
8.4.2 在udp套接字上發(fā)送數據包 
8.4.3 向ip層發(fā)送數據包 
8.4.4 從用戶地址空間復制數據到數據報 
8.5 udp 協議接收的實現 
8.5.1 udp協議接收的處理函數 
8.5.2 將數據包放入套接字接收隊列的處理函數 
8.5.3 udp協議接收廣播與組發(fā)送數據包 
8.5.4 udp的哈希鏈表 
8.5.5 將數據包放到套接字接收隊列 
8.6 udp協議在套接字層的接收處理 
8.6.1 函數輸入參數 
8.6.2 函數處理流程 
8.7 本章總結 第9章 傳輸層tcp協議的實現 
9.1 cp協議簡介 
9.1.1 cp是可靠協議 
9.1.2 tcp是面向連接的協議 
9.1.3 tcp是按字節(jié)流交換的協議 
9.1.4 tcp協議實現的功能 
9.2 描述tcp協議實現的關鍵數據結構 
9.2.1 tcp協議頭數據結構 
9.2.2 tcp的控制緩沖區(qū) 
9.2.3 tcp套接字的數據結構 
9.2.4 tcp協議選項options 
9.2.5 應用層傳送給傳輸層信息的數據結構 
9.3 在tcp協議、套接字、ip層之間的接口 
9.3.1 管理套接字與tcp接口的數據結構 
9.3.2 初始化套接字與傳輸層之間的接口 
9.3.3 tcp與ip層之間的接收接口 
9.3.4 tcp與ip層之間的發(fā)送接口 
9.3.5 初始化tcp 套接字 
9.4 tcp協議實例接收過程的實現 
9.4.1 tcp_v4_rcv函數的實現 
9.4.2 fast path和prequeue隊列的處理 
9.4.3 處理tcp的blocklog 隊列 
9.4.4 套接字層的接收函數 
9.5 linux 內核中tcp發(fā)送功能的實現 
9.5.1 將數據從用戶地址空間復制到內核socket buffer 
9.5.2 tcp 數據段輸出 
9.5.3 發(fā)送過程的狀態(tài)機 
9.6 tcp套接字的連接管理 
9.6.1 tcp連接初始化 
9.6.2 tcp狀態(tài)從closed切換到syn_sent 
9.6.3 tcp連接的狀態(tài)管理 
9.6.4 tcp連接為established狀態(tài)時的接收處理 
9.6.5 tcp的time_wait狀態(tài)處理 
9.7 本章總結 第10章 套接字層實現 
10.1 套接字概述 
10.1.1 什么是套接字 
10.1.2 套接字與管理套接字的數據結構 
10.1.3 套接字與文件 
10.2 套接字層的初始化 
10.3 地址族的值和協議交換表 
10.3.1 協議交換表的數據結構 
10.3.2 套接字支持多協議棧的實現 
10.4 ipv4中協議成員注冊和初始化 
10.5 套接字api系統(tǒng)調用的實現 
10.5.1 系統(tǒng)調用簡述 
10.5.2 套接字api系統(tǒng)調用的實現 
10.6 創(chuàng)建套接字 
10.6.1 sock_create函數創(chuàng)建套接字 
10.6.2 協議族套接字創(chuàng)建函數的管理 
10.6.3 af_inet套接字的創(chuàng)建 
10.7 i/o系統(tǒng)調用和套接字 
10.8 本章總結 第11章 應用層——網絡應用套接字編程 
11.1 套接字描述符 
11.1.1 family參數 
11.1.2 type 參數 
11.1.3 protocol 參數 
11.1.4 af_xxx與pf_xxx形式的常數 
11.2 地址格式 
11.2.1 字節(jié)順序 
11.2.2 地址結構 
11.2.3 支持地址格式轉換的函數 
11.2.4 獲取網絡配置信息 
11.2.5 編程示例 
11.2.6 將地址與套接字綁定 
11.3 套接字連接 
11.3.1 connect函數分析 
11.3.2 服務器套接字建立偵聽隊列 
11.3.3 建立套接字連接 
11.4 數據的傳送 
11.4.1 send函數 
11.4.2 傳送數據的函數 
11.4.3 接收數據的函數 
11.4.4 recvfrom、recvmsg函數 
11.4.5 編程示例 
11.5 套接字選項 
11.5.1 設置套接字選項 
11.5.2 讀取套接字選項 
11.6 out-of-band 數據 
11.7 非阻塞和異步i/o操作 
11.8 本章總結 第12章 嵌入式系統(tǒng)網絡應用技術 
12.1 嵌入式系統(tǒng)的設計要素 
12.2 嵌入式系統(tǒng)開發(fā)環(huán)境的構成 
12.2.1 硬件構成 
12.2.2 典型的硬件開發(fā)環(huán)境 
12.2.3 軟件交叉平臺開發(fā)環(huán)境 
12.2.4 嵌入式軟件的開發(fā)步驟 
12.3 將網絡設備驅動程序加入內核 
12.3.1 配置新網絡設備 
12.3.2 編譯新驅動程序 
12.4 內核配置 
12.4.1 目標硬件及內核、庫配置 
12.4.2 內核組件配置 
12.4.3 應用配置 
12.5 集成應用程序并下載至目標板 
12.5.1 集成應用程序 
12.5.2 將執(zhí)行文件下載至目標板 
12.6 本章總結  

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號