注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)深入理解Linux網(wǎng)絡(luò):修煉底層內(nèi)功,掌握高性能原理

深入理解Linux網(wǎng)絡(luò):修煉底層內(nèi)功,掌握高性能原理

深入理解Linux網(wǎng)絡(luò):修煉底層內(nèi)功,掌握高性能原理

定 價(jià):¥118.00

作 者: 張彥飛 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121434105 出版時(shí)間: 2022-06-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 336 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)通過(guò)先拋出一些開(kāi)發(fā)、運(yùn)維等技術(shù)人員在工作中經(jīng)常遇見(jiàn)的問(wèn)題,激發(fā)讀者的思考。從這些問(wèn)題出發(fā),深入地對(duì)網(wǎng)絡(luò)底層實(shí)現(xiàn)原理進(jìn)行拆解,帶領(lǐng)讀者看清楚問(wèn)題的核心,理解其背后的技術(shù)本質(zhì),提高大家的技術(shù)功力。例如網(wǎng)絡(luò)包是如何被接收和發(fā)送的?阻塞到底在內(nèi)部是如何發(fā)生的?epoll的底層工作原理又是啥?TCP連接在底層上是如何支持和實(shí)現(xiàn)的?書(shū)中對(duì)這些內(nèi)容都有深度的闡述。本書(shū)旨在通過(guò)帶領(lǐng)讀者修煉底層內(nèi)功,進(jìn)而幫助大家深度掌握網(wǎng)絡(luò)高性能原理。

作者簡(jiǎn)介

  張彥飛,2010年碩士畢業(yè)于西北大學(xué)計(jì)算機(jī)學(xué)院,有十多年的大型互聯(lián)網(wǎng)公司項(xiàng)目經(jīng)驗(yàn),目前就職于騰訊。他喜歡對(duì)技術(shù)進(jìn)行深度思考,善于挖掘技術(shù)點(diǎn)背后的原理。他的技術(shù)公眾號(hào)“開(kāi)發(fā)內(nèi)功修煉”一年便收到五萬(wàn)多讀者的關(guān)注。

圖書(shū)目錄

第1章緒論/1

1.1我在工作中的困惑/2

1.1.1過(guò)多的TIME_WAIT/2

1.1.2長(zhǎng)連接開(kāi)銷(xiāo)/2

1.1.3CPU被消耗光了/3

1.1.4為什么不同的語(yǔ)言網(wǎng)絡(luò)性能差別巨大/4

1.1.5訪問(wèn)127.0.0.1過(guò)網(wǎng)卡嗎/4

1.1.6軟中斷和硬中斷/5

1.1.7零拷貝到底是怎么回事/5

1.1.8DPDK/5

1.2本書(shū)內(nèi)容結(jié)構(gòu)/6

1.3一些約定/7

1.4一些術(shù)語(yǔ)/8



第2章內(nèi)核是如何接收網(wǎng)絡(luò)包的/9

2.1相關(guān)實(shí)際問(wèn)題/10

2.2數(shù)據(jù)是如何從網(wǎng)卡到協(xié)議棧的/11

2.2.1Linux網(wǎng)絡(luò)收包總覽/12

2.2.2Linux啟動(dòng)/13

2.2.3迎接數(shù)據(jù)的到來(lái)/23

2.2.4收包小結(jié)/33

2.3本章總結(jié)/34



第3章內(nèi)核是如何與用戶進(jìn)程協(xié)作的/41

3.1相關(guān)實(shí)際問(wèn)題/42

3.2socket的直接創(chuàng)建/43

3.3內(nèi)核和用戶進(jìn)程協(xié)作之阻塞方式/46

3.3.1等待接收消息/47

3.3.2軟中斷模塊/52

3.3.3同步阻塞總結(jié)/57

3.4內(nèi)核和用戶進(jìn)程協(xié)作之epoll/59

3.4.1epoll內(nèi)核對(duì)象的創(chuàng)建/60

3.4.2為epoll添加socket/62

3.4.3epoll_wait之等待接收/68

3.4.4數(shù)據(jù)來(lái)了/71

3.4.5小結(jié)/79

3.5本章總結(jié)/80



第4章內(nèi)核是如何發(fā)送網(wǎng)絡(luò)包的/84

4.1相關(guān)實(shí)際問(wèn)題/85

4.2網(wǎng)絡(luò)包發(fā)送過(guò)程總覽/86

4.3網(wǎng)卡啟動(dòng)準(zhǔn)備/90

4.4數(shù)據(jù)從用戶進(jìn)程到網(wǎng)卡的詳細(xì)過(guò)程/92

4.4.1send系統(tǒng)調(diào)用實(shí)現(xiàn)/92

4.4.2傳輸層處理/94

4.4.3網(wǎng)絡(luò)層發(fā)送處理/99

4.4.4鄰居子系統(tǒng)/103

4.4.5網(wǎng)絡(luò)設(shè)備子系統(tǒng)/105

4.4.6軟中斷調(diào)度/109

4.4.7igb網(wǎng)卡驅(qū)動(dòng)發(fā)送/111

4.5RingBuffer內(nèi)存回收/114

4.6本章總結(jié)/115



第5章深度理解本機(jī)網(wǎng)絡(luò)IO/119

5.1相關(guān)實(shí)際問(wèn)題/120

5.2跨機(jī)網(wǎng)絡(luò)通信過(guò)程/120

5.2.1跨機(jī)數(shù)據(jù)發(fā)送/120

5.2.2跨機(jī)數(shù)據(jù)接收/125

5.2.3跨機(jī)網(wǎng)絡(luò)通信匯總/127

5.3本機(jī)發(fā)送過(guò)程/127

5.3.1網(wǎng)絡(luò)層路由/127

5.3.2本機(jī)IP路由/130

5.3.3網(wǎng)絡(luò)設(shè)備子系統(tǒng)/131

5.3.4“驅(qū)動(dòng)”程序/133

5.4本機(jī)接收過(guò)程/135

5.5本章總結(jié)/137



第6章深度理解TCP連接建立過(guò)程/139

6.1相關(guān)實(shí)際問(wèn)題/140

6.2深入理解listen/141

6.2.1listen系統(tǒng)調(diào)用/141

6.2.2協(xié)議棧listen/142

6.2.3接收隊(duì)列定義/143

6.2.4接收隊(duì)列申請(qǐng)和初始化/145

6.2.5半連接隊(duì)列長(zhǎng)度計(jì)算/146

6.2.6listen過(guò)程小結(jié)/148

6.3深入理解connect/148

6.3.1connect調(diào)用鏈展開(kāi)/149

6.3.2選擇可用端口/151

6.3.3端口被使用過(guò)怎么辦/153

6.3.4發(fā)起syn請(qǐng)求/155

6.3.5connect小結(jié)/156

6.4完整TCP連接建立過(guò)程/157

6.4.1客戶端connect/159

6.4.2服務(wù)端響應(yīng)SYN/160

6.4.3客戶端響應(yīng)SYNACK/162

6.4.4服務(wù)端響應(yīng)ACK/164

6.4.5服務(wù)端accept/167

6.4.6連接建立過(guò)程總結(jié)/167

6.5異常TCP連接建立情況/169

6.5.1connect系統(tǒng)調(diào)用耗時(shí)失控/169

6.5.2第一次握手丟包/171

6.5.3第三次握手丟包/176

6.5.4握手異??偨Y(jié)/178

6.6如何查看是否有連接隊(duì)列溢出發(fā)生/179

6.6.1全連接隊(duì)列溢出判斷/179

6.6.2半連接隊(duì)列溢出判斷/181

6.6.3小結(jié)/183

6.7本章總結(jié)/183



第7章一條TCP連接消耗多大內(nèi)存/187

7.1相關(guān)實(shí)際問(wèn)題/188

7.2Linux內(nèi)核如何管理內(nèi)存/188

7.2.1node劃分/189

7.2.2zone劃分/191

7.2.3基于伙伴系統(tǒng)管理空閑頁(yè)面/192

7.2.4slab分配器/194

7.2.5小結(jié)/197

7.3TCP連接相關(guān)內(nèi)核對(duì)象/198

7.3.1socket函數(shù)直接創(chuàng)建/198

7.3.2服務(wù)端socket創(chuàng)建/206

7.4實(shí)測(cè)TCP內(nèi)核對(duì)象開(kāi)銷(xiāo)/207

7.4.1實(shí)驗(yàn)準(zhǔn)備/207

7.4.2實(shí)驗(yàn)開(kāi)始/208

7.4.3觀察ESTABLISH狀態(tài)開(kāi)銷(xiāo)/209

7.4.4觀察非ESTABLISH狀態(tài)開(kāi)銷(xiāo)/211

7.4.5收發(fā)緩存區(qū)簡(jiǎn)單測(cè)試/214

7.4.6實(shí)驗(yàn)結(jié)果小結(jié)/215

7.5本章總結(jié)/216



第8章一臺(tái)機(jī)器最多能支持多少條TCP連接/218

8.1相關(guān)實(shí)際問(wèn)題/219

8.2理解Linux最大文件描述符限制/219

8.2.1找到源碼入口/220

8.2.2尋找進(jìn)程級(jí)限制nofile和fs.nr_open/221

8.2.3尋找系統(tǒng)級(jí)限制fs.file-max/223

8.2.4小結(jié)/224

8.3一臺(tái)服務(wù)端機(jī)器最多可以支撐多少條TCP連接/225

8.3.1一次關(guān)于服務(wù)端并發(fā)的聊天/225

8.3.2服務(wù)器百萬(wàn)連接達(dá)成記/228

8.3.3小結(jié)/232

8.4一臺(tái)客戶端機(jī)器最多只能發(fā)起65535條連接嗎/232

8.4.165535的束縛/232

8.4.2多IP增加連接數(shù)/234

8.4.3端口復(fù)用增加連接數(shù)/236

8.4.4小結(jié)/243

8.5單機(jī)百萬(wàn)并發(fā)連接的動(dòng)手實(shí)驗(yàn)/243

8.5.1方案一,多IP客戶端發(fā)起百萬(wàn)連接/244

8.5.2方案二,單IP客戶端機(jī)器發(fā)起百萬(wàn)連接/248

8.5.3最后多談一點(diǎn)/250

8.6本章總結(jié)/251



第9章網(wǎng)絡(luò)性能優(yōu)化建議/253

9.1網(wǎng)絡(luò)請(qǐng)求優(yōu)化/254

9.2接收過(guò)程優(yōu)化/256

9.3發(fā)送過(guò)程優(yōu)化/262

9.4內(nèi)核與進(jìn)程協(xié)作優(yōu)化/268

9.5握手揮手過(guò)程優(yōu)化/269



第10章容器網(wǎng)絡(luò)虛擬化/272

10.1相關(guān)實(shí)際問(wèn)題/273

10.2veth設(shè)備對(duì)/274

10.2.1veth如何使用/274

10.2.2veth底層創(chuàng)建過(guò)程/276

10.2.3veth網(wǎng)絡(luò)通信過(guò)程/278

10.2.4小結(jié)/281

10.3網(wǎng)絡(luò)命名空間/281

10.3.1如何使用網(wǎng)絡(luò)命名空間/282

10.3.2命名空間相關(guān)的定義/284

10.3.3網(wǎng)絡(luò)命名空間的創(chuàng)建/287

10.3.4網(wǎng)絡(luò)收發(fā)如何使用網(wǎng)絡(luò)命名空間/295

10.3.5結(jié)論/296

10.4虛擬交換機(jī)Bridge/297

10.4.1如何使用Bridge/298

10.4.2Bridge是如何創(chuàng)建出來(lái)的/301

10.4.3添加設(shè)備/303

10.4.4數(shù)據(jù)包處理過(guò)程/305

10.4.5小結(jié)/308

10.5外部網(wǎng)絡(luò)通信/310

10.5.1路由和NAT/311

10.5.2實(shí)現(xiàn)外部網(wǎng)絡(luò)通信/313

10.5.3小結(jié)/318

10.6本章總結(jié)/319

本目錄推薦

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