本書(shū)較為全面地介紹了基于Linux網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí)和編程技術(shù),章節(jié)安排貼近企業(yè)項(xiàng)目需求,基于Linux C語(yǔ)言函數(shù)和Linux操作系統(tǒng)支持的庫(kù)函數(shù)等進(jìn)行講解,由易到難,逐層遞進(jìn)。全書(shū)共10章,分為網(wǎng)絡(luò)基礎(chǔ)、網(wǎng)絡(luò)編程、編程實(shí)踐三個(gè)部分,內(nèi)容包括網(wǎng)絡(luò)概述、網(wǎng)絡(luò)基礎(chǔ)概念、套接字、TCP編程、UDP編程、網(wǎng)絡(luò)通信、防火墻、原始套接字,并在最后提供了兩個(gè)編程實(shí)踐項(xiàng)目,通過(guò)項(xiàng)目練習(xí)幫助讀者鞏固所學(xué)的編程技術(shù)。
1.全書(shū)內(nèi)容結(jié)構(gòu)嚴(yán)謹(jǐn)、邏輯分明、條理清晰。
2.本教材注重理論與實(shí)踐的結(jié)合,使學(xué)生和開(kāi)發(fā)人員能通過(guò)實(shí)踐深化對(duì)理論的理解,并掌握理論知識(shí)的實(shí)際應(yīng)用。能更好的培養(yǎng)學(xué)生和開(kāi)發(fā)人員的專(zhuān)業(yè)技能和實(shí)踐能力,在學(xué)完本書(shū)后能學(xué)以致用。
3.本書(shū)采用“理論導(dǎo)向、項(xiàng)目驅(qū)動(dòng)”的教學(xué)方法,充分激發(fā)學(xué)習(xí)者的學(xué)習(xí)興趣,發(fā)揮學(xué)習(xí)人員的主動(dòng)性,變常規(guī)的被動(dòng)學(xué)習(xí)和填鴨式教學(xué)為積極主動(dòng)學(xué)習(xí)。
李興華,慧科集團(tuán)AI機(jī)器人學(xué)院院長(zhǎng),阿里云 MVP,北京航空航天大學(xué)特聘講師,資深嵌入式工程師。精通Unix/Linux操作系統(tǒng)和linux下多種語(yǔ)言編程,熟悉Linux的各種應(yīng)用編程接口和機(jī)制,深入了解Linux應(yīng)用開(kāi)發(fā)和系統(tǒng)集成,ARM體系結(jié)構(gòu)與處理器應(yīng)用開(kāi)發(fā),linux內(nèi)核與驅(qū)動(dòng)開(kāi)發(fā)。參與研發(fā)過(guò)的產(chǎn)品涉及工業(yè)控制,智能農(nóng)業(yè)、機(jī)器人、智能家電、以及消費(fèi)類(lèi)電子產(chǎn)品等多個(gè)領(lǐng)域,目前專(zhuān)注于AI機(jī)器人專(zhuān)業(yè)人才的培養(yǎng)和研究。
邢碧麟,慧科集團(tuán)資深講師,具有5年Linux網(wǎng)絡(luò)開(kāi)發(fā)經(jīng)驗(yàn),曾工作于新華三集團(tuán)和瑞斯康達(dá)科技發(fā)展有限公司,從事路由器開(kāi)發(fā),精通Linux網(wǎng)絡(luò)編程。作為項(xiàng)目代表對(duì)接移動(dòng)、聯(lián)通電信三家運(yùn)營(yíng)商的路由器項(xiàng)目開(kāi)發(fā),開(kāi)發(fā)產(chǎn)品包括普通轉(zhuǎn)發(fā)功能路由器和智能路由器。具有豐富的Linux操作系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),F(xiàn)北京航空航天大學(xué)在讀研究生,專(zhuān)注智能制造方向的研究。
第 1部分 網(wǎng)絡(luò)基礎(chǔ)
第 1章 網(wǎng)絡(luò)概述 2
1.1 計(jì)算機(jī)網(wǎng)絡(luò)的概念、發(fā)展及類(lèi)別 2
1.1.1 計(jì)算機(jī)網(wǎng)絡(luò)的概念 2
1.1.2 計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展 2
1.1.3 計(jì)算機(jī)網(wǎng)絡(luò)的類(lèi)別 3
1.2 計(jì)算機(jī)網(wǎng)絡(luò)的性能 4
1.3 計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu) 5
1.4 計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議 8
1.5 本章小結(jié) 9
1.6 本章習(xí)題 9
第2章 網(wǎng)絡(luò)基礎(chǔ)概念 10
2.1 MAC地址 10
2.2 IP地址 11
2.3 子網(wǎng)掩碼 12
2.4 端口 13
2.5 本章小結(jié) 14
2.6 本章習(xí)題 14
第 2部分 網(wǎng)絡(luò)編程
第3章 套接字 16
3.1 套接字地址結(jié)構(gòu) 16
3.2 字節(jié)序 18
3.3 網(wǎng)絡(luò)通信地址轉(zhuǎn)換函數(shù) 20
3.4 解析器函數(shù) 21
3.5 本章小結(jié) 27
3.6 本章習(xí)題 27
第4章 TCP編程 28
4.1 TCP概述 28
4.1.1 TCP的三個(gè)特性 28
4.1.2 TCP報(bào)文首部解析 29
4.2 TCP連接的建立及斷開(kāi) 31
4.2.1 TCP建立連接——三次握手 31
4.2.2 TCP斷開(kāi)連接——四次揮手 31
4.3 TCP網(wǎng)絡(luò)編程 32
4.3.1 基本條件 32
4.3.2 基本流程 32
4.3.3 基本函數(shù) 33
4.4 TCP服務(wù)器并發(fā) 41
4.4.1 進(jìn)程 41
4.4.2 線(xiàn)程 44
4.4.3 select 48
4.4.4 epoll 53
4.5 HTTP通信 58
4.5.1 Web服務(wù)器 58
4.5.2 HTTP 58
4.5.3 HTTP通信流程 59
4.5.4 HTTP報(bào)文解析 59
4.6 網(wǎng)絡(luò)抓包工具 61
4.6.1 報(bào)文抓取方法 61
4.6.2 色彩標(biāo)識(shí) 63
4.6.3 過(guò)濾報(bào)文 64
4.6.4 使用Wireshark工具分析報(bào)文 66
4.7 本章小結(jié) 70
4.8 本章練習(xí) 70
第5章 UDP編程 71
5.1 UDP概述 71
5.1.1 UDP的主要特點(diǎn) 71
5.1.2 UDP報(bào)文首部解析 72
5.1.3 UDP端口的復(fù)用及分用 72
5.2 UDP網(wǎng)絡(luò)編程 73
5.2.1 UDP通信流程建立 73
5.2.2 編程函數(shù) 74
5.3 TFTP 79
5.3.1 TFTP概述 79
5.3.2 TFTP報(bào)文分析 80
5.3.3 TFTP通信流程 82
5.4 廣播 84
5.4.1 廣播協(xié)議 84
5.4.2 廣播地址 84
5.4.3 廣播編程 85
5.5 多播 87
5.5.1 多播地址 87
5.5.2 多播編程 87
5.6 本章小結(jié) 90
5.7 本章習(xí)題 90
第6章 網(wǎng)絡(luò)通信 91
6.1 網(wǎng)絡(luò)搭建工具 91
6.2 交換機(jī)通信 95
6.2.1 交換機(jī)概述 95
6.2.2 交換機(jī)種類(lèi) 96
6.2.3 交換機(jī)組網(wǎng) 97
6.3 路由器通信 98
6.3.1 路由器概述 98
6.3.2 路由器組網(wǎng) 98
6.4 本章小結(jié) 99
6.5 本章練習(xí) 99
第7章 防火墻 100
7.1 防火墻概述 100
7.2 防火墻網(wǎng)絡(luò)布線(xiàn)結(jié)構(gòu) 101
7.3 防火墻的局限性 103
7.4 iptables工具 103
7.5 本章小結(jié) 109
7.6 本章習(xí)題 109
第8章 原始套接字 110
8.1 原始套接字概述 110
8.2 創(chuàng)建原始套接字 111
8.2.1 鏈路層原始套接字 112
8.2.2 網(wǎng)際層原始套接字 116
8.3 網(wǎng)卡工作模式 122
8.4 原始數(shù)據(jù)包分析 123
8.5 本章小結(jié) 124
8.6 本章習(xí)題 124
第3部分 編程實(shí)踐
第9章 飛鴿傳書(shū)項(xiàng)目 126
9.1 飛鴿傳書(shū)概述 126
9.2 IPMsg簡(jiǎn)介 126
9.3 項(xiàng)目介紹 128
9.4 項(xiàng)目實(shí)施 131
第 10章 路由器項(xiàng)目 161
10.1 路由器項(xiàng)目概述 161
10.2 路由器功能簡(jiǎn)介 161
10.3 項(xiàng)目分析 162
10.4 項(xiàng)目實(shí)施 164
參考文獻(xiàn) 172