Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

TCP是怎样工作的 PDF 下载


分享到:
时间:2024-03-29 09:49来源:http://www.java1234.com 作者:转载  侵权举报
本书以图配文,通俗易懂地讲解了长期不会过时的TCP技术。其中,第1章至第3章讲解了TCP的基础知识,详细梳理了TCP的发展历程,并以丰富的图例展示了TCP数据传输的基本思路和过程;第
失效链接处理
TCP是怎样工作的 PDF 下载

下载地址:
版权归出版社和原作者所有,链接已删除,请购买正版

用户下载说明:

电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
https://product.dangdang.com/29550256.html
 

相关截图:




资料简介:

本书以图配文,通俗易懂地讲解了长期不会过时的TCP技术。其中,第1章至第3章讲解了TCP的基础知识,详细梳理了TCP的发展历程,并以丰富的图例展示了TCP数据传输的基本思路和过程;第4章至第6章着重介绍了TCP中极为重要的拥塞控制技术,通过图表、公式和模拟实验讲解了TCP拥塞控制的运行机制和热门算法(CUBIC、BBR等);第7章讲解了TCP前沿的研究动向和今后的发展方向,涉及5G、物联网、数据中心、自动驾驶等内容。

本书理论与实践相结合,在详细讲解TCP原理后,还引领读者搭建模拟环境,使用Wireshark和ns-3等工具模拟TCP的运行机制,观察拥塞控制算法的执行,并辅以伪代码,帮助读者全面理解TCP技术。




资料目录:

第 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





------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐