-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
程序員進階之路:緩存、網絡、內存與案例 版權信息
- ISBN:9787121476433
- 條形碼:9787121476433 ; 978-7-121-47643-3
- 裝幀:平塑勒
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
程序員進階之路:緩存、網絡、內存與案例 本書特色
【與時俱進】本書基于Linux 6.0及以上版本講解書中涉及的各個模塊,有助于讀者理解現代Linux內核,掌握實用的技術知識。 【深入底層】 本書詳細介紹計算機系統中的核心知識,幫助想摘掉“CRUD(增刪改查)Boy”標簽的程序員掌握技術的底層原理。 【圖文并茂】 本書共有150多張示例圖,有助于讀者理解“硬核”技術的細節。 【學以致用】 本書提供大量實戰案例和測試代碼,不僅有助于讀者理解理論,還有助于讀者對理論進行實踐和驗證,達到學以致用和有的放矢的目的。
程序員進階之路:緩存、網絡、內存與案例 內容簡介
本書主要講解計算機系統中核心的技術知識,涵蓋緩存、內存屏障、無鎖編程、網絡基礎、TCP/UDP、端口復用、網絡收發包流程、物理內存、虛擬內存等內容。本書還分享了實際工作中可能出現的技術難題及解決方案供讀者借鑒。為了使讀者輕松、快速地理解書中晦澀難懂的技術知識,本書作者精心繪制了大量的流程圖、結構圖。為了使讀者更好地理解Linux內核源碼,本書還提供了大量經過注釋的Linux內核源碼供讀者下載。通過閱讀本書,讀者可以輕松、快速地掌握這些技術知識,并通過源碼和書中配圖加強對相關知識的理解。
程序員進階之路:緩存、網絡、內存與案例 目錄
錄
第1章 緩存 1
1.1 存儲體系結構 1
1.2 緩存一致性協議 4
1.2.1 MESI協議 4
1.2.2 MOESI協議 8
1.2.3 MESIF協議 9
1.3 寫緩存區和無效隊列 9
1.3.1 寫緩沖區的作用 11
1.3.2 無效隊列的作用 11
1.4 內存屏障 11
1.4.1 讀寫屏障 12
1.4.2 單向屏障 12
1.5 x86-TSO 13
1.6 CPU黑盒測試 15
1.6.1 測試核心內是否存在Store Buffer 15
1.6.2 測試轉發(Store Forwarding)是否生效 17
1.6.3 測試StoreStore是否亂序執行 18
1.6.4 測試LoadLoad是否亂序執行 19
1.6.5 測試LoadStore是否亂序執行 19
1.6.6 測試StoreLoad是否亂序執行 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 內存順序 26
1.9 無鎖隊列 31
1.9.1 設計思路 31
1.9.2 實現細節 32
第2章 網絡 36
2.1 網絡分層 36
2.2 網絡接口層(以太網) 37
2.3 網絡層(IP、ICMP) 39
2.3.1 IP 39
2.3.2 ICMP 43
2.4 套接字編程 47
2.4.1 套接字 47
2.4.2 函數 47
2.4.3 多路復用 49
2.5 虛擬網卡 54
2.5.1 Tun設備 54
2.5.2 創建代碼 55
2.6 網絡抓包 56
2.6.1 tcpdump 56
2.6.2 Wireshark 59
2.7 網絡工具 61
2.7.1 ethtool工具 61
2.7.2 ifconfig工具 65
2.7.3 ip工具 66
2.7.4 nc工具 66
2.8 網卡的特性(Feature) 67
2.8.1 LRO 67
2.8.2 GRO 67
2.8.3 TSO 68
2.8.4 GSO 68
2.9 網絡棧的擴展(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 協議體 76
3.2 有限狀態機 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 亂序恢復機制 94
3.5.4 保活機制 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 關閉函數 114
第4章 UDP 117
4.1 協議體 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 應用場景 125
4.4 可靠性保障 126
4.4.1 ACK 126
4.4.2 FEC 126
第5章 端口 128
5.1 問題 128
5.2 地址和端口復用的總結 128
5.2.1 兩個選項均關閉 129
5.2.2 僅開啟一個選項 129
5.2.3 僅開啟地址復用選項 130
5.2.4 開啟端口復用選項 131
5.3 地址復用的應用場景 132
5.4 端口復用的應用場景 133
5.4.1 單工作線程 133
5.4.2 多工作線程 137
5.5 TCP和UDP綁定同一端口 138
第6章 收包 139
6.1 網卡的準備過程 139
6.1.1 網卡驅動的加載 140
6.1.2 網卡驅動的初始化 141
6.1.3 啟用網卡 143
6.2 收包過程總覽 145
6.3 網絡接口層 148
6.3.1 網卡收到數據包 149
6.3.2 內核收到硬中斷 149
6.3.3 內核收到軟中斷 150
6.3.4 清理接收隊列 152
6.3.5 GRO 158
6.3.6 RPS 159
6.3.7 數據包進入協議棧之前 161
6.4 網絡層(IP) 168
6.4.1 網絡協議棧入口 169
6.4.2 數據包的流向 171
6.4.3 數據包的轉發 172
6.4.4 數據包進入傳輸層之前 173
6.5 傳輸層(UDP) 174
6.5.1 UDP協議入口 175
6.5.2 數據包的特殊處理 176
6.5.3 將數據包放入接收隊列 178
6.5.4 喚醒等待數據的進程/線程 179
6.6 套接字層 183
6.6.1 創建套接字 183
6.6.2 綁定套接字 188
6.6.3 讀取套接字 189
第7章 發包 195
7.1 發包流程總覽 195
7.2 套接字層 198
7.2.1 send/sendto函數(用戶態) 198
7.2.2 send/sendto系統調用(內核態) 199
7.2.3 選擇發送函數 200
7.2.4 將消息對象遞交到傳輸層 201
7.3 傳輸層(UDP) 202
7.3.1 處理消息對象 203
7.3.2 處理數據包(struct sk_buff) 211
7.4 網絡層(IP) 212
7.4.1 IP層入口函數 213
7.4.2 IPv4的發送函數 214
7.4.3 執行BPF程序 214
7.4.4 數據包的分片 215
7.4.5 將數據包發給鄰居子系統 216
7.5 鄰居子系統 217
7.5.1 確定發送路徑 219
7.5.2 快速發送路徑 220
7.5.3 慢速發送路徑 222
7.6 網絡接口層 225
7.6.1 網絡接口層入口 226
7.6.2 內核選擇發送隊列 229
7.6.3 運行排隊規則 233
7.6.4 將數據包遞交到網卡驅動 235
7.6.5 網卡驅動發包 236
7.6.6 軟中斷處理過程 240
7.6.7 網卡發送完成 241
第8章 內存 244
8.1 物理內存 244
8.1.1 物理內存模型 244
8.1.2 物理內存架構 250
8.1.3 物理內存節點 253
8.1.4 物理內存區域 256
8.1.5 物理內存頁 261
8.1.6 物理內存布局 266
8.1.7 物理內存硬件 269
8.2 虛擬內存 270
8.2.1 虛擬內存布局 270
8.2.2 虛擬內存空間 279
8.2.3 虛擬內存區域 288
8.2.4 虛擬內存申請 290
8.3 內存映射 301
8.3.1 正向映射 301
8.3.2 反向映射 307
第9章 案例 310
9.1 偽內存泄漏排查 310
9.1.1 背景 310
9.1.2 分析 310
9.1.3 定位 311
9.2 周期性事故處理 312
9.2.1 背景 312
9.2.2 猜想(大膽假設) 312
9.2.3 定位(小心求證) 313
9.2.4 總結 316
程序員進階之路:緩存、網絡、內存與案例 作者簡介
鄧中華,高級軟件工程師。曾就職于搜狐暢游,負責大型游戲服務端開發,擁有5年互聯網服務端開發經驗和6年游戲服務端開發經驗。曾多次擔任“救火隊長”主導分析并解決大型線上事故,累計為公司減少經濟損失達千萬級別。擅長服務端架構設計,性能、網絡和內存的優化。網文“十年碼農內功”的作者,該網文的下載量已近萬份。微信公眾號和知乎賬號“科英”的作者,通過不同平臺分享經驗和見解。
- >
上帝之肋:男人的真實旅程
- >
朝聞道
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
莉莉和章魚
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
煙與鏡
- >
經典常談
- >
李白與唐代文化