本書較為全面地介紹了基于Linux網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí)和編程技術(shù),章節(jié)安排貼近企業(yè)項(xiàng)目需求,基于Linux C語言函數(shù)和Linux操作系統(tǒng)支持的庫函數(shù)等進(jìn)行講解,由易到難,逐層遞進(jìn)。全書共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)目,通過項(xiàng)目練習(xí)幫助讀者鞏固所學(xué)的編程技術(shù)。
1.全書內(nèi)容結(jié)構(gòu)嚴(yán)謹(jǐn)、邏輯分明、條理清晰。
2.本教材注重理論與實(shí)踐的結(jié)合,使學(xué)生和開發(fā)人員能通過實(shí)踐深化對(duì)理論的理解,并掌握理論知識(shí)的實(shí)際應(yīng)用。能更好的培養(yǎng)學(xué)生和開發(fā)人員的專業(yè)技能和實(shí)踐能力,在學(xué)完本書后能學(xué)以致用。
3.本書采用“理論導(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é)院院長,阿里云 MVP,北京航空航天大學(xué)特聘講師,資深嵌入式工程師。精通Unix/Linux操作系統(tǒng)和linux下多種語言編程,熟悉Linux的各種應(yīng)用編程接口和機(jī)制,深入了解Linux應(yīng)用開發(fā)和系統(tǒng)集成,ARM體系結(jié)構(gòu)與處理器應(yīng)用開發(fā),linux內(nèi)核與驅(qū)動(dòng)開發(fā)。參與研發(fā)過的產(chǎn)品涉及工業(yè)控制,智能農(nóng)業(yè)、機(jī)器人、智能家電、以及消費(fèi)類電子產(chǎn)品等多個(gè)領(lǐng)域,目前專注于AI機(jī)器人專業(yè)人才的培養(yǎng)和研究。
邢碧麟,慧科集團(tuán)資深講師,具有5年Linux網(wǎng)絡(luò)開發(fā)經(jīng)驗(yàn),曾工作于新華三集團(tuán)和瑞斯康達(dá)科技發(fā)展有限公司,從事路由器開發(fā),精通Linux網(wǎng)絡(luò)編程。作為項(xiàng)目代表對(duì)接移動(dòng)、聯(lián)通電信三家運(yùn)營商的路由器項(xiàng)目開發(fā),開發(fā)產(chǎn)品包括普通轉(zhuǎn)發(fā)功能路由器和智能路由器。具有豐富的Linux操作系統(tǒng)開發(fā)經(jīng)驗(yàn),F(xiàn)北京航空航天大學(xué)在讀研究生,專注智能制造方向的研究。
第 1部分 網(wǎng)絡(luò)基礎(chǔ)
第 1章 網(wǎng)絡(luò)概述 2
1.1 計(jì)算機(jī)網(wǎng)絡(luò)的概念、發(fā)展及類別 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ò)的類別 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連接的建立及斷開 31
4.2.1 TCP建立連接——三次握手 31
4.2.2 TCP斷開連接——四次揮手 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 線程 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 過濾報(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ī)種類 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ò)布線結(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章 飛鴿傳書項(xiàng)目 126
9.1 飛鴿傳書概述 126
9.2 IPMsg簡介 126
9.3 項(xiàng)目介紹 128
9.4 項(xiàng)目實(shí)施 131
第 10章 路由器項(xiàng)目 161
10.1 路由器項(xiàng)目概述 161
10.2 路由器功能簡介 161
10.3 項(xiàng)目分析 162
10.4 項(xiàng)目實(shí)施 164
參考文獻(xiàn) 172