本書較為全面地介紹了基于Linux網(wǎng)絡編程的基礎知識和編程技術,章節(jié)安排貼近企業(yè)項目需求,基于Linux C語言函數(shù)和Linux操作系統(tǒng)支持的庫函數(shù)等進行講解,由易到難,逐層遞進。全書共10章,分為網(wǎng)絡基礎、網(wǎng)絡編程、編程實踐三個部分,內(nèi)容包括網(wǎng)絡概述、網(wǎng)絡基礎概念、套接字、TCP編程、UDP編程、網(wǎng)絡通信、防火墻、原始套接字,并在最后提供了兩個編程實踐項目,通過項目練習幫助讀者鞏固所學的編程技術。
1.全書內(nèi)容結構嚴謹、邏輯分明、條理清晰。
2.本教材注重理論與實踐的結合,使學生和開發(fā)人員能通過實踐深化對理論的理解,并掌握理論知識的實際應用。能更好的培養(yǎng)學生和開發(fā)人員的專業(yè)技能和實踐能力,在學完本書后能學以致用。
3.本書采用“理論導向、項目驅(qū)動”的教學方法,充分激發(fā)學習者的學習興趣,發(fā)揮學習人員的主動性,變常規(guī)的被動學習和填鴨式教學為積極主動學習。
李興華,慧科集團AI機器人學院院長,阿里云 MVP,北京航空航天大學特聘講師,資深嵌入式工程師。精通Unix/Linux操作系統(tǒng)和linux下多種語言編程,熟悉Linux的各種應用編程接口和機制,深入了解Linux應用開發(fā)和系統(tǒng)集成,ARM體系結構與處理器應用開發(fā),linux內(nèi)核與驅(qū)動開發(fā)。參與研發(fā)過的產(chǎn)品涉及工業(yè)控制,智能農(nóng)業(yè)、機器人、智能家電、以及消費類電子產(chǎn)品等多個領域,目前專注于AI機器人專業(yè)人才的培養(yǎng)和研究。
邢碧麟,慧科集團資深講師,具有5年Linux網(wǎng)絡開發(fā)經(jīng)驗,曾工作于新華三集團和瑞斯康達科技發(fā)展有限公司,從事路由器開發(fā),精通Linux網(wǎng)絡編程。作為項目代表對接移動、聯(lián)通電信三家運營商的路由器項目開發(fā),開發(fā)產(chǎn)品包括普通轉(zhuǎn)發(fā)功能路由器和智能路由器。具有豐富的Linux操作系統(tǒng)開發(fā)經(jīng)驗,F(xiàn)北京航空航天大學在讀研究生,專注智能制造方向的研究。
第 1部分 網(wǎng)絡基礎
第 1章 網(wǎng)絡概述 2
1.1 計算機網(wǎng)絡的概念、發(fā)展及類別 2
1.1.1 計算機網(wǎng)絡的概念 2
1.1.2 計算機網(wǎng)絡的發(fā)展 2
1.1.3 計算機網(wǎng)絡的類別 3
1.2 計算機網(wǎng)絡的性能 4
1.3 計算機網(wǎng)絡體系結構 5
1.4 計算機網(wǎng)絡協(xié)議 8
1.5 本章小結 9
1.6 本章習題 9
第2章 網(wǎng)絡基礎概念 10
2.1 MAC地址 10
2.2 IP地址 11
2.3 子網(wǎng)掩碼 12
2.4 端口 13
2.5 本章小結 14
2.6 本章習題 14
第 2部分 網(wǎng)絡編程
第3章 套接字 16
3.1 套接字地址結構 16
3.2 字節(jié)序 18
3.3 網(wǎng)絡通信地址轉(zhuǎn)換函數(shù) 20
3.4 解析器函數(shù) 21
3.5 本章小結 27
3.6 本章習題 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)絡編程 32
4.3.1 基本條件 32
4.3.2 基本流程 32
4.3.3 基本函數(shù) 33
4.4 TCP服務器并發(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服務器 58
4.5.2 HTTP 58
4.5.3 HTTP通信流程 59
4.5.4 HTTP報文解析 59
4.6 網(wǎng)絡抓包工具 61
4.6.1 報文抓取方法 61
4.6.2 色彩標識 63
4.6.3 過濾報文 64
4.6.4 使用Wireshark工具分析報文 66
4.7 本章小結 70
4.8 本章練習 70
第5章 UDP編程 71
5.1 UDP概述 71
5.1.1 UDP的主要特點 71
5.1.2 UDP報文首部解析 72
5.1.3 UDP端口的復用及分用 72
5.2 UDP網(wǎng)絡編程 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 本章小結 90
5.7 本章習題 90
第6章 網(wǎng)絡通信 91
6.1 網(wǎng)絡搭建工具 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 本章小結 99
6.5 本章練習 99
第7章 防火墻 100
7.1 防火墻概述 100
7.2 防火墻網(wǎng)絡布線結構 101
7.3 防火墻的局限性 103
7.4 iptables工具 103
7.5 本章小結 109
7.6 本章習題 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 本章小結 124
8.6 本章習題 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