注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)計算機科學(xué)理論與基礎(chǔ)知識程序員進階之路:緩存、網(wǎng)絡(luò)、內(nèi)存與案例

程序員進階之路:緩存、網(wǎng)絡(luò)、內(nèi)存與案例

程序員進階之路:緩存、網(wǎng)絡(luò)、內(nèi)存與案例

定 價:¥138.00

作 者: 鄧中華
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787121476433 出版時間: 2024-05-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  本書主要講解計算機系統(tǒng)中核心的技術(shù)知識,涵蓋緩存、內(nèi)存屏障、無鎖編程、網(wǎng)絡(luò)基礎(chǔ)、TCP/UDP、端口復(fù)用、網(wǎng)絡(luò)收發(fā)包流程、物理內(nèi)存、虛擬內(nèi)存等內(nèi)容。本書還分享了實際工作中可能出現(xiàn)的技術(shù)難題及解決方案供讀者借鑒。為了使讀者輕松、快速地理解書中晦澀難懂的技術(shù)知識,本書作者精心繪制了大量的流程圖、結(jié)構(gòu)圖。為了使讀者更好地理解Linux內(nèi)核源碼,本書還提供了大量經(jīng)過注釋的Linux內(nèi)核源碼供讀者下載。通過閱讀本書,讀者可以輕松、快速地掌握這些技術(shù)知識,并通過源碼和書中配圖加強對相關(guān)知識的理解。

作者簡介

  鄧中華,高級軟件工程師。曾就職于搜狐暢游,負責大型游戲服務(wù)端開發(fā),擁有5年互聯(lián)網(wǎng)服務(wù)端開發(fā)經(jīng)驗和6年游戲服務(wù)端開發(fā)經(jīng)驗。曾多次擔任“救火隊長”主導(dǎo)分析并解決大型線上事故,累計為公司減少經(jīng)濟損失達千萬級別。擅長服務(wù)端架構(gòu)設(shè)計,性能、網(wǎng)絡(luò)和內(nèi)存的優(yōu)化。網(wǎng)文“十年碼農(nóng)內(nèi)功”的作者,該網(wǎng)文的下載量已近萬份。微信公眾號和知乎賬號“科英”的作者,通過不同平臺分享經(jīng)驗和見解。

圖書目錄




第1章 緩存 1
1.1 存儲體系結(jié)構(gòu) 1
1.2 緩存一致性協(xié)議 4
1.2.1 MESI協(xié)議 4
1.2.2 MOESI協(xié)議 8
1.2.3 MESIF協(xié)議 9
1.3 寫緩存區(qū)和無效隊列 9
1.3.1 寫緩沖區(qū)的作用 11
1.3.2 無效隊列的作用 11
1.4 內(nèi)存屏障 11
1.4.1 讀寫屏障 12
1.4.2 單向屏障 12
1.5 x86-TSO 13
1.6 CPU黑盒測試 15
1.6.1 測試核心內(nèi)是否存在Store Buffer 15
1.6.2 測試轉(zhuǎn)發(fā)(Store Forwarding)是否生效 17
1.6.3 測試StoreStore是否亂序執(zhí)行 18
1.6.4 測試LoadLoad是否亂序執(zhí)行 19
1.6.5 測試LoadStore是否亂序執(zhí)行 19
1.6.6 測試StoreLoad是否亂序執(zhí)行 20
1.7 CAS原理 20
1.8 原子操作 22
1.8.1 互斥鎖 23
1.8.2 自旋鎖 23
1.8.3 C 原子變量 25
1.8.4 C 內(nèi)存順序 26
1.9 無鎖隊列 31
1.9.1 設(shè)計思路 31
1.9.2 實現(xiàn)細節(jié) 32
第2章 網(wǎng)絡(luò) 36
2.1 網(wǎng)絡(luò)分層 36
2.2 網(wǎng)絡(luò)接口層(以太網(wǎng)) 37
2.3 網(wǎng)絡(luò)層(IP、ICMP) 39
2.3.1 IP 39
2.3.2 ICMP 43
2.4 套接字編程 47
2.4.1 套接字 47
2.4.2 函數(shù) 47
2.4.3 多路復(fù)用 49
2.5 虛擬網(wǎng)卡 54
2.5.1 Tun設(shè)備 54
2.5.2 創(chuàng)建代碼 55
2.6 網(wǎng)絡(luò)抓包 56
2.6.1 tcpdump 56
2.6.2 Wireshark 59
2.7 網(wǎng)絡(luò)工具 61
2.7.1 ethtool工具 61
2.7.2 ifconfig工具 65
2.7.3 ip工具 66
2.7.4 nc工具 66
2.8 網(wǎng)卡的特性(Feature) 67
2.8.1 LRO 67
2.8.2 GRO 67
2.8.3 TSO 68
2.8.4 GSO 68
2.9 網(wǎng)絡(luò)棧的擴展(Scaling) 69
2.9.1 RSS 69
2.9.2 RPS 71
2.9.3 RFS 72
2.9.4 XPS 73
2.10 硬中斷的負載均衡 74
2.10.1 硬中斷的CPU親和性 74
2.10.2 irqbalance功能 75
第3章 TCP 76
3.1 協(xié)議體 76
3.2 有限狀態(tài)機 81
3.2.1 netstat 82
3.2.2 ss 82
3.3 準備階段 83
3.4 握手階段 84
3.4.1 三次握手 84
3.4.2 初始化序列號 88
3.5 連接階段 89
3.5.1 重傳機制 90
3.5.2 確認機制 93
3.5.3 亂序恢復(fù)機制 94
3.5.4 ?;顧C制 95
3.6 流量控制 97
3.6.1 滑動窗口 97
3.6.2 流量控制過程 99
3.6.3 零窗口 100
3.7 擁塞控制 101
3.7.1 擁塞控制算法 101
3.7.2 CUBIC 102
3.8 揮手階段 109
3.8.1 四次揮手 109
3.8.2 三次揮手 112
3.8.3 同時揮手 113
3.8.4 關(guān)閉函數(shù) 114
第4章 UDP 117
4.1 協(xié)議體 117
4.2 特點 119
4.2.1 無連接性 119
4.2.2 不可靠性 122
4.2.3 面向報文 122
4.2.4 最大交付 124
4.2.5 最小開銷 125
4.3 應(yīng)用場景 125
4.4 可靠性保障 126
4.4.1 ACK 126
4.4.2 FEC 126
第5章 端口 128
5.1 問題 128
5.2 地址和端口復(fù)用的總結(jié) 128
5.2.1 兩個選項均關(guān)閉 129
5.2.2 僅開啟一個選項 129
5.2.3 僅開啟地址復(fù)用選項 130
5.2.4 開啟端口復(fù)用選項 131
5.3 地址復(fù)用的應(yīng)用場景 132
5.4 端口復(fù)用的應(yīng)用場景 133
5.4.1 單工作線程 133
5.4.2 多工作線程 137
5.5 TCP和UDP綁定同一端口 138
第6章 收包 139
6.1 網(wǎng)卡的準備過程 139
6.1.1 網(wǎng)卡驅(qū)動的加載 140
6.1.2 網(wǎng)卡驅(qū)動的初始化 141
6.1.3 啟用網(wǎng)卡 143
6.2 收包過程總覽 145
6.3 網(wǎng)絡(luò)接口層 148
6.3.1 網(wǎng)卡收到數(shù)據(jù)包 149
6.3.2 內(nèi)核收到硬中斷 149
6.3.3 內(nèi)核收到軟中斷 150
6.3.4 清理接收隊列 152
6.3.5 GRO 158
6.3.6 RPS 159
6.3.7 數(shù)據(jù)包進入?yún)f(xié)議棧之前 161
6.4 網(wǎng)絡(luò)層(IP) 168
6.4.1 網(wǎng)絡(luò)協(xié)議棧入口 169
6.4.2 數(shù)據(jù)包的流向 171
6.4.3 數(shù)據(jù)包的轉(zhuǎn)發(fā) 172
6.4.4 數(shù)據(jù)包進入傳輸層之前 173
6.5 傳輸層(UDP) 174
6.5.1 UDP協(xié)議入口 175
6.5.2 數(shù)據(jù)包的特殊處理 176
6.5.3 將數(shù)據(jù)包放入接收隊列 178
6.5.4 喚醒等待數(shù)據(jù)的進程/線程 179
6.6 套接字層 183
6.6.1 創(chuàng)建套接字 183
6.6.2 綁定套接字 188
6.6.3 讀取套接字 189
第7章 發(fā)包 195
7.1 發(fā)包流程總覽 195
7.2 套接字層 198
7.2.1 send/sendto函數(shù)(用戶態(tài)) 198
7.2.2 send/sendto系統(tǒng)調(diào)用(內(nèi)核態(tài)) 199
7.2.3 選擇發(fā)送函數(shù) 200
7.2.4 將消息對象遞交到傳輸層 201
7.3 傳輸層(UDP) 202
7.3.1 處理消息對象 203
7.3.2 處理數(shù)據(jù)包(struct sk_buff) 211
7.4 網(wǎng)絡(luò)層(IP) 212
7.4.1 IP層入口函數(shù) 213
7.4.2 IPv4的發(fā)送函數(shù) 214
7.4.3 執(zhí)行BPF程序 214
7.4.4 數(shù)據(jù)包的分片 215
7.4.5 將數(shù)據(jù)包發(fā)給鄰居子系統(tǒng) 216
7.5 鄰居子系統(tǒng) 217
7.5.1 確定發(fā)送路徑 219
7.5.2 快速發(fā)送路徑 220
7.5.3 慢速發(fā)送路徑 222
7.6 網(wǎng)絡(luò)接口層 225
7.6.1 網(wǎng)絡(luò)接口層入口 226
7.6.2 內(nèi)核選擇發(fā)送隊列 229
7.6.3 運行排隊規(guī)則 233
7.6.4 將數(shù)據(jù)包遞交到網(wǎng)卡驅(qū)動 235
7.6.5 網(wǎng)卡驅(qū)動發(fā)包 236
7.6.6 軟中斷處理過程 240
7.6.7 網(wǎng)卡發(fā)送完成 241
第8章 內(nèi)存 244
8.1 物理內(nèi)存 244
8.1.1 物理內(nèi)存模型 244
8.1.2 物理內(nèi)存架構(gòu) 250
8.1.3 物理內(nèi)存節(jié)點 253
8.1.4 物理內(nèi)存區(qū)域 256
8.1.5 物理內(nèi)存頁 261
8.1.6 物理內(nèi)存布局 266
8.1.7 物理內(nèi)存硬件 269
8.2 虛擬內(nèi)存 270
8.2.1 虛擬內(nèi)存布局 270
8.2.2 虛擬內(nèi)存空間 279
8.2.3 虛擬內(nèi)存區(qū)域 288
8.2.4 虛擬內(nèi)存申請 290
8.3 內(nèi)存映射 301
8.3.1 正向映射 301
8.3.2 反向映射 307
第9章 案例 310
9.1 偽內(nèi)存泄漏排查 310
9.1.1 背景 310
9.1.2 分析 310
9.1.3 定位 311
9.2 周期性事故處理 312
9.2.1 背景 312
9.2.2 猜想(大膽假設(shè)) 312
9.2.3 定位(小心求證) 313
9.2.4 總結(jié) 316

本目錄推薦

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