计算机网络(五)—— 运输层(6、7):TCP超时重传时间的选择、TCP可靠传输的实现

30 篇文章 163 订阅
订阅专栏

计算机网络系列内容的学习目录 → \rightarrow 谢希仁计算机网络学习系列内容汇总。

  • 6. TCP超时重传时间的选择
    • 6.1 课后练习
  • 7. TCP可靠传输的实现
    • 7.1 课后练习

6. TCP超时重传时间的选择

  ■ 超时重传时间的选择是TCP最复杂的问题之一

  如下图所示,假设主机A和B是因特网上的两台主机,它们之间已经建立了TCP连接,纵坐标为时间。现在,主机A给主机B发送TCP数据报文段0,并记录下当前的时间,主机B收到后给主机A发送相应的确认报文段,主机A收到确认报文段后记录下当前的时间。主机A记录下的这两个时间,它们的差值就是报文段的往返时间RTT。由于这是第0个报文段的RTT,我们就用RTT0来表示。

在这里插入图片描述
  试想一下,如果我们将超时重传时间RTO的值设置的比RTT0的值小,会出现怎样的情况呢?
  很显然,这会引起报文段不必要的重传,使网络负荷增大。

在这里插入图片描述
  那么,如果将超时重传时间RTO的值设置的远大于RTT0的值,又会出现怎样的情况呢?
  很显然,这会使重传推迟的时间太长,使网络的空闲时间增大,降低了传输效率。

在这里插入图片描述
  综合上述两种情况,我们可以得出结论:超时重传时间RTO的值应该设置为略大于报文段往返时间RRT的值。

在这里插入图片描述
  ■ 不能直接使用某次测量得到的RTT样本来计算超时重传时间RTO。
  ■ 利用每次测量得到的RTT样本,计算加权平均往返时间 RTT S _S S(又称为平滑的往返时间)。

在这里插入图片描述
  ■ 用这种方法得出的加权平均往返时间RTT S _S S就比测量出的RTT值更加平滑。
  ■ 显然,超时重传时间RTO应略大于加权平均往返时间RTTs。
  ■ RFC6298建议使用下式计算超时重传时间RTO:

在这里插入图片描述
  由上我们可以发现,不管是RTT S _S S还是RTT D _D D都是基于所测量到的RTT样本进行计算的。如果所测量到的RTT样本不正确,那么所计算出的RTT S _S S和RTT D _D D自然就不正确,进而所计算出的超时重传时间RTO也就不正确。
  ■ 往返时间RTT的测量比较复杂

在这里插入图片描述
  ■ 针对出现超时重传时无法测准往返时间RTT的问题,Karn提出了一个算法:在计算加权平均往返时间RTTs时,只要报文段重传了,就不采用其往返时间RTT样本。也就是出现重传时,不重新计算RTT S _S S,进而超时重传时间RTO也不会重新计算。
    ⋄ \diamond 这又引起了新的问题。设想出现这样的情况:报文段的时延突然增大了很多,并且之后很长一段时间都会保持这种时延。因此在原来得出的重传时间内,不会收到确认报文段。于是就重传报文段。但根据Karn算法,不考虑重传的报文段的往返时间样本。这样,超时重传时间就无法更新。这会导致报文段反复被重传。
  ■ 因此,要对Karn算法进行修正。方法是:报文段每重传一次,就把超时重传时间RTO增大一些。典型的做法是将新RTO的值取为旧RTO值的2倍,即出现超时重传时,新RTO=2倍的旧RTO。

6.1 课后练习

  1. 以下关于TCP超时重传时间RTO的叙述中,正确的是( D )
    A. RTO应小于TCP端到端加权平均往返时间RTTs
    B. RTO应远大于TCP端到端加权平均往返时间RTTs
    C. RTO应等于TCP端到端加权平均往返时间RTTs
    D. RTO应略大于TCP端到端加权平均往返时间RTTs
   分析: RTO应略大于TCP端到端加权平均往返时间RTTs。

  2. 若出现超时重传,则以下关于TCP超时重传时间RTO的叙述中,正确的是( B )
    A. RTO的值应清零
    B. RTO的值应扩大两倍
    C. RTO的值应减1
    D. RTO的值应保持不变
   分析: 若出现超时重传,RTO的值应扩大两倍。

7. TCP可靠传输的实现

  ■ TCP基于以字节为单位的滑动窗口来实现可靠传输。
    ⋄ \diamond 发送方在未收到接收方的确认时,可将发送窗口内还未发送的数据全部发送出去;
    ⋄ \diamond 接收方只接收序号落入发送窗口内的数据。
  ■ 虽然发送方的发送窗口是根据接收方的接收窗口设置的,但在同一时刻,发送方的发送窗口并不总是和接收方的接收窗口一样大。
    ⋄ \diamond 网络传送窗口值需要经历一定的时间滞后,并且这个时间还是不确定的。
    ⋄ \diamond 发送方还可能根据网络当时的拥塞情况适当减小自己的发送窗口尺寸。
  ■ 对于不按序到达的数据应如何处理,TCP并无明确规定。
    ⋄ \diamond 如果接收方把不按序到达的数据一律丢弃,那么接收窗口的管理将会比较简单,但这样做对网络资源的利用不利,因为发送方会重复传送较多的数据。
    ⋄ \diamond TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。
  ■ TCP要求接收方必须有累积确认和捎带确认机制,这样可以减小传输开销。接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上。
    ⋄ \diamond 接收方不应过分推迟发送确认,否则会导致发送方不必要的超时重传,这反而浪费了网络的资源。
     TCP标准规定,确认推迟的时间不应超过0.5秒。若收到一连串具有最大长度的报文段,则必须每隔一个报文段就发送一个确认[RFC 1122]。
    ⋄ \diamond 捎带确认实际上并不经常发生,因为大多数应用程序很少同时在两个方向上发送数据。
  ■ TCP的通信是全双工通信。 通信中的每一方都在发送和接收报文段。因此,每一方都有自己的发送窗口和接收窗口。

  例1: 主机甲与主机乙之间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序号为200,主机乙正确接收到两个段后,发送给主机甲的确认序号是( D )
      A. 500  B. 700  C. 800  D. 1000
     分析:

在这里插入图片描述
  例2: 【2011年题40】主机甲与主机乙之间已建立一个TCP连接,主机甲向主机乙发送了3个连续的TCP段,分别包含300字节、400字节和500字节的有效载荷,第3个段的序号为900。若主机乙仅正确接收到第1个和第3个段,则主机乙发送给主机甲的确认序号是( B )
      A. 300  B. 500  C. 1200  D. 1400
     分析:

在这里插入图片描述
        TCP规定只能对按序到达的最高序号进行确认,因此主机乙发送的确认报文段实际上是对第一个数据报文段的确认。由于第一个数据报文段数据载荷的最后一个字节的序号为499,因此针对该序号的确认序号应为500。表明序号499为止的全部数据已经收到了,现在希望接收500号及其后续数据。

7.1 课后练习

  1. 主机甲和乙建立了TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含200字节和300字节的有效载荷,第一个段的序号为100,主机乙正确接收到两个段后,发送给主机甲的确认号是( B )
    A. 500  B. 600  C. 800  D. 900
   分析: 第一个段100 ~ 299,第二个段300 ~ 599,主机乙正确接收到两个段后,发送给主机甲的确认号是600。

  2. 主机甲和乙建立了TCP连接,主机甲向主机乙发送了3个连续的TCP段,分别包含200字节、300字节、400字节的有效载荷,第3个段的序号为1000。若主机乙仅正确接收到第1和第3个段,则主机乙发送给主机甲的确认号是( C )
    A. 500  B. 600  C. 700  D. 800
   分析: 第三个段1000 ~ 1399,第二个段700 ~ 999,第一个段500 ~ 699。
       TCP规定只能对按序到达的最高序号进行确认,因此主机乙发送的确认报文段实际上是对第一个数据报文段的确认。由于第一个数据报文段数据载荷的最后一个字节的序号为699,因此针对该序号的确认序号应为700。表明序号699为止的全部数据已经收到了,现在希望接收700号及其后续数据。
       因此,若主机乙仅正确接收到第1和第3个段,则主机乙发送给主机甲的确认号是700。

  3. 主机甲和乙建立了TCP连接,双方持续有数据传输,且数据无差错与丢失。若甲收到1个来自乙的TCP段,该段的序号为1024,确认序号为2048,有效数据载荷为200字节,则甲立即发送给乙的TCP段的序号和确认号分别是( B )
    A. 2048、1223  B. 2048、1224  C. 2049、1223  D. 2049、1224
   分析: 甲在发送数据之前,明确两个信息:1. 段序号为1024,说明乙发给甲的数据段起始字节序号为1024,有效载荷长度为200,说明该数据段的长度为200,那么甲下次需要的数据段的序号就是1024 + 200 = 1224;2. 乙发给甲的确认序号为2048,说明乙这次需要甲发送的数据段的起始字节序号为2048。获取这两个信息后,甲即可确定要发给乙的序号为2048(从乙的确认序号获知),确认序号为1224(希望下次乙能够发送首字节序号1224 的数据段过来)。

计算机网络运输层ppt
01-04
计算机网络运输层ppt
计算机网络传输可靠数据传输和拥塞控制
04-07
根据课上所学和《计算机网络 自顶向下方法》总结了可靠数据传输的机制和拥塞控制的机制,画成了思维导图,包括UDP的差错检查和TCP可靠数据传输和拥塞控制,以及一些通用机制。思维导图用MindManager画的,格式为...
计算机网络——运输层
l396465的博客
08-14 1322
运输层位于应用层和网络层之间,该层为运行在不同主机上的应用进程提供直接的通信服务起着重要作用。运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信(logic communication)功能。运输层协议是在端系统中而不是在路由器中实现的。在因特网的运输层中有两种协议,即TCP和UDP。因特网有两种不同的可用运输层协议。一种是UDP(用户数据报协议),提供一种不可靠,无连接的服务。另一种是TCP传输控制协议),提供一种可靠的,面向连接的服务。
计算机网络 TCP实现可靠传输
qq_44647223的博客
12-12 944
以字节为单位的滑动窗口 TCP 使用流水线传输和滑动窗口协议实现高效、可靠传输TCP 的滑动窗口是以字节为单位的。 发送方 A 和接收方 B 分别维持一个发送窗口和一个接收窗口。 发送窗口表示:在没有收到确认的情况下,可以连续把窗口内的数据全部发送出去。 接收窗口表示:只允许接收落入窗口内的数据。 根据 B 给出的窗口值,A 构造出自己的发送窗口。 发送窗口表示:在没有收到 B 的确认的情况下,A 可以连续把窗口内的数据都发送出去。 发送窗口里面的序号表示允许发送的序号。 显然,窗口越大,发送方就
5.6 TCP可靠传输实现
engineer0的博客
05-03 151
本节介绍如何实现TCP可靠传输 目录 5.6.1 以字节为单位的滑动窗口 5.6.2 超时重传时间选择 5.6.3 选择确认 SACK
传输层协议(11):超时重传
~~ LINUX ~~
03-02 819
5.3.8 超时估计 在TCP 的发送空间里,有一部分数据称为“已发送未确认”,如图5-117所示: 图5-117已发送未确认数据 应该说,“已发送未确认”的数据是必然存在的,只是存在的时间长短的问题。一个报文中的数据,在发送出去那一刹那,其状态肯定是“已发送未确认”。在一切都正常的情况下,TCP 发送方会在较短的时间内收到对方的 ACK 报文:确认这些数据已经被收到。...
TCP 可靠传输实现-01以字节为单位的滑动窗口实现
dengjili的专栏
09-28 955
TCP 的滑动窗口是以字节为单位的。 发送方 A 和接收方 B 分别维持一个发送窗口和一个接收窗口。 发送窗口表示:在没有收到确认的情况下,可以连续把窗口内的数据全部发送出去。 接收窗口表示:只允许接收落入窗口内的数据。 假定数据传输A发送数据,B给出确认。即发送方A的发送窗囗和接收方B的接收窗口。 A 发送了 11 个字节的数据 A 收到新的确认号,发送窗口向前滑动 A 的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送。 发送缓存 接收缓存 发送缓存与接收缓存的作用 发送缓存.
TCP利用以字节为单位的滑动窗口来实现可靠传输
DongZhaoCheng
02-23 1702
TCP利用滑动窗口机制实现可靠传输 TCP利用滑动窗口实现可靠传输,可以借助上图进行描述: 因为TCP时全双工通信,所以连接双方都各自维护一个发送窗口和接收窗口,本文为描述方便,只讨论一个方向的传输,因为另一个方向也是同样的情况 为讨论方便,我们假设发送窗口等于TCP报文段中的接收窗口的大小,也即不考虑拥塞窗口的影响,而实际的发送窗口的大小是min{拥塞窗口,发送窗口} TCP是以基于字节为单位的滑动窗口来实现可靠传输的 那什么是可靠传输呢? 可靠传输就是从A端发送到B端的数据,在协议和逻辑层面不会遗
运输层TCP超时重传时间选择
一个搬运知识的笨小孩
07-06 1118
简要了解TCP超时重传时间选择
计算机网络 第6章 运输层协议 PPT
04-16
计算机网络 第6章 运输层协议 PPT
计算机网络》谢希仁版--第运输层.pdf
12-24
计算机网络》谢希仁版--第章思维导图(适合期末复习或系统理解知识点
计算机网络(第 6 版)课件:第5章 运输层.ppt
06-10
计算机网络(第 6 版)课件:第5章 运输层.ppt
计算机网络:第运输层
最新发布
01-08
主要讲解了TCP和UDP的知识点
计算机网络——TCP可靠传输实现
weixin_51818357的博客
07-20 186
TCP可靠传输实现 TCP基于以字节为单位的滑动窗口来实现可靠传输。 假设发送方收到了确认报文段,rwnd=20表示发送方的接收窗口限制为20,ack=31表示31号之前的数据都已经接收,接收方希望接收从31号开始的数据。 发送方可以将发送窗口中的数据全都发送出去,但是在接收到确认前,都必须保留,保存在缓存中,以避免超时重传。 用三个指针来表示上面的各种情况。 如果接收方接收了未按序到达的37,38,40,因为它们是未按序到达的,所以只能将它们存于缓存中,等待其它按序到达的分组到达。 如果迟迟
计算机网络(四)—— 网络层(3):IPv4地址
大彤小忆的博客
07-09 8144
3. IPv4地址3.1 IPv4地址概述3.1.1 课后练习3.2 分类编址的IPv4地址3.2.1 课后练习3.3 划分子网的IPv4地址3.3.1 课后练习3.4 无分类编址的IPv4地址3.4.1 课后练习3.5 IPv4地址的应用规划3.5.1 定长的子网掩码FLSM3.5.2 变长的子网掩码VLSM3.5.3 总结3.5.4 课后练习 3. IPv4地址 3.1 IPv4地址概述   ■ 在TCP/IP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚。   ■ IPv4地址就是给.
计算机网络(三)—— 数据链路层(7):MAC地址、IP地址以及数据链路层使用的ARP协议
大彤小忆的博客
07-06 7970
7. MAC地址、IP地址以及数据链路层使用的ARP协议7.1 MAC地址7.1.1 课后练习7.2 IP地址7.2.1 课后练习7.3 ARP协议7.3.1 课后练习 7. MAC地址、IP地址以及数据链路层使用的ARP协议   数据链路层   ■ MAC地址是以太网的MAC子层所使用的地址;   网际层   ■ IP地址是TCP/IP体系结构网际层所使用的地址;   ■ ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地.
计算机网络(三)—— 数据链路层(8、9):集线器与交换机的区别、以太网交换机自学习和转发帧的流程
大彤小忆的博客
07-07 7370
8. 集线器与交换机的区别8.1 总结8.2 课后练习9. 以太网交换机自学习和转发帧的流程9.1 总结9.2 课后练习 8. 集线器与交换机的区别   早期的总线型以太网最初使用粗同轴电缆作为传输媒体,后来演进到使用价格相对便宜的细同轴电缆。当初认为这种连接方法既简单又可靠,因为在那个时代普遍认为有源器件不可靠,而无源的电缆线才是最可靠的。然而这种使用无源电缆和大量机械接头的总线型以太网,并不像人们想象的那么可靠。后来以太网发展出来了一种使用大规模集成电路可靠性非常高的设备,叫做集线器,并且使用更便宜更.
计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
大彤小忆的博客
07-05 6453
6. 媒体接入控制MAC6.1 媒体接入控制的基本概念6.2 媒体接入控制—静态划分信道6.2.1 频分复用FDM6.2.2 时分复用TDM6.2.3 波分复用WDM6.2.4 码分复用CDM6.2.5 课后练习6.3 媒体接入控制—动态接入控制-随机接入-CSMA/CD协议6.3.1 总结6.3.2 课后练习6.4 媒体接入控制 — 动态接入控制-随机接入-CSMA/CA协议6.4.1 总结 6. 媒体接入控制MAC 6.1 媒体接入控制的基本概念   如图所示的是一根同轴电缆,有多台主机连接到这根同轴.
计算机网络第7版第运输层TCP的流量控制,拥塞控制和运输连接管理三个小节提出6至7个问题
05-10
1. TCP的流量控制是什么?它如何工作? 2. 什么是滑动窗口协议?如何使用滑动窗口协议进行流量控制? 3. TCP的拥塞控制是什么?...6. TCP可靠数据传输是如何实现的? 7. TCP如何处理数据丢失和重传

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Requirement already satisfied解决办法 45730
  • 将火狐浏览器视频播放倍速设置为3倍速及其以上 39981
  • 数学建模(一)—— 人口增长模型的确定 32058
  • VOC2007数据集详细分析 25505
  • 折半插入排序算法 19604

分类专栏

  • 场景分类 4篇
  • 计算机网络 30篇
  • 遥感图像 4篇
  • 目标检测 14篇
  • 数据结构 60篇
  • C++ 57篇
  • 算法 20篇
  • 操作系统 11篇
  • MySQL 20篇
  • LeetCode刷题题解 1篇
  • Git和GitHub 2篇
  • 计算机视觉 2篇
  • 机器学习 26篇
  • 经验分享 9篇
  • Python 41篇
  • 软件安装 11篇
  • 深度学习 7篇
  • 论文阅读 11篇
  • 数学建模 8篇
  • MATLAB GUI 12篇

最新评论

  • 数学建模(三)—— 自动化车床管理

    2401_85244929: 这公式里面的h是什么意思啊

  • 数学建模(三)—— 自动化车床管理

    2401_85244929: 博主h是什么意思啊

  • 使用ResNet101作为预训练模型训练Faster-RCNN-TensorFlow-Python3-master

    dumu_: 使用自己的数据集训练出来,测试效果的时候出现了识别不出来或者是识别出来标签是错的是为什么,数据标注和扩充的过程没有出问题

  • 使用Python将DOTA数据集的格式转换成VOC2007数据集的格式

    weixin_45366412: 博主您好,求一份转换后的obb形式数据集,谢谢

  • 遥感图像场景分类数据集

    芸开: 第二个数据集没有标签吗?标签去哪里下载啊

最新文章

  • Python排序进阶版:根据一个列表的顺序对其他列表进行排序
  • Python实现排序
  • 使用Python随机生成数据的一些方法
2022年11篇
2021年240篇
2020年73篇
2019年12篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司坪地网站改版嘉兴网站优化按天扣费推荐德阳百度标王朔州网站制作哪家好海南网站优化按天收费推荐新乡百姓网标王报价淮北外贸网站设计公司固原百姓网标王推广报价珠海设计网站哪家好长治SEO按效果付费报价鹰潭英文网站建设焦作网站优化临沧网站开发多少钱阳江关键词按天扣费推荐梅州建设网站推荐黄南优秀网站设计安阳网站建设价格阜新企业网站制作推荐桂林模板制作公司防城港推广网站报价南联关键词排名推荐潍坊网站设计模板公司曲靖关键词按天收费多少钱宿州阿里店铺运营公司沧州阿里店铺运营公司诸城百度网站优化排名绥化英文网站建设推荐襄阳推广网站报价滨州关键词排名包年推广多少钱益阳关键词排名报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化