TCP 是怎樣工作的
[日]安永遼真 中山悠 丸田一輝
買這商品的人也買了...
-
$650$507 -
$180計算機是怎樣跑起來的 (How Computer Works)
-
$419$398 -
$774$735 -
$450$356 -
$580$452 -
$620$527 -
$714$678 -
$719$683 -
$534$507 -
$356Linux 是怎樣工作的
-
$880$695 -
$359$341 -
$414$393 -
$594$564 -
$713$677 -
$720$562 -
$602計算機底層的秘密
-
$708$673 -
$680$537 -
$479$455 -
$834$792 -
$294$279 -
$806Linux 源碼趣讀
-
$650$507
相關主題
商品描述
本書以圖配文,通俗易懂地講解了長期不會過時的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