出版時(shí)間:2011-5 出版社:電子工業(yè)出版社 作者:?jiǎn)瘟⑵?nbsp; 頁(yè)數(shù):480
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《嵌入式linux網(wǎng)絡(luò)體系結(jié)構(gòu)設(shè)計(jì)與tcp/ip協(xié)議?!泛w了linux嵌入式系統(tǒng)開(kāi)發(fā)中網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)的主要內(nèi)容。
《嵌入式linux網(wǎng)絡(luò)體系結(jié)構(gòu)設(shè)計(jì)與tcp/ip協(xié)議?!饭卜?2章,第1章概述linux內(nèi)核組件與內(nèi)核技術(shù)特點(diǎn),以及網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)應(yīng)用到的內(nèi)核開(kāi)發(fā)的基礎(chǔ)知識(shí)。第2~5章在介紹了實(shí)現(xiàn)網(wǎng)絡(luò)體系結(jié)構(gòu)、協(xié)議棧、設(shè)備驅(qū)動(dòng)程序的兩個(gè)最重要的數(shù)據(jù)結(jié)構(gòu)sk_buff和net_device的基礎(chǔ)上,展示了linux內(nèi)核中為網(wǎng)絡(luò)設(shè)備?動(dòng)程序設(shè)計(jì)和開(kāi)發(fā)而建立的系統(tǒng)構(gòu)架,最后以?xún)蓚€(gè)實(shí)例來(lái)具體說(shuō)明如何著手開(kāi)發(fā)網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,數(shù)據(jù)在硬件設(shè)備上的接收和發(fā)送過(guò)程。第6章討論了網(wǎng)絡(luò)協(xié)議棧中數(shù)據(jù)鏈路層收發(fā)數(shù)據(jù)的設(shè)計(jì)和實(shí)現(xiàn),以及硬件層與協(xié)議層之間的接口。第7章講解了網(wǎng)絡(luò)層ip協(xié)議的實(shí)現(xiàn)。第8~9章介紹傳輸層數(shù)據(jù)收發(fā)過(guò)程,重點(diǎn)介紹基于套接字的tcp/udp傳輸實(shí)現(xiàn)。第10章討論了linux內(nèi)核套接字層的實(shí)現(xiàn),以及套接字層與應(yīng)用層、傳輸層之間的接口。第11章介紹網(wǎng)絡(luò)應(yīng)用軟件的開(kāi)發(fā)技術(shù),以及內(nèi)核對(duì)網(wǎng)絡(luò)應(yīng)用的支持。第12章講解在嵌入式系統(tǒng)開(kāi)發(fā)中如何將硬件驅(qū)動(dòng)程序、內(nèi)核代碼、?用程序集成在一起下載至芯片中,形成嵌入式可運(yùn)行的系統(tǒng),作為全書(shū)的總結(jié)。
《嵌入式linux網(wǎng)絡(luò)體系結(jié)構(gòu)設(shè)計(jì)與tcp/ip協(xié)議?!房梢宰鳛楦叩仍盒S?jì)算機(jī)、通信專(zhuān)業(yè)學(xué)生學(xué)習(xí)操作系統(tǒng)的參考書(shū),也可以作為從事嵌入式、計(jì)算機(jī)行業(yè)的工程技術(shù)人員的參考書(shū)。
作者簡(jiǎn)介
單立平,電子科技大學(xué)計(jì)算機(jī)學(xué)院計(jì)算機(jī)軟件碩士,精通C語(yǔ)言和匯編語(yǔ)言程序設(shè)計(jì),以及實(shí)時(shí)軟件系統(tǒng)開(kāi)發(fā)。在母校執(zhí)教期間,主講《計(jì)算機(jī)組成原理》、《計(jì)算機(jī)導(dǎo)論》、《匯編語(yǔ)言程序設(shè)計(jì)》、《C語(yǔ)言程序設(shè)計(jì)》、《Java程序設(shè)計(jì)》等課程,參與編寫(xiě)多本高校規(guī)劃教材,同時(shí)從事通信、數(shù)據(jù)庫(kù)、嵌入式方向的科研工作。亦有在信息產(chǎn)業(yè)部第十研究所從事衛(wèi)星跟蹤實(shí)時(shí)軟件系統(tǒng)研發(fā)的經(jīng)歷。2005年后定居加拿大,先后在MEADE
WILLIS Company及BlueTree Wireless Data
Inc.任職,主攻Linux平臺(tái)下嵌入式無(wú)線通信、GPS全球定位系統(tǒng)、汽車(chē)電子系統(tǒng)的研究與開(kāi)發(fā)。
書(shū)籍目錄
第1章 概述
1.1 linux內(nèi)核組件
1.2 linux內(nèi)核中的活動(dòng)
1.2.1 進(jìn)程和系統(tǒng)調(diào)用
1.2.2 硬件中斷
1.2.3 tasklet
1.2.4 workqueue
1.2.5 軟件中斷
1.3 互斥機(jī)制
1.3.1 spin lock
1.3.2 讀-寫(xiě) spin lock
1.3.3 讀-復(fù)制-更新(read-copy-update,rcu)
1.4 內(nèi)核模塊(module)
1.4.1 管理內(nèi)核模塊
1.4.2 自動(dòng)裝載模塊
1.4.3 模塊功能的注冊(cè)和取消
1.4.4 在模塊裝載時(shí)給模塊傳遞參數(shù)
1.4.5 內(nèi)核和模塊的符號(hào)表
1.5 內(nèi)存資源
1.5.1 高速緩沖區(qū)(memory cache)
1.5.2 高速緩存和哈希鏈表
1.6 時(shí)間管理
1.7 嵌入式的挑戰(zhàn)
1.8 本章總結(jié)
第2章 linux網(wǎng)絡(luò)包傳輸?shù)年P(guān)鍵數(shù)據(jù)結(jié)構(gòu)——socket buffer
2.1 socket buffer 設(shè)計(jì)概述
2.1.1 socket buffer與tcp/ip協(xié)議棧
2.1.2 socket buffer的對(duì)外接口
2.1.3 socket buffer的特點(diǎn)
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ù)域的設(shè)計(jì)和含義
2.3.1 sk_buff 中的結(jié)構(gòu)管理域
2.3.2 常規(guī)數(shù)據(jù)域
2.3.3 sk_buff 的網(wǎng)絡(luò)功能配置域
2.4 操作sk_buff的函數(shù)
2.4.1 創(chuàng)建和釋放socket buffer
2.4.2 數(shù)據(jù)空間的預(yù)留和對(duì)齊
2.4.3 復(fù)制和克隆
2.4.4 操作隊(duì)列的函數(shù)
2.4.5 引用計(jì)數(shù)的操作
2.4.6 協(xié)議頭指針操作
2.5 數(shù)據(jù)分片和分段
2.5.1 為什么要分割數(shù)據(jù)包
2.5.2 設(shè)計(jì)skb_shared_info數(shù)據(jù)結(jié)構(gòu)的目的
2.5.3 操作skb_shared_info的函數(shù)
2.6 本章總結(jié)
第3章 網(wǎng)絡(luò)設(shè)備在內(nèi)核中的抽象——struct net_device數(shù)據(jù)結(jié)構(gòu)
3.1 協(xié)議棧與網(wǎng)絡(luò)設(shè)備
3.1.1 協(xié)議棧軟件與網(wǎng)絡(luò)設(shè)備硬件之間的接口
3.1.2 設(shè)備獨(dú)立接口文件dev.c
3.1.3 設(shè)備驅(qū)動(dòng)程序
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ù)域的功能分類(lèi)
3.3.1 設(shè)備管理域
3.3.2 設(shè)備配置管理域
3.3.3 設(shè)備狀態(tài)
3.3.4 統(tǒng)計(jì)
3.3.5 設(shè)備鏈表
3.3.6 鏈路層組傳送
3.3.7 流量管理
3.3.8 常規(guī)域
3.3.9 操作函數(shù)結(jié)構(gòu)
3.4 函數(shù)指針
3.4.1 設(shè)備初始化
3.4.2 傳送
3.4.3 硬件協(xié)議頭
3.4.4 網(wǎng)絡(luò)統(tǒng)計(jì)狀態(tài)
3.4.5 修改配置
3.5 本章總結(jié)
第4章 網(wǎng)絡(luò)設(shè)備在linux內(nèi)核中識(shí)別
4.1 內(nèi)核初始化的特點(diǎn)
4.1.1 命令行參數(shù)
4.1.2 網(wǎng)絡(luò)子系?的命令行參數(shù)
4.2 內(nèi)核啟動(dòng)過(guò)程
4.2.1 用do_initcall函數(shù)完成的初始化
4.2.2 標(biāo)記初始化函數(shù)的宏
4.2.3 網(wǎng)絡(luò)子系統(tǒng)初始化
4.2.4 網(wǎng)絡(luò)設(shè)備的初始化
4.3 網(wǎng)絡(luò)設(shè)備的注冊(cè)和struct net_device數(shù)據(jù)結(jié)構(gòu)實(shí)例的初始化
4.3.1 初始化函數(shù)的任務(wù)
4.3.2 網(wǎng)絡(luò)設(shè)備的注冊(cè)和注銷(xiāo)
4.3.3 網(wǎng)絡(luò)設(shè)備的引用計(jì)數(shù)(reference count)
4.3.4 允許和禁止網(wǎng)絡(luò)設(shè)備
4.4 網(wǎng)絡(luò)設(shè)備的管理
4.4.1 管理網(wǎng)絡(luò)設(shè)備的鏈表
4.4.2 網(wǎng)絡(luò)設(shè)備的搜索函數(shù)
4.5 事件通知鏈
4.5.1 事件通知鏈構(gòu)成
4.5.2 注冊(cè)回調(diào)函數(shù)到事件通知鏈
4.5.3 通知子系統(tǒng)有事件發(fā)生
4.5.4 網(wǎng)絡(luò)子系統(tǒng)中的事件通知鏈
4.5.5 網(wǎng)絡(luò)子系統(tǒng)傳送的事件
4.6 本章總結(jié)
第5章 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序
5.1 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序概述
5.1.1 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的任務(wù)
5.1.2 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的構(gòu)成
5.2 網(wǎng)絡(luò)設(shè)備與內(nèi)核的交互
5.2.1 設(shè)備與內(nèi)?的交互方式
5.2.2 硬件中斷
5.2.3 中斷在內(nèi)核的實(shí)現(xiàn)
5.2.4 軟件中斷
5.3 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的實(shí)現(xiàn)
5.3.1 網(wǎng)絡(luò)適配器的初始化
5.3.2 網(wǎng)絡(luò)設(shè)備活動(dòng)功能函數(shù)
5.3.3 網(wǎng)絡(luò)設(shè)備管理函數(shù)
5.3.4 在適配器中支持組發(fā)送
5.4 cs8900a網(wǎng)絡(luò)適配器驅(qū)動(dòng)程序的實(shí)現(xiàn)
5.4.1 cs8900a網(wǎng)絡(luò)控制芯片的功能概述
5.4.2 cs8900a的packetpage結(jié)構(gòu)
5.4.3 cs8900a的操作
5.4.4 cs8900a設(shè)備驅(qū)動(dòng)程序分析
5.5 本章總結(jié)
第6章 數(shù)據(jù)鏈路層數(shù)據(jù)幀的收發(fā)
6.1 關(guān)鍵數(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的實(shí)現(xiàn)
6.2.2 netif_rx函數(shù)分析
6.3 網(wǎng)絡(luò)接收軟件中斷
6.3.1 net_rx_action的工作流程
6.3.2 net_rx_action函數(shù)的實(shí)現(xiàn)細(xì)節(jié)
6.3.3 從輸入隊(duì)列中讀取數(shù)據(jù)幀
6.3.4 處理輸入數(shù)據(jù)幀
6.4 數(shù)據(jù)鏈路層?網(wǎng)絡(luò)層的接口
6.4.1 輸入數(shù)據(jù)幀協(xié)議解析
6.4.2 實(shí)現(xiàn)數(shù)據(jù)鏈路層與網(wǎng)絡(luò)層接口的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)
6.4.3 接口的組織
6.5 數(shù)據(jù)鏈路層對(duì)數(shù)據(jù)幀發(fā)送的處理
6.5.1 啟動(dòng)/停止設(shè)備發(fā)送數(shù)據(jù)
6.5.2 調(diào)度設(shè)備發(fā)送數(shù)據(jù)幀
6.5.3 隊(duì)列策略接口
6.5.4 dev_queue_xmit函數(shù)
6.5.5 發(fā)送軟件中斷
6.5.6 watchdog時(shí)鐘
6.6 本章總結(jié)
第7章 網(wǎng)絡(luò)層傳送
7.1 internet協(xié)議的基本概念
7.1.1 internet協(xié)議的任務(wù)
7.1.2 internet 協(xié)議頭
7.1.3 linux內(nèi)核中描述ip協(xié)議頭的數(shù)據(jù)結(jié)構(gòu)
7.2 ip協(xié)議實(shí)現(xiàn)前的準(zhǔn)備工作
7.2.1 協(xié)議初始化
7.2.2 與網(wǎng)絡(luò)過(guò)濾子系統(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選項(xiàng)的處理
7.4 ip選項(xiàng)
7.4.1 ip選項(xiàng)的格式
7.4.2 描述ip選項(xiàng)的數(shù)據(jù)結(jié)構(gòu)
7.4.3 linux內(nèi)核對(duì)ip選項(xiàng)的處理
7.4.4 linux內(nèi)核對(duì)ip選項(xiàng)處理的具體實(shí)現(xiàn)
7.5 ipv4數(shù)據(jù)包的前送和本地發(fā)送
7.5.1 數(shù)據(jù)包的前送
7.5.2 dst_output函數(shù)的實(shí)現(xiàn)
7.5.3 本地發(fā)送的處理
7.6 在ip層的發(fā)送
7.6.1 執(zhí)行發(fā)送的關(guān)鍵函數(shù)
7.6.2 發(fā)送數(shù)據(jù)包相關(guān)信息的數(shù)據(jù)結(jié)構(gòu)
7.6.3 ip_queue_xmit函數(shù)
7.6.4 ip_append_data函數(shù)預(yù)備
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ù)包的整體過(guò)程
7.7 與相鄰子系統(tǒng)的接口
7.8 數(shù)據(jù)包的分片與重組
7.8.1 數(shù)據(jù)分片需要考慮的問(wèn)題
7.8.2 在上層分片的效率
7.8.3 數(shù)據(jù)包分片/重組使用的ip 協(xié)議頭數(shù)據(jù)域
7.9 本章總結(jié)
第8章 傳輸層udp協(xié)議的實(shí)現(xiàn)
8.1 udp協(xié)議基礎(chǔ)
8.2 udp協(xié)議實(shí)現(xiàn)的關(guā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 應(yīng)用程序發(fā)送給udp負(fù)載數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)
8.3 udp、套接字層、ip層之間的接口
8.3.1 udp協(xié)議實(shí)例與套接字層間的接口
8.3.2 udp協(xié)議與ip層之間的接口
8.4 發(fā)送udp數(shù)據(jù)報(bào)的實(shí)現(xiàn)
8.4.1 初始化一個(gè)連接
8.4.2 在udp套接字上發(fā)送數(shù)據(jù)包
8.4.3 向ip層發(fā)送數(shù)據(jù)包
8.4.4 從用戶(hù)地址空間復(fù)制數(shù)據(jù)到數(shù)據(jù)報(bào)
8.5 udp 協(xié)議接收的實(shí)現(xiàn)
8.5.1 udp協(xié)議接收的處理函數(shù)
8.5.2 將數(shù)據(jù)包放入套接字接收隊(duì)列的處理函數(shù)
8.5.3 udp協(xié)議接收廣播與組發(fā)送數(shù)據(jù)包
8.5.4 udp的哈希鏈表
8.5.5 將數(shù)據(jù)包放到套接字接收隊(duì)列
8.6 udp協(xié)議在套接字層的接收處理
8.6.1 函數(shù)輸入?yún)?shù)
8.6.2 函數(shù)處理流程
8.7 本章總結(jié)
第9章 傳輸層tcp協(xié)議的實(shí)現(xiàn)
9.1 cp協(xié)議簡(jiǎn)介
9.1.1 cp是可靠協(xié)議
9.1.2 tcp是面向連接的協(xié)議
9.1.3 tcp是按字節(jié)流交換的協(xié)議
9.1.4 tcp協(xié)議實(shí)現(xiàn)的功能
9.2 描述tcp協(xié)議實(shí)現(xiàn)的關(guā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é)議選項(xiàng)options
9.2.5 應(yīng)用層傳送給傳輸層信息的數(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é)議實(shí)例接收過(guò)程的實(shí)現(xiàn)
9.4.1 tcp_v4_rcv函數(shù)的實(shí)現(xiàn)
9.4.2 fast path和prequeue隊(duì)列的處理
9.4.3 處理tcp的blocklog 隊(duì)列
9.4.4 套接字層的接收函數(shù)
9.5 linux 內(nèi)核中tcp發(fā)送功能的實(shí)現(xiàn)
9.5.1 將數(shù)據(jù)從用戶(hù)地址空間復(fù)制到內(nèi)核socket buffer
9.5.2 tcp 數(shù)據(jù)段輸出
9.5.3 發(fā)送過(guò)程的狀態(tài)機(jī)
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)時(shí)的接收處理
9.6.5 tcp的time_wait狀態(tài)處理
9.7 本章總結(jié)
第10章 套接字層實(shí)現(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é)議棧的實(shí)現(xiàn)
10.4 ipv4中協(xié)議成員注冊(cè)和初始化
10.5 套接字api系統(tǒng)調(diào)用的實(shí)現(xiàn)
10.5.1 系統(tǒng)調(diào)用簡(jiǎn)述
10.5.2 套接字api系統(tǒng)調(diào)用的實(shí)現(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章 應(yīng)用層——網(wǎng)絡(luò)應(yī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)絡(luò)配置信息
11.2.5 編程示例
11.2.6 將地址與套接字綁定
11.3 套接字連接
11.3.1 connect函數(shù)分析
11.3.2 服務(wù)器套接字建立偵聽(tīng)隊(duì)列
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 套接字選項(xiàng)
11.5.1 設(shè)置套接字選項(xiàng)
11.5.2 讀取套接字選項(xiàng)
11.6 out-of-band 數(shù)據(jù)
11.7 非阻塞和異步i/o操作
11.8 本章總結(jié)
第12章 嵌入式系統(tǒng)網(wǎng)絡(luò)應(yīng)用技術(shù)
12.1 嵌入式系統(tǒng)的設(shè)計(jì)要素
12.2 嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境的構(gòu)成
12.2.1 硬件構(gòu)成
12.2.2 典型的硬件開(kāi)發(fā)環(huán)境
12.2.3 軟件交叉平臺(tái)開(kāi)發(fā)環(huán)境
12.2.4 嵌入式軟件的開(kāi)發(fā)步驟
12.3 將網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序加入內(nèi)核
12.3.1 配置新網(wǎng)絡(luò)設(shè)備
12.3.2 編譯新驅(qū)動(dòng)程序
12.4 內(nèi)核配置
12.4.1 目標(biāo)硬件及內(nèi)核、庫(kù)配置
12.4.2 內(nèi)核組件配置
12.4.3 應(yīng)用配置
12.5 集成應(yīng)用程序并下載至目標(biāo)板
12.5.1 集成應(yīng)用程序
12.5.2 將執(zhí)行文件下載至目標(biāo)板
12.6 本章總結(jié)
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
嵌入式Linux網(wǎng)絡(luò)體系結(jié)構(gòu)設(shè)計(jì)與TCP/IP協(xié)議棧 PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版