Linux高性能服務器編程


Linux高性能服務器編程
基本信息
作者: 游雙
出版社:機械工業出版社
ISBN:9787111425199
上架時間:2013-5-30
出版日期:2013 年6月
開本:16開
頁碼:1
版次:1-1
所屬分類:計算機 > 操作系統 > Linux
更多關於 》》》《 Linux高性能服務器編程
內容簡介
計算機書籍
  《linux高性能服務器編程》是linux服務器編程領域的經典著作,由資深linux軟件開發工程師撰寫,從網絡協議、服務器編程核心要素、原理機制、工具框架等多角度全面闡釋了編寫高性能linux服務器應用的方法、技巧和思想。不僅理論全面、深入,抓住了重點和難點,還包含兩個綜合性案例,極具實戰意義。
   全書共17章,分為3個部分:第一部分對linux服務器編程的核心基礎——tcp/ip協議進行了深入的解讀和闡述,包括tcp/ip協議族、tcp/ip協議,以及一個經典的tcp/ip通信案例;第二部分對高性能服務器編程的核心要素進行了全面深入的剖析,包含linux網絡編程api、高級i/o函數、linux服務器程序規范、高性能服務器程序框架、i/o復用、信號、定時器、高性能i/o框架庫libevent、多進程編程、多線程編程、進程池和線程池等內容,原理、技術與方法並重;第三部分從側重實戰的角度講解了高性能服務器的優化與監測,包含服務器的調制、調試和測試,以及各種實用系統監測工具的使用等內容。
   《linux高性能服務器編程》另外免費贈送一個負載均衡服務器程序的完整實際項目的源代碼!
目錄
《linux高性能服務器編程》
前言
第一篇 tcp/ip協議詳解
第1章 tcp/ip協議族 / 2
1.1 tcp/ip協議族體系結構以及主要協議 / 2
1.1.1 數據鏈路層 / 2
1.1.2 網絡層 / 3
1.1.3 傳輸層 / 4
1.1.4 應用層 / 5
1.2 封裝 / 6
1.3 分用 / 7
1.4 測試網絡 / 8
1.5 arp協議工作原理 / 9
1.5.1 以太網arp請求/應答報文詳解 / 9
1.5.2 arp高速緩存的查看和修改 / 10
1.5.3 使用tcpdump觀察arp通信過程 / 10
1.6 dns工作原理 / 12
1.6.1 dns查詢和應答報文詳解 / 12
1.6.2 linux下訪問dns服務 / 14
1.6.3 使用tcpdump觀察dns通信過程 / 15
.1.7 socket和tcp/ip協議族的關系 / 16
第2章 ip協議詳解 / 17
2.1 ip服務的特點 / 17
2.2 ipv4頭部結構 / 18
2.2.1 ipv4頭部結構 / 18
2.2.2 使用tcpdump觀察ipv4頭部結構 / 20
2.3 ip分片 / 21
2.4 ip路由 / 22
2.4.1 ip模塊工作流程 / 23
2.4.2 路由機制 / 24
2.4.3 路由表更新 / 25
2.5 ip轉發 / 25
2.6 重定向 / 26
2.6.1 icmp重定向報文 / 26
2.6.2 主機重定向實例 / 27
2.7 ipv6頭部結構 / 27
2.7.1 ipv6固定頭部結構 / 28
2.7.2 ipv6擴展頭部 / 29
第3章 tcp協議詳解 / 30
3.1 tcp服務的特點 / 30
3.2 tcp頭部結構 / 32
3.2.1 tcp固定頭部結構 / 32
3.2.2 tcp頭部選項 / 33
3.2.3 使用tcpdump觀察tcp頭部信息 / 35
3.3 tcp連接的建立和關閉 / 37
3.3.1 使用tcpdump觀察tcp連接的建立和關閉 / 37
3.3.2 半關閉狀態 / 39
3.3.3 連接超時 / 39
3.4 tcp狀態轉移 / 40
3.4.1 tcp狀態轉移總圖 / 41
3.4.2 time_wait狀態 / 43
3.5 復位報文段 / 44
3.5.1 訪問不存在的端口 / 44
3.5.2 異常終止連接 / 45
3.5.3 處理半打開連接 / 45
3.6 tcp交互數據流 / 46
3.7 tcp成塊數據流 / 48
3.8 帶外數據 / 50
3.9 tcp超時重傳 / 51
3.10 擁塞控制 / 53
3.10.1 擁塞控制概述 / 53
3.10.2 慢啟動和擁塞避免 / 54
3.10.3 快速重傳和快速恢復 / 55
第4章 tcp/ip通信案例:訪問internet上的web服務器 / 57
4.1 實例總圖 / 57
4.2 部署代理服務器 / 58
4.2.1 http代理服務器的工作原理 / 58
4.2.2 部署squid代理服務器 / 59
4.3 使用tcpdump抓取傳輸數據包 / 60
4.4 訪問dns服務器 / 62
4.5 本地名稱查詢 / 63
4.6 http通信 / 64
4.6.1 http請求 / 65
4.6.2 http應答 / 66
4.7 實例總結 / 68
第二篇 深入解析高性能服務器編程
第5章 linux網絡編程基礎api / 70
5.1 socket地址api / 70
5.1.1 主機字節序和網絡字節序 / 70
5.1.2 通用socket地址 / 71
5.1.3 專用socket地址 / 72
5.1.4 ip地址轉換函數 / 73
5.2 創建socket / 74
5.3 命名socket / 75
5.4 監聽socket / 76
5.5 接受連接 / 78
5.6 發起連接 / 80
5.7 關閉連接 / 80
5.8 數據讀寫 / 81
5.8.1 tcp數據讀寫 / 81
5.8.2 udp數據讀寫 / 85
5.8.3 通用數據讀寫函數 / 86
5.9 帶外標記 / 87
5.10 地址信息函數 / 87
5.11 socket選項 / 87
5.11.1 so_reuseaddr選項 / 89
5.11.2 so_rcvbuf和so_sndbuf選項 / 89
5.11.3 so_rcvlowat和so_sndlowat選項 / 93
5.11.4 so_linger選項 / 93
5.12 網絡信息api / 94
5.12.1 gethostbyname和gethostbyaddr / 94
5.12.2 getservbyname和getservbyport / 95
5.12.3 getaddrinfo / 96
5.12.4 getnameinfo / 98
第6章 高級i/o函數 / 100
6.1 pipe函數 / 100
6.2 dup函數和dup2函數 / 101
6.3 readv函數和writev函數 / 103
6.4 sendfile函數 / 106
6.5 mmap函數和munmap函數 / 107
6.6 splice函數 / 108
6.7 tee函數 / 110
6.8 fcntl函數 / 112
第7章 linux服務器程序規范 / 114
7.1 日志 / 114
7.1.1 linux系統日志 / 114
7.1.2 syslog函數 / 115
7.2 用戶信息 / 116
7.2.1 uid、euid、gid和egid / 116
7.2.2 切換用戶 / 117
7.3 進程間關系 / 118
7.3.1 進程組 / 118
7.3.2 會話 / 118
7.3.3 用ps命令查看進程關系 / 119
7.4 系統資源限制 / 119
7.5 改變工作目錄和根目錄 / 120
7.6 服務器程序后台化 / 121
第8章 高性能服務器程序框架 / 123
8.1 服務器模型 / 123
8.1.1 c/s模型 / 123
8.1.2 p2p模型 / 124
8.2 服務器編程框架 / 125
8.3 i/o模型 / 126
8.4 兩種高效的事件處理模式 / 127
8.4.1 reactor模式 / 128
8.4.2 proactor模式 / 128
8.4.3 模擬proactor模式 / 129
8.5 兩種高效的並發模式 / 130
8.5.1 半同步/半異步模式 / 131
8.5.2 領導者/追隨者模式 / 134
8.6 有限狀態機 / 136
8.7 提高服務器性能的其他建議 / 144
8.7.1 池 / 144
8.7.2 數據復制 / 145
8.7.3 上下文切換和鎖 / 145
第9章 i/o復用 / 146
9.1 select系統調用 / 146
9.1.1 select api / 146
9.1.2 文件描述符就緒條件 / 148
9.1.3 處理帶外數據 / 148
9.2 poll系統調用 / 150
9.3 epoll系列系統調用 / 151
9.3.1 內核事件表 / 151
9.3.2 epoll_wait函數 / 152
9.3.3 lt和et模式 / 153
9.3.4 epolloneshot事件 / 157
9.4 三組i/o復用函數的比較 / 161
9.5 i/o復用的高級應用一:非阻塞connect / 162
9.6 i/o復用的高級應用二:聊天室程序 / 165
9.6.1 客戶端 / 165
9.6.2 服務器 / 167
9.7 i/o復用的高級應用三:同時處理tcp和udp服務 / 171
9.8 超級服務xinetd / 175
9.8.1 xinetd配置文件 / 175
9.8.2 xinetd工作流程 / 176
第10章 信號 / 178
10.1 linux信號概述 / 178
10.1.1 發送信號 / 178
10.1.2 信號處理方式 / 179
10.1.3 linux信號 / 179
10.1.4 中斷系統調用 / 181
10.2 信號函數 / 181
10.2.1 signal系統調用 / 181
10.2.2 sigaction系統調用 / 181
10.3 信號集 / 182
10.3.1 信號集函數 / 182
10.3.2 進程信號掩碼 / 183
10.3.3 被掛起的信號 / 183
10.4 統一事件源 / 184
10.5 網絡編程相關信號 / 188
10.5.1 sighup / 188
10.5.2 sigpipe / 189
10.5.3 sigurg / 190
第11章 定時器 / 193
11.1 socket選項so_rcvtimeo和so_sndtimeo / 193
11.2  sigalrm信號 / 195
11.2.1 基於升序鏈表的定時器 / 195
11.2.2 處理非活動連接 / 200
11.3 i/o復用系統調用的超時參數 / 205
11.4 高性能定時器 / 206
11.4.1 時間輪 / 206
11.4.2 時間堆 / 211
第12章 高性能i/o框架庫libevent / 218
12.1 i/o框架庫概述 / 218
12.2 libevent源碼分析 / 220
12.2.1 一個實例 / 220
12.2.2 源代碼組織結構 / 222
12.2.3 event結構體 / 224
12.2.4 往注冊事件隊列中添加事件處理器 / 226
12.2.5 往事件多路分發器中注冊事件 / 230
12.2.6 eventop結構體 / 233
12.2.7 event_base結構體 / 235
12.2.8 事件循環 / 236
第13章 多進程編程 / 239
13.1 fork系統調用 / 239
13.2 exec系列系統調用 / 240
13.3 處理僵屍進程 / 240
13.4 管道 / 241
13.5 信號量 / 243
13.5.1 信號量原語 / 243
13.5.2 semget系統調用 / 244
13.5.3 semop系統調用 / 245
13.5.4 semctl系統調用 / 247
13.5.5 特殊鍵值ipc_private / 249
13.6 共享內存 / 251
13.6.1 shmget系統調用 / 251
13.6.2 shmat和shmdt系統調用 / 252
13.6.3 shmctl系統調用 / 253
13.6.4 共享內存的posix方法 / 254
13.6.5 共享內存實例 / 254
13.7 消息隊列 / 263
13.7.1 msgget系統調用 / 263
13.7.2 msgsnd系統調用 / 264
13.7.3 msgrcv系統調用 / 264
13.7.4 msgctl系統調用 / 265
13.8 ipc命令 / 266
13.9 在進程間傳遞文件描述符 / 267
第14章 多線程編程 / 269
14.1 linux線程概述 / 269
14.1.1 線程模型 / 269
14.1.2 linux線程庫 / 270
14.2 創建線程和結束線程 / 271
14.3 線程屬性 / 273
14.4 posix信號量 / 275
14.5 互斥鎖 / 276
14.5.1 互斥鎖基礎api / 276
14.5.2 互斥鎖屬性 / 277
14.5.3 死鎖舉例 / 278
14.6 條件變量 / 279
14.7 線程同步機制包裝類 / 280
14.8 多線程環境 / 282
14.8.1 可重入函數 / 282
14.8.2 線程和進程 / 283
14.8.3 線程和信號 / 284
第15章 進程池和線程池 / 287
15.1 進程池和線程池概述 / 287
15.2 處理多客戶 / 288
15.3 半同步/半異步進程池實現 / 289
15.4 用進程池實現的簡單cgi服務器 / 298
15.5 半同步/半反應堆線程池實現 / 301
15.6 用線程池實現的簡單web服務器 / 304
15.6.1 http_conn類 / 304
15.6.2 main函數 / 318
第三篇 高性能服務器優化與監測
第16章 服務器調制、調試和測試 / 324
16.1 最大文件描述符數 / 324
16.2 調整內核參數 / 325
16.2.1 /proc/sys/fs目錄下的部分文件 / 325
16.2.2 /proc/sys/net目錄下的部分文件 / 325
16.3 gdb調試 / 326
16.3.1 用gdb調試多進程程序 / 326
16.3.2 用gdb調試多線程程序 / 328
16.4 壓力測試 / 329
第17章 系統監測工具 / 333
17.1 tcpdump / 333
17.2 lsof / 334
17.3 nc / 336
17.4 strace / 338
17.5 netstat / 341
17.6 vmstat / 342
17.7 ifstat / 344
17.8 mpstat / 344
參考文獻 / 346
圖書信息來源: 互動出版網

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM