注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Linux高性能Linux網(wǎng)絡(luò)編程核心技術(shù)揭秘

高性能Linux網(wǎng)絡(luò)編程核心技術(shù)揭秘

高性能Linux網(wǎng)絡(luò)編程核心技術(shù)揭秘

定 價:¥109.00

作 者: 朱文偉 李建英
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302641391 出版時間: 2023-08-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《高性能Linux網(wǎng)絡(luò)編程核心技術(shù)揭秘》沒有從基本的網(wǎng)絡(luò)編程知識講起,而是著眼于當(dāng)前業(yè)界主流的Linux高性能網(wǎng)絡(luò)編程框架,并以實(shí)戰(zhàn)案例的形式將相關(guān)知識展現(xiàn)出來。本書詳細(xì)講解高性能Linux網(wǎng)絡(luò)編程的常用框架,包括Linux網(wǎng)絡(luò)自帶的基本I/O模型epoll、Intel公司的DPDK、高性能服務(wù)器Nginx、高性能事件庫libevent,并配套全部示例源碼。 本書共分10章,內(nèi)容包括高性能網(wǎng)絡(luò)編程概述、Linux基礎(chǔ)和網(wǎng)絡(luò)、搭建Linux網(wǎng)絡(luò)開發(fā)環(huán)境、網(wǎng)絡(luò)服務(wù)器設(shè)計、基于libevent 的FTP服務(wù)器、基于epoll的高并發(fā)聊天服務(wù)器、高性能服務(wù)器Nginx架構(gòu)解析、DPDK開發(fā)環(huán)境的搭建、DPDK應(yīng)用案例實(shí)戰(zhàn)、基于P2P架構(gòu)的高性能游戲服務(wù)器。 本書既適合Linux高性能網(wǎng)絡(luò)編程初學(xué)者、高性能網(wǎng)絡(luò)服務(wù)器開發(fā)人員、高并發(fā)游戲服務(wù)器開發(fā)人員等閱讀,也適合作為高等院校計算機(jī)網(wǎng)絡(luò)與通信、計算機(jī)網(wǎng)絡(luò)技術(shù)等相關(guān)專業(yè)的教材。

作者簡介

  朱文偉,名校計算機(jī)專業(yè)統(tǒng)招碩士。20多年CC 、Java開發(fā)經(jīng)驗(yàn),主導(dǎo)開發(fā)過密碼、圖形、人工智能等方向的產(chǎn)品。精通Linux、Windows系統(tǒng)開發(fā)及數(shù)據(jù)庫開發(fā)技術(shù)。著有圖書《PyQt 5從入門到精通》《Qt 6.x從入門到精通》《Linux C/C 服務(wù)器開發(fā)實(shí)踐》《OpenCV 4.5計算機(jī)視覺開發(fā)實(shí)戰(zhàn):基于Python》《OpenCV 4.5計算機(jī)視覺開發(fā)實(shí)戰(zhàn)(基于VC )》《Linux C與C 一線開發(fā)實(shí)踐》《密碼學(xué)原理與Java實(shí)現(xiàn)》《Visual C 2013從入門到精通》。

圖書目錄

第1章  高性能網(wǎng)絡(luò)編程概述 1
1.1  來自產(chǎn)品經(jīng)理的壓力 1
1.2  網(wǎng)絡(luò)高性能需求越來越大 4
1.3  高性能網(wǎng)絡(luò)報文處理的瓶頸 5
1.4  八仙過海各顯神通 8
1.5  Linux內(nèi)核的弊端 8
1.6  什么是DPDK 9
1.7  高性能服務(wù)器框架研究 10
1.7.1  C/S模型 10
1.7.2  P2P模型 11
1.7.3  服務(wù)器的框架概述 12
1.7.4  高效的事件處理模式 12
1.7.5  高效的并發(fā)模式 14
1.7.6  提高服務(wù)器性能的方法 15
第2章  Linux基礎(chǔ)和網(wǎng)絡(luò) 17
2.1  Linux啟動過程 17
2.2  圖形模式與文字模式的切換方式 19
2.3  Linux關(guān)機(jī)和重啟 20
2.4  開機(jī)自啟動 21
2.5  查看Ubuntu的內(nèi)核版本 23
2.6  查看Ubuntu操作系統(tǒng)的版本 23
2.7  查看CentOS操作系統(tǒng)的版本 23
2.8  CentOS 7升級glibc 24
2.9  在文件中搜索 24
2.10  Linux配置文件的區(qū)別 24
2.11  讓/etc/profile文件修改后立即生效 26
2.12  Linux性能優(yōu)化的常用命令 26
2.13  測試Web服務(wù)器性能 28
2.13.1  架設(shè)Web服務(wù)器Apache 28
2.13.2  Windows下測試Web服務(wù)器性能 30
2.13.3  Linux下測試Web服務(wù)器性能 32
2.14  Linux中的文件權(quán)限 37
2.15  環(huán)境變量的獲取和設(shè)置 38
2.16  解析命令行參數(shù)函數(shù) 41
2.17  登錄桌面到龍芯服務(wù)器 42
2.18  遠(yuǎn)程桌面到銀河麒麟 43
2.19  KVM和Qemu的關(guān)系 44
2.20  檢查系統(tǒng)是否支持虛擬化 45
2.21  在Ubuntu 22中使用KVM虛擬機(jī)CentOS 8 45
2.21.1  安裝CentOS 8虛擬機(jī) 46
2.21.2  虛擬機(jī)和宿主機(jī)網(wǎng)絡(luò)通信 46
2.21.3  通過ssh命令登錄到虛擬機(jī) 47
2.21.4  通過scp命令向虛擬機(jī)Linux傳送文件 47
2.21.5  讓虛擬機(jī)識別到PCI設(shè)備 48
2.22  在Ubuntu下安裝RPM包 51
2.23  在CentOS中使用KVM虛擬機(jī)Ubuntu 22 51
2.23.1  通過圖形化終端使用Ubuntu 22 51
2.23.2  通過遠(yuǎn)程桌面方式使用Ubuntu 22 52
2.23.3  自定義路徑安裝KVM虛擬機(jī) 53
2.23.4  讓虛擬機(jī)識別到PCI設(shè)備 57
2.24  銀河麒麟系統(tǒng)中使用虛擬機(jī) 58
2.25  網(wǎng)絡(luò)通信與報文處理 60
2.26  Linux內(nèi)核的報文處理機(jī)制 61
2.26.1  Linux協(xié)議棧 61
2.26.2  NAPI技術(shù) 62
2.26.3  高性能網(wǎng)卡及網(wǎng)卡多隊列技術(shù) 62
2.26.4  RPS/RFS技術(shù) 63
2.26.5  Linux套接字報文采集 63
2.27  PF_RING高性能報文處理框架 64
2.27.1  PF_RING簡介 64
2.27.2  PF_RING非零復(fù)制庫 64
2.27.3  PF_RING零復(fù)制庫 66
2.28  DPDK高性能報文處理框架 67
2.28.1  DPDK及其技術(shù)優(yōu)點(diǎn) 67
2.28.2  DPDK庫組件 68
2.28.3  PF_RING ZC與DPDK優(yōu)化技術(shù)對比 69
第3章  搭建Linux網(wǎng)絡(luò)開發(fā)環(huán)境 70
3.1  準(zhǔn)備虛擬機(jī)環(huán)境 70
3.1.1  在VMware下安裝Linux 70
3.1.2  開啟登錄時的root賬號 73
3.1.3  解決Ubuntu上的vi方向鍵問題 75
3.1.4  關(guān)閉防火墻 75
3.1.5  配置安裝源 76
3.1.6  安裝網(wǎng)絡(luò)工具包 77
3.1.7  安裝基本開發(fā)工具 77
3.1.8  啟用SSH 77
3.1.9  做個快照 79
3.1.10  連接虛擬機(jī)Linux 79
3.1.11  和虛擬機(jī)互傳文件 93
3.2  搭建Linux下的C/C 開發(fā)環(huán)境 94
3.3  搭建Windows下的Linux C/C 開發(fā)環(huán)境 95
3.3.1  Windows下非集成式的Linux C/C 開發(fā)環(huán)境 95
3.3.2  Windows下集成式的Linux C/C 開發(fā)環(huán)境 99
第4章  網(wǎng)絡(luò)服務(wù)器設(shè)計 103
4.1  I/O模型 104
4.1.1  基本概念 104
4.1.2  同步和異步 104
4.1.3  阻塞和非阻塞 106
4.1.4  同步異步和阻塞非阻塞的關(guān)系 108
4.1.5  為什么要采用socket I/O模型 109
4.1.6  (同步)阻塞I/O模型 109
4.1.7  (同步)非阻塞式I/O模型 110
4.1.8  (同步)I/O多路復(fù)用模型 111
4.1.9  (同步)信號驅(qū)動式I/O模型 112
4.1.10  異步I/O模型 112
4.1.11  五種I/O模型的比較 113
4.2  單進(jìn)程循環(huán)服務(wù)器 114
4.2.1  UDP循環(huán)服務(wù)器 114
4.2.2  TCP循環(huán)服務(wù)器 118
4.3  多進(jìn)程并發(fā)服務(wù)器 121
4.3.1  多進(jìn)程并發(fā)服務(wù)器的分類 121
4.3.2  fork函數(shù)的使用 122
4.4  多線程并發(fā)服務(wù)器 127
4.5  I/O多路復(fù)用的服務(wù)器 131
4.5.1  使用場景 132
4.5.2  基于select的服務(wù)器 132
4.5.3  基于poll的服務(wù)器 140
4.5.4  基于epoll的服務(wù)器 147
第5章  基于libevent的FTP服務(wù)器 156
5.1  Reactor模式 156
5.1.1  Reactor模式的優(yōu)點(diǎn) 157
5.1.2  Reactor模式框架 157
5.1.3  Reactor事件處理流程 159
5.2  使用libevent的基本流程 159
5.3  下載和編譯libevent 161
5.4  FTP概述 163
5.4.1  FTP的工作原理 163
5.4.2  FTP的傳輸方式 163
5.4.3  FTP的工作方式 164
5.4.4  FTP命令 165
5.4.5  FTP應(yīng)答碼 167
5.5  開發(fā)FTP服務(wù)器 169
5.6  開發(fā)FTP客戶端 175
5.6.1  客戶端需求分析 175
5.6.2  概要設(shè)計 176
5.6.3  客戶端工作流程設(shè)計 176
5.6.4  實(shí)現(xiàn)主界面 176
5.6.5  實(shí)現(xiàn)登錄界面 180
5.6.6  實(shí)現(xiàn)登錄后的操作界面 180
5.6.7  運(yùn)行結(jié)果 186
第6章  基于epoll的高并發(fā)聊天服務(wù)器 189
6.1  系統(tǒng)平臺的選擇 189
6.1.1  應(yīng)用系統(tǒng)平臺模式的選擇 189
6.1.2  C/S模式介紹 190
6.1.3  數(shù)據(jù)庫系統(tǒng)的選擇 191
6.2  系統(tǒng)需求分析 191
6.3  系統(tǒng)總體設(shè)計 193
6.4  即時通信系統(tǒng)的實(shí)施原理 194
6.4.1  IM的工作方式 194
6.4.2  IM的基本技術(shù)原理 194
6.4.3  IM的通信方式 195
6.5  功能模塊劃分 195
6.5.1  模塊劃分 195
6.5.2  服務(wù)器端功能 196
6.5.3  客戶端功能 196
6.5.4  服務(wù)器端多線程 197
6.5.5  客戶端的循環(huán)等待 197
6.6  數(shù)據(jù)庫設(shè)計 197
6.6.1  準(zhǔn)備MySQL環(huán)境 198
6.6.2  登錄MySQL 200
6.6.3  Linux下的MySQL的C編程 203
6.6.4  聊天系統(tǒng)數(shù)據(jù)庫設(shè)計 208
6.7  服務(wù)器端設(shè)計 210
6.7.1  使用epoll模型 210
6.7.2  詳細(xì)設(shè)計 210
6.8  客戶端設(shè)計 218
第7章  高性能服務(wù)器Nginx架構(gòu)解析 226
7.1  什么是Nginx 226
7.2  Nginx的下載和安裝 227
7.3  為何要研究Nginx 228
7.4  Nginx概述 230
7.5  Nginx服務(wù)器設(shè)計原則 231
7.6  整體架構(gòu)研究 233
7.6.1  模塊化設(shè)計體系 233
7.6.2  事件驅(qū)動模型 234
7.6.3  進(jìn)程模型 236
7.6.4  內(nèi)存池設(shè)計 237
7.7  Nginx重要的數(shù)據(jù)結(jié)構(gòu) 238
7.7.1  ngx_str_t數(shù)據(jù)結(jié)構(gòu) 238
7.7.2  ngx_array_t數(shù)據(jù)結(jié)構(gòu) 239
7.7.3  ngx_pool_t數(shù)據(jù)結(jié)構(gòu) 240
7.8  反向代理和負(fù)載均衡 241
7.8.1  Nginx反向代理功能 241
7.8.2  負(fù)載均衡的配置 242
7.9  信號機(jī)制 243
7.9.1  啟動Nginx 243
7.9.2  進(jìn)程管理 244
7.10  HTTP框架解析 246
7.10.1  HTTP框架工作流程 246
7.10.2  處理引擎 248
7.10.3  過濾引擎 249
7.11  upstream機(jī)制的實(shí)現(xiàn) 249
第8章  DPDK開發(fā)環(huán)境的搭建 253
8.1  檢查裝備 253
8.1.1  基本硬件要求 253
8.1.2  操作系統(tǒng)要求 253
8.1.3  編譯DPDK的要求 254
8.1.4  運(yùn)行DPDK應(yīng)用程序的要求 254
8.2  虛擬機(jī)下編譯安裝DPDK20 255
8.2.1  為何要配置硬件 255
8.2.2  配置CPU 255
8.2.3  配置內(nèi)存 256
8.2.4  添加網(wǎng)卡 257
8.2.5  安裝和使用Meson 258
8.2.6  下載并解壓DPDK 261
8.2.7  配置構(gòu)建、編譯和安裝 261
8.2.8  第一個基于DPDK20的DPDK程序 264
8.2.9  大頁內(nèi)存及其設(shè)置 267
8.2.10  綁定網(wǎng)卡 276
8.2.11  實(shí)現(xiàn)一個稍復(fù)雜的命令行工具 282
8.3  虛擬機(jī)下命令方式建立DPDK19環(huán)境 293
8.4  虛擬機(jī)下腳本方式建立DPDK19環(huán)境 295
8.5  在CentOS 7.6下建立DPDK19環(huán)境 302
8.6  在CentOS 8.2下建立DPDK20環(huán)境 313
8.6.1  搭建Meson Ninja環(huán)境 313
8.6.2  基于Meson建立DPDK20環(huán)境 315
8.6.3  單步調(diào)試DPDK20程序 318
8.6.4  make命令開發(fā)DPDK20程序 321
8.7  在國產(chǎn)操作系統(tǒng)下搭建基于萬兆網(wǎng)卡的DPDK20環(huán)境 326
8.7.1  CentOS 8驗(yàn)證萬兆網(wǎng)卡 327
8.7.2  DPDK適配PC國產(chǎn)系統(tǒng) 329
8.7.3  DPDK適配兆芯服務(wù)器 332
8.7.4  DPDK適配飛騰服務(wù)器 334
第9章  DPDK應(yīng)用案例實(shí)戰(zhàn) 337
9.1  實(shí)戰(zhàn)1:測試兩個網(wǎng)口之間的收發(fā) 337
9.1.1  搞清楚網(wǎng)卡、網(wǎng)口和端口 337
9.1.2  testpmd簡介 338
9.1.3  testpmd的轉(zhuǎn)發(fā)模式 338
9.1.4  案例中的使用場景 339
9.1.5  搭建DPDK案例環(huán)境 339
9.1.6  運(yùn)行測試工具 342
9.1.7  testpmd的其他選項(xiàng) 346
9.2  實(shí)戰(zhàn)2:接收來自Windows的網(wǎng)絡(luò)包并統(tǒng)計 347
9.2.1  什么是二層轉(zhuǎn)發(fā) 347
9.2.2  程序的主要流程 348
9.2.3  主函數(shù)實(shí)現(xiàn) 348
9.2.4  任務(wù)分發(fā)的實(shí)現(xiàn) 354
9.2.5  程序參數(shù)的解析實(shí)現(xiàn) 357
9.2.6  轉(zhuǎn)發(fā)的實(shí)現(xiàn) 358
9.2.7  信號的處理 359
9.2.8  搭建DPDK案例環(huán)境 359
9.2.9  編寫Makefile并編譯 359
9.2.10  在Windows上部署環(huán)境 361
9.2.11  運(yùn)行程序 363
第10章  基于P2P架構(gòu)的高性能游戲服務(wù)器 365
10.1  網(wǎng)絡(luò)游戲服務(wù)器發(fā)展現(xiàn)狀 366
10.2  現(xiàn)有網(wǎng)絡(luò)游戲服務(wù)器架構(gòu) 367
10.2.1  Client/Server架構(gòu) 367
10.2.2  游戲大廳代理架構(gòu) 368
10.2.3  P2P架構(gòu) 368
10.3  P2P網(wǎng)絡(luò)游戲技術(shù)分析 369
10.4  網(wǎng)絡(luò)游戲的同步機(jī)制 370
10.4.1  事件一致性 371
10.4.2  時間同步 371
10.5  總體設(shè)計 372
10.5.1  服務(wù)器系統(tǒng)架構(gòu)模型 372
10.5.2  傳輸層協(xié)議的選擇 374
10.5.3  協(xié)議包設(shè)計 375
10.6  數(shù)據(jù)庫設(shè)計 377
10.7  服務(wù)器詳細(xì)設(shè)計和實(shí)現(xiàn) 377
10.8  客戶端詳細(xì)設(shè)計和實(shí)現(xiàn) 386
10.8.1  棋盤類CTable 387
10.8.2  游戲模式類CGame 389
10.8.3  消息機(jī)制 391
10.8.4  游戲算法 394

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號