IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP/IP详解-(21)超时与重传 -> 正文阅读

[网络协议]TCP/IP详解-(21)超时与重传

TCP的超时和重传

引言

TCP提供的可靠传输在数据丢失时依靠超时和重传机制,如何决定超时间隔、如何确定重传频率是其关键之处。
超时依赖定时器的实现,对于每个连接,TCP管理4个不同的定时器:

  1. 重传定时器,希望收到另一端的确认
  2. 坚持定时器,获取窗口大小信息
  3. 保活定时器,检测另一端是否崩溃或重启
  4. 2MSL定时器,测量一个连接处于TIME_WAIT状态的时间

超时与重传的简单例子

在一个tcp建立连接后,拔掉接收端的网线,观察tcpdump输出。
重传了13次,时间间隔指数增加,总耗时9分钟。

往返时间测量

根据RTT,计算平滑平滑RTT估计器,计算出重传超时时间RTO。
之后改进法又依赖其RTT的方差,使之对于往返时间变化起伏大的网络也能适用。

往返时间RTT的例子

图21.4显示出测量的RTT与TCP计算的RTO之间的关系

拥塞举例

图21-7显示了中间传输过程中报文丢失并重传的过程

拥塞避免算法

当拥塞发生时,ssthresh值为当前windowsize的一半,且如果是超时引起的拥塞,直接将cwin置为1,即慢启动。(如果是重复ack引起的拥塞,则执行拥塞避免?)
当收到新数据的ack回复时,增加cwnd,但增加的方式取决于当前是慢启动还是拥塞避免。

当cwnd小于门限值,使用启动,否则使用拥塞避免。
即慢启动一直持续到拥塞发生时窗口的一半,接着执行拥塞避免。

快重传与快恢复

由于我们不知道一个重复的 A C K是由一个丢失的报文段引起的,还是由于仅仅出现了几
个报文段的重新排序,因此我们等待少量重复的 A C K到来。假如这只是一些报文段的重新排
序,则在重新排序的报文段被处理并产生一个新的 A C K之前,只可能产生1 ~ 2个重复的A C K。
当收到三个失序报文后,接下来执行拥塞避免算法,而不是慢启动算法。

ICMP的差错

一个接收到的主机不可达或网络不可达实际上都被忽略,因为这两个差错都被认为是短暂现象,
不会引起TCP链接的关闭。
这有可能是由于中间路由器被关闭而导致选路协议要花费数分钟才能稳定
到另一个替换路由。在这个过程中就可能发生这两个 I C M P差错中的一个,但是连接
并不必被关闭。相反, T C P试图发送引起该差错的数据,尽管最终有可能会超时(回
想图 2 1 - 1中T C P在9分钟内没有放弃的情况)。当前基于伯克利的实现记录发生的
I C M P差错,如果连接超时, I C M P差错被转换为一个更合适的的差错码而不是“连接
超时”。

重新分组

当T C P超时并重传时,它不一定要重传同样的报文段。相反, T C P允许进行重新分组而发
送一个较大的报文段,这将有助于提高性能(当然,这个较大的报文段不能够超过接收方声
明的M S S)。在协议中这是允许的,因为 T C P是使用字节序号而不是报文段序号来进行识别它
所要发送的数据和进行确认。

小结

本章提供了对T C P超时和重传机制的详细研究。使用的第 1个例子是一个丢失的建立连接
的S Y N,并观察了在随后的重传和超时中怎样使用指数退避方式。
T C P计算往返时间并使用这些测量结果来维护一个被平滑的 RT T估计器和被平滑的均值偏
差估计器。这两个估计器用来计算下一个重传时间。许多实现对每个窗口仅测量一次 RT T。
K a r n算法在分组丢失时可以不测量 RT T就能解决重传的二义性问题。
详细例子包括3个丢失的分组,使我们看到 T C P的许多实际算法:慢启动、拥塞避免、快
速重传和快速恢复。我们也能够使用拥塞窗口和慢启动门限来手工计算 TCP RT T估计器,并
将这些值与跟踪输出的实际数据进行比较。
以多种I C M P差错对 T C P连接的影响以及 T C P怎样允许对数据进行重新分组来结束本章。
我们观察到“软”的 I C M P差错没有引起T C P连接终止,但这些差错被保存以便在连接非正常
中止时能够报告这些软差错。

重点

  • 超时重传的几种类型
  • 超时时间的确定,基于RTT取值的均值和方差,并实现指数规避
  • 拥塞避免算法和慢启动的结合使用,什么时候指数增加,什么时候线性增加
  • 快重传和快恢复的结合使用,新门限值的取值,发生快重传的时机
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 19:11:36  更:2021-11-16 19:12:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 20:48:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码