TCP-IP学习笔记回顾-4.5 TCP报文段的首部格式 -4.6 TCP可靠传输的实现【重点】

阳光穿透心脏的1/2处 2022-01-13 00:39 289阅读 0赞

4.5 TCP报文段的首部格式
TCP虽然是面向字节流的,但TCP传输的数据单元是报文段。一个TCP报文段分为首部和数据两部分。TCP首部的最小长度是20Byte

在这里插入图片描述
IP数据报首部 | IP数据包数据部分 内容为{TCP首部 | TCP数据部分}

4.6 TCP可靠传输的实现【重点】
为了讲述可靠传输原理的方便,我们假定数据传输只在一个方向进行,即A发送数据,B给出确认。这样的好处是讨论限于两个窗口,即发送方A的发送窗口和接收方B的接收窗口。

4.6.1 以字节为单位的滑动窗口
第一,缓存空间和序号空间都是有限的,并且都是循环使用的。第二,由于实际缓存或窗口中的字节数是非常之大的,因此无法再图中把一个个字节的位置标注清楚。
在这里插入图片描述

发送缓存用来暂时存放
(1)发送应用程序传送给发送方TCP准备发送的数据;
(2)TCP已发送出但尚未收到的确认的数据。
接受缓存用来暂时存放
(1)按序到达的、但尚未被接受应用程序读取的数据;
(2)未按序到达的数据。

4.6.2 超时重传时间的选择
TCP的发送方在规定的时间内没有收到接收方的确认,就要重传已发送的报文段,这种重传的概念是很简单的,但是重传时间的选择却是TCP最复杂的问题之一
TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间****RTT(ZY:Receive Transmit Time)。TCP保留了RTT的一个加权平均往返时间RTTs(又称为平滑的往返时间)。

  1. 新的RTTs = 1-α) * (旧的RTTs)+ α * (新的RTT样本)

上式中,0≦α<1。
超时计时设置的超时重传时间RTO略大于上面得出的加权平均往返时间RTTs

  1. RTO = RTTs +4 * RTTd RTORTT的偏差的加权平均值)
  2. 新的RTTd=(1-β)*(旧的RTTd)+β*|RTTs-新的RTT样本| (β的推荐值是0.25

在计算加权平均RTTs时,只要报文段重传了,就不采用其往返时间样本。这样的出的加权平均RTTs和RTO就比较准备。
选择确认SACK(selective ACK)

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读

    相关 323-TCP可靠传输实现

    TCP可靠传输的实现 我们首先介绍以字节为单位的滑动窗口。为了讲述可靠传输原理的方便,我们假定数据传输只在一个方向进行,即A发送数据,B给出确认。 这样的好处是使讨论限于

    相关 TCP格式

    最近《计算机网络》这本书看到了传输层的 TCP 协议,因为TCP 的全部功能都体现在它的首部中,因此觉得有必要将这些知识梳理一下。 首先TCP 是面向字节流的。这个流指的是流

    相关 TCP可靠传输实现

    本文转载自:[TCP可靠传输的实现][TCP] TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现

    相关 TCP格式

    TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能都体现在它首部中各字段的作用。TCP报文段首部的前20个字节