7. 仿照TCP协议,设计一个可靠传送字节流的通信协议,为了提高发送效率也采用滑动窗口来发送数据,并且其数据发送速率为100Mb/s,网络中发送主机和目的主机距离为8*106米(电磁波传播速度采用2*108米/秒),且报文段在网络中的最大生存时间是8秒,那么在此通信协议首部中,发送窗口和序号字段至少应该设置为多少比特才能满足通信需求?(需要计算过程,且有如下公式:log2M=log10M/log102,取log102≈0.3)
时间: 2024-02-26 21:54:08 浏览: 179
小程序开发-高仿美团-JavaScript
根据题意,我们可以得到以下信息:
- 数据发送速率为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比特才能满足通信需求。
阅读全文