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

嵌入式Linux網(wǎng)絡體系結(jié)構(gòu)設計與TCP/IP協(xié)議棧

嵌入式Linux網(wǎng)絡體系結(jié)構(gòu)設計與TCP/IP協(xié)議棧

定 價:¥69.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號