TCP滑动窗口机制包括1比特滑动窗口协议,三种类型
时间: 2023-11-03 20:36:00 浏览: 151
的滑动窗口协议:停-等协议、连续ARQ协议和选择重传协议。
1比特滑动窗口协议是最简单的滑动窗口协议,只有一个比特用于表示窗口中的下一个期望收到的数据包。这种协议的缺点是效率低下,容易发生死锁。
停-等协议是指发送方只发送一个数据包,然后等待接收方的确认,只有接收到确认后才能发送下一个数据包。这种协议的优点是简单易行,缺点是效率低下,利用率低。
连续ARQ协议是指发送方可以连续发送多个数据包,但必须等待接收方对第一个数据包的确认才能发送下一个数据包。这种协议的优点是效率高,利用率高,缺点是有可能发生丢包导致重传次数增加。
选择重传协议是指发送方可以同时发送多个数据包,接收方收到数据包后会给每个数据包发送一个确认,如果有数据包丢失,则重新发送丢失的数据包。这种协议的优点是效率高,且可以避免重传不必要的数据包,缺点是实现复杂。
相关问题
7. 仿照TCP协议,设计一个可靠传送字节流的通信协议,为了提高发送效率也采用滑动窗口来发送数据,并且其数据发送速率为100Mb/s,网络中发送主机和目的主机距离为8*106米(电磁波传播速度采用2*108米/秒),且报文段在网络中的最大生存时间是8秒,那么在此通信协议首部中,发送窗口和序号字段至少应该设置为多少比特才能满足通信需求?(需要计算过程,且有如下公式:log2M=log10M/log102,取log102≈0.3)
根据题意,我们可以得到以下信息:
- 数据发送速率为100Mb/s,即发送速率为100000000 bps。
- 发送主机和目的主机距离为8*106米,电磁波传播速度为2*108米/秒,因此信号传播时延为8/2=4秒。
- 报文段在网络中的最大生存时间是8秒,因此报文段的最大传输距离为8秒 * 2*108米/秒 = 1.6*109米。
- 为了提高发送效率,采用滑动窗口来发送数据。
接下来我们需要计算发送窗口和序号字段至少应该设置为多少比特才能满足通信需求。
由于采用了滑动窗口来发送数据,我们需要在通信协议的首部中加入发送窗口和序号字段。发送窗口需要表示当前可以发送的数据量大小,序号字段需要标识每个报文段的顺序。
我们可以根据滑动窗口的原理来计算发送窗口和序号字段的大小。假设窗口大小为M,每个报文段的大小为B,发送主机发送第一个报文段时,已经发送了M个报文段,第M+1个报文段还未收到确认,因此窗口的左边界为M+1,右边界为M+1+N(N为窗口大小)。当收到第M+1个报文段的确认后,窗口的左边界右移一位,即变为M+2,右边界也右移一位,变为M+2+N。因此,窗口大小M应该满足以下条件:
M + 2N <= 传输速率 × 传输时延
其中,传输速率为100000000 bps,传输时延为4秒(信号传播时延),因此:
M + 2N <= 100000000 × 4
M + 2N <= 400000000
同样,序号字段的大小也需要满足窗口大小M的需求,因为序号字段需要标识每个报文段的顺序。假设序号字段大小为S,每个报文段的大小为B,那么序号字段大小S应该满足以下条件:
S >= log2(M×B)
其中,log2表示以2为底的对数。因此,我们需要计算出M×B的大小。由于题目中没有给出报文段的大小,我们可以自行设置一个大小,假设报文段大小为1KB(即1024字节),那么M×B的大小为M×1024。将M×1024代入上述公式得:
S >= log2(M×1024)
为了方便计算,我们将公式中的log2转化为log10和log102,得:
S >= log10(M×1024)/ log102
由于题目中给出了log102≈0.3,因此:
S >= log10(M×1024)/ 0.3
综上所述,我们需要计算出M和S的大小,才能满足通信需求。将M代入上述公式得:
S >= log10(M×1024)/ 0.3
S >= log10((400000000-2N)×1024)/ 0.3
假设序号字段大小为32比特(4字节),那么上述公式左边的S应该大于等于32。因此,我们可以通过二分法计算出N的最大值。假设N的最大值为X,那么:
log10((400000000-2X)×1024)/ 0.3 >= 32
解得X ≈ 200000,因此,序号字段至少应该设置为18比特才能满足通信需求。将X代入原公式得:
M + 2N <= 400000000
M + 2×200000 <= 400000000
解得M ≈ 1996000,因此,发送窗口至少应该设置为21比特才能满足通信需求。
因此,在此通信协议首部中,发送窗口和序号字段至少应该设置为21比特和18比特才能满足通信需求。
阅读全文