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

高性能Linux網絡編程核心技術揭秘

高性能Linux網絡編程核心技術揭秘

定 價:¥109.00

作 者: 朱文偉 李建英
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


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

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號