【计算机网络 (谢希仁) 习题题解】第5章 运输层 (3)

您所在的位置:网站首页 滑动窗口的目的 【计算机网络 (谢希仁) 习题题解】第5章 运输层 (3)

【计算机网络 (谢希仁) 习题题解】第5章 运输层 (3)

2023-08-19 16:04| 来源: 网络整理| 查看: 265

TCP 可靠传输的实现

为了讲述可靠传输原理的方便,假定数据传输只在一个方向进行,即 A 发送数据,B 给出确认。

以字节为单位的滑动窗口

现假定 A 收到了 B 发来的确认报文段,其中窗口是 20 字节,确认号是 31。 5-15 发送窗口表示:在没有收到 B 的确认的情况下,A 可以连续把窗口内的数据都发送出去。凡是已经发送过的数据,在未收到确认之前都必须暂时保留,以便在超时重传时使用。 发送窗口里面的序号表示允许发送的序号。A 的发送窗口一定不能超过 B 的接收窗口数值。发送方的发送窗口大小还要受到当时网络拥塞程度的制约。 发送窗口后沿的后面部分表示已发送且已收到了确认。这些数据不需要保留了。发送窗口前言部分表示不允许发送的,因为接收方没有为这部分数据保留临时存放的缓存空间。 发送窗口后沿的变化情况有两种可能,即不动 (没有收到新的确认) 和前移 (收到了新的确认)。 发送窗口前沿通常是不断向前移动,也有可能不动。这对应于两种情况:①没有收到新的确认;②收到了新的确认但对方通知的窗口缩小了,使得发送窗口前沿正好不动。 发送窗口前沿也有可能向后收缩。这发生在对方通知的窗口缩小了。但 TCP 的标准强烈不赞成这样做。因为很可能发送方在收到这个通知前已发送了窗口中的许多数据。 5-16 指针 P3 - P2 = 允许发送但当前尚未发送的字节数 (又称为可用窗口或有效窗口)

现在假定 B 收到了序号为 31 的数据,并把序号为 31 ~ 33 的数据交付主机,然后 B 删除这些数据。 5-17 发送方的应用进程把字节流写入 TCP 的发送缓存,接收方的应用进程从 TCP 的接收缓存中读取字节流。 5-19 首先明确两点:

缓存空间和序号空间都是有限的,且都是循环使用的。实际上缓存或窗口中的字节数是非常之大的。

强调三点:

虽然 A 的发送窗口是根据 B 的接收窗口设置的,但在同一时刻,A 的发送窗口并不总是和 B 的接收窗口一样大。因为通过网络传送窗口值需要经历一定的时间滞后。发送方 A 还可能根据网络当时的拥塞情况适当减小自己的发送窗口数值。对于不按序到达的数据应如何处理,TCP 标准并无明确规定。 如果接收方把不按序到达的数据一律丢弃,那么接收窗口的管理将会比较简单,但对网络资源的利用不利。 因此 TCP 通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。TCP 要求接收方必须有累计确认的功能,这样可以减小传输开销。接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上。

TCP 的通信是全双工通信。通信中的每一方都在发送和接收报文段。因此,每一方都有自己的发送窗口和接收窗口。

超时重传时间的选择

TCP 的发送方在规定的时间内没有收到确认就要重传已发送的报文段。

运输层的超时计时器的超时重传应设置为多大呢?

TCP 采用一种自适应算法,他记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间 RTT。TCP 保留了 RTT 的一个加权平均往返时间 RTTS,这又称为平滑的往返时间,S 表示 Smoothed。因为进行的是加权平均,因此得出的结果更加平滑。

每当第一次测量到 RTT 样本时,RTTS 值就取为所测量到的 RTT 样本值。但以后每测量到一个新的 RTT 样本,就按下式重新计算一次 RTTS:

新的 RTTS = (1 - α \alpha α) × (旧的 RTTS) + α \alpha α × (新的 RTT 样本)

在上式中, 0 ≤ α < 1 0 \le \alpha < 1 0≤α



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3