传输控制协议TCP(二)

来源:互联网 发布:网络统考信息管理 编辑:程序博客网 时间:2024/06/04 19:13

可变窗口大小与流量控制

       TCP的滑动窗口机制是按八位组操作而不是按报文段或分组操作的。由于TCP连接是全双工的,在一个连接上可同时有两个不同方向的传输。我们认识这两个传输是完全独立的,因为在任意时刻数据都可以在一个方向或者两个方向上传输。因此,在连接两端的TCP软件为每个连接方向各保留了两个窗口(总共四个),其中一个在传输数据流时滑动,而另一个在接收数据流时滑动。

      TCP允许随时改变窗口的大小。在每个确认中,除了指出已经收到的八位组之外,还包括一个窗口通报来说明接收方还能再接收多少八位组的数据。可以把窗口通告的值作为当前的接收缓冲区大小。相应于窗口通告值的增加,发送方扩大发送滑动窗口,继续发送尚未收到确认的八位组。而相应于窗口通告值的减少,发送方降低发送窗口的大小并停止发送处于窗口边界之外的八位组。

确认与重传

      TCP的确认消息指出接收方期望收到的下一个八位组的序号。

超时与重传

      TCP使用自适应重传算法以适应互联网时延的变化。算法要点:TCP监视每个连接的性能,由此推算出合适的定时时限。当连接的性能变化时,TCP随即修改定时时限,也就是说,他能自动适应时延的变化。

为了搜集自适应算法所需的数据,TCP对每个报文段都记录下发送出的时间和其确认消息到达的时间。由此TCP计算出所经历的时间,即样本往返时间或往返时间样本。每当得到新的往返样板之后,TCP就修改这个链接的平均往返时间。通常TCP把估算的往返时间RTT存储起来作为一个加权平均值,在使用新的往返样本来逐步的修改这个平均值。例如,在计算新的加权平均值时,有一种早期用过的技术是使用一个常数因子a 0<=a<1 ,对旧的平均值和新的往返时间样本进行加权。

RTT =a * Old_RTT + ( ( 1 – a ) * New_Round_Trip_Sample )

选用的a值接近1 则加权平均值对短暂的时延变化不敏感(例如,仅有一个报文段遇到了时延很长的情况),而a 值越接近0,则加权平均值很快的随时延变化。

原创粉丝点击