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

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(又称为平滑的往返时间)。

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值