TCP 是怎樣工作的

[日]安永遼真 中山悠 丸田一輝

  • 出版商: 人民郵電
  • 出版日期: 2023-03-01
  • 售價: $419
  • 貴賓價: 9.5$398
  • 語言: 簡體中文
  • 頁數: 265
  • ISBN: 7115610746
  • ISBN-13: 9787115610744
  • 相關分類: 5GTCP/IP物聯網 IoT
  • 立即出貨

  • TCP 是怎樣工作的-preview-1
  • TCP 是怎樣工作的-preview-2
TCP 是怎樣工作的-preview-1

買這商品的人也買了...

商品描述

本書以圖配文,通俗易懂地講解了長期不會過時的TCP技術。其中,第1章至第3章講解了TCP的基礎知識,詳細梳理了TCP的發展歷程,並以豐富的圖例展示了TCP數據傳輸的基本思路和過程;第4章至第6章著重介紹了TCP中極為重要的擁塞控制技術,通過圖表、公式和模擬實驗講解了TCP擁塞控制的運行機制和熱門算法(CUBIC、BBR等);第7章講解了TCP前沿的研究動向和今後的發展方向,涉及5G、物聯網、數據中心、自動駕駛等內容。

本書理論與實踐相結合,在詳細講解TCP原理後,還引領讀者搭建模擬環境,使用Wireshark和ns-3等工具模擬TCP的運行機制,觀察擁塞控制算法的執行,並輔以偽代碼,幫助讀者深入理解TCP技術。

作者簡介

安永辽真(作者)

2011年毕业于东京大学工学部,2013年硕士毕业于东京大学研究生院工学系,同年入职日本电信电话株式会社,2016年被派往诺基亚贝尔实验室进修。主要从事计算机网络模型的研究。

 

中山悠(作者)

2008年毕业于东京大学,入职日本电信电话株式会社,2018年博士毕业于东京大学电子信息专业,目前在东京农工大学担任副教授,研究移动计算、低延迟网络和物联网等。

 

丸田一辉(作者)

2008年毕业于九州大学,入职日本电信电话株式会社,2016年博士毕业于九州大学信息智能工学专业,2017年3月成为千叶大学助教,研究无线网络中的抗干扰技术。曾获得日本电子信息通信学会(IEICE)论文奖、日本无线电通信系统(RCS)研究会最优秀贡献奖等。

 

尹修远(译者)

毕业于华中科技大学,现从事客户端开发工作。曾任职腾讯游戏平台,从事网络加速相关技术研发,对TCP/IP等网络技术有自己独到的见解。

目錄大綱

第 1章

TCP入門

確保傳輸可靠性 1

1.1 通信與協議

OSI參考模型、TCP/IP和RFC 2

OSI參考模型 2

TCP/IP 10

分層模型下的數據格式 12

協議分層結構下的通信過程 12

 

1.2 傳輸層與傳輸可靠性

將數據無亂序、無丟失地發送給接收方 15

傳輸可靠性 15

網絡擁塞 15

通信對網絡的要求 16

傳輸層的職責 17

 

1.3 UDP的基本情況

無連接的簡單特性 18

UDP的基礎知識 18

單播、多播、廣播 19

適合UDP的應用程序 20

 

1.4 TCP的基本情況

可靠性的確保與實時性 21

TCP的基礎知識 21

TCP與UDP的功能與特點 22

適合TCP 的應用程序 23

 

1.5 TCP 的基本功能

重傳、順序控制和擁塞控制 23

連接管理 24

序列號 24

重傳控制 25

順序控制 26

埠號 27

流量控制 28

擁塞控制與擁塞控制算法 29

無線通信與TCP 30

 

1.6 面向特定用途的協議

RUDP、W-TCP、SCTP 和DCCP 32

RUDP 32

W-TCP 33

SCTP 36

DCCP 37

 

1.7 小結 37

 

第 2章

TCP/IP的變遷

隨著互聯網的普及而不斷進化的協議 39

2.1 TCP 黎明期

1968 年—1980 年 40

阿帕網項目啟動(1968 年) 41

UNIX 問世(1969 年) 44

搭建ALOHAnet(1970年) 45

TCP 問世(1974 年) 46

以太網標準公開(1980年) 47

 

2.2 TCP發展期

1980年—1995年 48

擁塞崩潰問題浮出水面(1980 年) 49

引入Nagle 算法(1984 年) 49

引入擁塞控制算法(1988 年) 51

往互聯網的遷移與萬維網的誕生(1990 年) 52

 

2.3 TCP 普及期

1995年—2006 年 53

Windows 95發售(1995年) 54

IPv6投入使用(1999年) 54

無線LAN出現(1999年) 55

各式各樣的互聯網應用服務(2004年—2006年) 56

 

2.4 TCP擴展期

21世紀00年代後半期—  57

智能手機普及(2007年) 57

雲計算出現(2006年) 58

移動網絡的高速化(2010 年、2015年) 59

物聯網的大眾化(2015年) 61

2.5 小結 62

 

第3章

TCP與數據傳輸

實現可靠性與效率的兼顧 65

3.1 TCP 的數據格式

數據包與首部的格式 66

數據包格式 66

TCP 報文段 66

TCP 首部格式 68

UDP 首部格式 72

 

3.2 連接管理

3次握手 73

建立連接 73

斷開連接 74

埠與連接 75

 

3.3 流量控制與窗口控制

不宜多也不宜少,適當的發送量與接收方緩沖區 76

流量控制 76

緩存與時延 77

窗口控制 78

復習:流量控制、窗口控制和擁塞控制 79

 

3.4 擁塞控制

預測傳輸量,預測自律運行且內部宛如黑盒的網絡的內部情況 80

TCP擁塞控制的基本概念 80

慢啟動 81

擁塞避免 82

快速恢復 84

 

3.5 重傳控制

高可靠性傳輸的關鍵——準確且高效 86

高可靠性傳輸所需的重傳控制 86

基於重傳計時器的超時控制 87

使用重復ACK 91

擁塞避免算法與重傳控制綜合影響下的流程及擁塞窗口大小的變化情況 92

 

3.6 TCP 初期的代表性擁塞控制算法

Tahoe、Reno、NewReno 和Vegas 93

擁塞控制算法的變化 93

Tahoe 94

Reno 96

NewReno 97

Vegas 99

3.7 小結 101

 

第4章

程序員必學的擁塞控制算法

逐漸增長的通信數據量與網絡的變化 103

4.1 擁塞控制的基本理論

目的與設計,計算公式的基礎知識 104

擁塞控制的目的 104

擁塞控制的基本設計 105

擁塞控制中的有限狀態機 107

擁塞控制算法示例 109

 

4.2 擁塞控制算法

通過理論× 模擬加深理解 111

本書介紹的擁塞控制算法 111

NewReno 112

Vegas 115

Westwood 117

HighSpeed 119

Scalable 121

Veno 123

BIC 125

H-TCP 127

Hybla 129

Illinois 130

YeAH 133

 

4.3 協議分析器Wireshark 實踐入門

擁塞控制算法的觀察A 135

什麽是Wireshark 135

Wireshark 的環境搭建 135

使用Wireshark 進行TCP 首部分析 138

通過Wireshark 觀察擁塞控制算法 141

 

4.4 加深理解:網絡模擬器ns-3 入門

擁塞控制算法的觀察B 149

ns-3 的基本情況 149

搭建ns-3 環境 150

基於ns-3 的網絡模擬的基礎知識 151

腳本文件chapter4-base.cc 153

使用Python 運行模擬器並進行分析和可視化 155

4.5 小結 163

 

第5章

CUBIC算法

通過三次函數簡單地解決問題 167

 

5.1 網絡高速化與TCP擁塞控制

長肥管道帶來的變化 .168

Reno和NewReno 168

快速恢復 168

網絡的高速化與長肥管道 169

端到端之間的三大時延 170

長肥管道下NewReno的新問題 171

 

5.2 基於丟包的擁塞控制

以丟包情況為指標的一種歷史悠久的方法 173

基於丟包的擁塞控制算法的基本情況 174

AIMD 控制 174

[實測]NewReno的擁塞窗口大小的變化情況 176

HighSpeed與Scalable 179

親和性 183

RTT公平性 184

 

5.3 BIC

以寬帶、高時延環境為前提的算法 186

BIC是什麽 186

增大擁塞窗口大小的兩個階段 187

BIC的擁塞窗口大小的變化情況 188

BIC的問題 190

 

5.4 CUBIC的機制

使用三次函數大幅簡化擁塞窗口大小控制算法 190

CUBIC的基本情況 190

窗口控制算法的關鍵點 191

CUBIC 的擁塞窗口大小的變化情況 192

模擬結果中展現出來的高親和性 194

模擬結果中展現出來的RTT 公平性 194

窄帶低時延環境下的適應性 195

CUBIC的問題 197

 

5.5 使用偽代碼學習CUBIC算法

主要的行為與處理過程 198

初始化 198

收到ACK時的行為 199

丟包時的行為 199

超時時的行為 200

主要的函數與處理 200

5.6 小結 202

 

第6章

BBR算法

檢測吞吐量與RTT的值,調節數據發送量 205

 

6.1 緩沖區增大與緩沖區時延增大

存儲成本下降的影響 206

網絡設備的緩沖區增大 206

緩沖區膨脹 207

基於丟包的擁塞控制與緩沖區膨脹的關系 208

緩沖區增大給CUBIC 帶來的影響 210

 

6.2 基於延遲的擁塞控制

以RTT 為指標的算法的基本情況和Vegas示例 212

3 種擁塞控制算法和如何結合環境選擇算法 212

基於延遲的擁塞控制的基本設計思路 213

Vegas的擁塞窗口大小的變化情況 214

過去的基於延遲控制的問題 215

 

6.3 BBR的機制

把控數據發送量與RTT之間的關系,實現最大吞吐量 217

BBR的基本思路 217

BBR的擁塞窗口大小控制機制 218

RTprop的估算 219

BtlBw的估算 220

 

6.4 使用偽代碼學習BBR算法

收到ACK時和發送數據時 221

收到ACK時 222

發送數據時 222

 

6.5 BBR的流程

模擬實驗中的各種流程 223

只有BBR網絡流時的表現 223

當多個BBR網絡流同時存在時 225

與CUBIC的共存 227

長肥管道下的表現 229

6.6 小結 231

 

第7章

TCP前沿的研究動向

應用程序和通信環境一旦變化,TCP也會變化 233

 

7.1 TCP 周邊環境的變化

3個視角:通信方式、通信設備和連接目標 234

TCP迄今為止的發展情況 234

觀察通信環境變化的3 個視角 235

通信方式的變化 236

通信設備的多樣化 238

連接目標的變化 239

小結 241

 

7.2 5G(第5代移動通信)

移動通信的大容量化、多設備支持、高可靠性與低時延 241

[背景] 5G的應用場景與走向實用的規劃 242

[問題] 如何應對嚴苛的需求條件 244

[TCP相關動向A] 毫米波段的處理 245

[TCP相關動向B] 多路徑TCP 246

[TCP相關動向C] 高清流媒體 248

 

7.3 物聯網

通過互聯網控制各種各樣的設備 249

[背景] 多樣的設備和通信方式 249

[問題] 處理能力和通信環境上的制約 252

[TCP相關動向] 適配物聯網 253

 

7.4 數據中心

大規模化與各種需求條件並存 254

[背景] 雲服務的普及和數據中心的大規模化 254

[問題] 針對緩沖區的互斥的需求條件 256

[TCP相關動向] 面向數據中心的擁塞控制 257

 

7.5 自動駕駛

追求高可靠性與低時延、大容量的通信性能 259

[背景] 以普及自動駕駛為目的的技術 259

[問題] 高速移動時的高可靠性通信 262

[與TCP的關系] 關於確保可靠性 263

7.6 小結 264