本書較為全面地介紹了基于Linux網(wǎng)絡(luò)編程的基礎(chǔ)知識和編程技術(shù),章節(jié)安排貼近企業(yè)項目需求,基于Linux C語言函數(shù)和Linux操作系統(tǒng)支持的庫函數(shù)等進行講解,由易到難,逐層遞進。全書共10章,分為網(wǎng)絡(luò)基礎(chǔ)、網(wǎng)絡(luò)編程、編程實踐三個部分,內(nèi)容包括網(wǎng)絡(luò)概述、網(wǎng)絡(luò)基礎(chǔ)概念、套接字、TCP編程、UDP編程、網(wǎng)絡(luò)通信、防火墻、原始套接字,并在最后提供了兩個編程實踐項目,通過項目練習(xí)幫助讀者鞏固所學(xué)的編程技術(shù)。
1.全書內(nèi)容結(jié)構(gòu)嚴謹、邏輯分明、條理清晰。
2.本教材注重理論與實踐的結(jié)合,使學(xué)生和開發(fā)人員能通過實踐深化對理論的理解,并掌握理論知識的實際應(yīng)用。能更好的培養(yǎng)學(xué)生和開發(fā)人員的專業(yè)技能和實踐能力,在學(xué)完本書后能學(xué)以致用。
3.本書采用“理論導(dǎo)向、項目驅(qū)動”的教學(xué)方法,充分激發(fā)學(xué)習(xí)者的學(xué)習(xí)興趣,發(fā)揮學(xué)習(xí)人員的主動性,變常規(guī)的被動學(xué)習(xí)和填鴨式教學(xué)為積極主動學(xué)習(xí)。
李興華,慧科集團AI機器人學(xué)院院長,阿里云 MVP,北京航空航天大學(xué)特聘講師,資深嵌入式工程師。精通Unix/Linux操作系統(tǒng)和linux下多種語言編程,熟悉Linux的各種應(yīng)用編程接口和機制,深入了解Linux應(yīng)用開發(fā)和系統(tǒng)集成,ARM體系結(jié)構(gòu)與處理器應(yīng)用開發(fā),linux內(nèi)核與驅(qū)動開發(fā)。參與研發(fā)過的產(chǎn)品涉及工業(yè)控制,智能農(nóng)業(yè)、機器人、智能家電、以及消費類電子產(chǎn)品等多個領(lǐng)域,目前專注于AI機器人專業(yè)人才的培養(yǎng)和研究。
邢碧麟,慧科集團資深講師,具有5年Linux網(wǎng)絡(luò)開發(fā)經(jīng)驗,曾工作于新華三集團和瑞斯康達科技發(fā)展有限公司,從事路由器開發(fā),精通Linux網(wǎng)絡(luò)編程。作為項目代表對接移動、聯(lián)通電信三家運營商的路由器項目開發(fā),開發(fā)產(chǎn)品包括普通轉(zhuǎn)發(fā)功能路由器和智能路由器。具有豐富的Linux操作系統(tǒng)開發(fā)經(jīng)驗。現(xiàn)北京航空航天大學(xué)在讀研究生,專注智能制造方向的研究。
第 1部分 網(wǎng)絡(luò)基礎(chǔ)
第 1章 網(wǎng)絡(luò)概述 2
1.1 計算機網(wǎng)絡(luò)的概念、發(fā)展及類別 2
1.1.1 計算機網(wǎng)絡(luò)的概念 2
1.1.2 計算機網(wǎng)絡(luò)的發(fā)展 2
1.1.3 計算機網(wǎng)絡(luò)的類別 3
1.2 計算機網(wǎng)絡(luò)的性能 4
1.3 計算機網(wǎng)絡(luò)體系結(jié)構(gòu) 5
1.4 計算機網(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的三個特性 28
4.1.2 TCP報文首部解析 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 進程 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報文解析 59
4.6 網(wǎng)絡(luò)抓包工具 61
4.6.1 報文抓取方法 61
4.6.2 色彩標識 63
4.6.3 過濾報文 64
4.6.4 使用Wireshark工具分析報文 66
4.7 本章小結(jié) 70
4.8 本章練習(xí) 70
第5章 UDP編程 71
5.1 UDP概述 71
5.1.1 UDP的主要特點 71
5.1.2 UDP報文首部解析 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報文分析 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 交換機通信 95
6.2.1 交換機概述 95
6.2.2 交換機種類 96
6.2.3 交換機組網(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部分 編程實踐
第9章 飛鴿傳書項目 126
9.1 飛鴿傳書概述 126
9.2 IPMsg簡介 126
9.3 項目介紹 128
9.4 項目實施 131
第 10章 路由器項目 161
10.1 路由器項目概述 161
10.2 路由器功能簡介 161
10.3 項目分析 162
10.4 項目實施 164
參考文獻 172