视频加载失败

课程

5296 字
约 16 分钟

第13次课测试

计算机网络exams/rainclass/yuketang-exams·更新于 2026-09-15

第13次课测试

1. [单选题]

主机甲向主机乙发送一个(SYN=1,seq=11220)的TCP段,期望与主机乙建立TCP连接,若主机乙接收该连接请求,则主机乙向主机甲发送的正确的TCP段可能是

A. (SYN=0,ACK=0,seq=11221,ack=11221)

B. (SYN=1,ACK=1,seq=11220,ack=11220)

C. (SYN=1,ACK=1,seq=11221,ack=11221)

D. (SYN=0,ACK=0,seq=11220,ack=11220)

答案:C

解析:

在 TCP 三次握手中,第二次握手(服务器响应客户端请求):

  • 标志位:SYN=1ACK=1
  • 确认号 (ack):客户端的 seq + 1 = 11220 + 1 = 11221
  • 序列号 (seq):服务器自己的随机初始序号(本题中恰好也是11221,这是允许的,或者是选项设定)。
  • 因此选项 C 正确。

2. [填空题]

通信信道带宽为1Gbit/s,端到端传播时延为10ms。TCP的发送窗口为65535字节。试问:可能达到的最大吞吐量是 [填空1] Mbit/s(保留小数点后1位)。信道的利用率是 [填空2] %(保留小数点后2位)。

答案

[1] 25.5 [2] 2.55

解析:

  • 发送窗口 W=65535 Byte×8=524280 bitW = 65535 \text{ Byte} \times 8 = 524280 \text{ bit}
  • 带宽 R=1 Gbit/s=109 bit/sR = 1 \text{ Gbit/s} = 10^9 \text{ bit/s}
  • 发送时延 TD=W/R=524280/1090.000524 s=0.524 msT_D = W/R = 524280 / 10^9 \approx 0.000524 \text{ s} = 0.524 \text{ ms}
  • 往返时延 RTT=2×10 ms=20 msRTT = 2 \times 10 \text{ ms} = 20 \text{ ms}
  • 总时间(发送一个窗口的数据并收到确认)T=TD+RTT=0.524+20=20.524 msT = T_D + RTT = 0.524 + 20 = 20.524 \text{ ms}
  • 最大吞吐量 =W/T=524280 bit/0.020524 s25544728 bit/s25.5 Mbit/s= W / T = 524280 \text{ bit} / 0.020524 \text{ s} \approx 25544728 \text{ bit/s} \approx 25.5 \text{ Mbit/s}
  • 信道利用率 =吞吐量/带宽=25.5 Mbit/s/1000 Mbit/s=2.55%= \text{吞吐量} / \text{带宽} = 25.5 \text{ Mbit/s} / 1000 \text{ Mbit/s} = 2.55\%

3. [填空题]

假定TCP在开始建立连接时,发送方设定超时重传时间RTO=6秒。设α=1/8=0.125, β=1/4=0.25。

(1)当发送方收到对方的连接确认报文段时,测量出的RTT样本值为1.5秒。则现在的RTO值是 [填空1] 秒。

当发送方收到对方的连接确认报文段时,测量出的RTT样本值为2.5秒。则现在的RTO值是 [填空2] 秒。

答案

[1] 4.5 [2] 4.875

解析:

(1) 第一次测量 (RTTsample=1.5RTT_{sample} = 1.5)

  • RTTS=RTTsample=1.5RTT_S = RTT_{sample} = 1.5 s
  • RTTD=RTTsample/2=0.75RTT_D = RTT_{sample} / 2 = 0.75 s
  • RTO=RTTS+4×RTTD=1.5+4×0.75=1.5+3=4.5RTO = RTT_S + 4 \times RTT_D = 1.5 + 4 \times 0.75 = 1.5 + 3 = 4.5 s

(2) 第二次测量 (RTTsample=2.5RTT_{sample} = 2.5)

  • RTTD=(1β)×RTTD_old+β×RTTSRTTsampleRTT_D = (1 - \beta) \times RTT_{D\_old} + \beta \times |RTT_S - RTT_{sample}| =0.75×0.75+0.25×1.52.5=0.5625+0.25=0.8125= 0.75 \times 0.75 + 0.25 \times |1.5 - 2.5| = 0.5625 + 0.25 = 0.8125 s
  • RTTS=(1α)×RTTS_old+α×RTTsampleRTT_S = (1 - \alpha) \times RTT_{S\_old} + \alpha \times RTT_{sample} =0.875×1.5+0.125×2.5=1.3125+0.3125=1.625= 0.875 \times 1.5 + 0.125 \times 2.5 = 1.3125 + 0.3125 = 1.625 s
  • RTO=RTTS+4×RTTD=1.625+4×0.8125=1.625+3.25=4.875RTO = RTT_S + 4 \times RTT_D = 1.625 + 4 \times 0.8125 = 1.625 + 3.25 = 4.875 s

4. [简答题]

TCP的拥塞窗口cwnd大小与传输轮次n的关系如下所示:

image

(1)试画出拥塞窗口与传输轮次的关系曲线。

** (2)指明TCP工作在慢开始阶段的时间间隔。

(3)指明TCP工作在拥塞避免阶段的时间间隔。

(4)在第16轮次和第22轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?

(5)在第1轮次,第18轮次和第24轮次发送时,门限ssthresh分别被设置为多大?

(6)在第几轮次发送出第70个报文段?

(7)假定在第26轮次之后收到了三个重复的确认,因而检测出了报文段的丢失,那么拥塞窗口cwnd和门限ssthresh应设置为多大?**

答案

(见解析)

解析:

(1) 拥塞窗口曲线如图: image

(2) 慢开始阶段:拥塞窗口指数增长(1 -> 2 -> 4 …)。 区间:[1, 6] (cwnd 1 到 32) 和 [23, 26] (超时后重新开始,cwnd 1 到 8)。

(3) 拥塞避免阶段:拥塞窗口线性增长(+1)。 区间:[6, 16] (cwnd 32 到 42) 和 [17, 22] (cwnd 21 到 26)。

(4) 丢包检测

  • 第16轮次后:cwnd 从 42 降为 21 (减半)。这是收到三个重复确认(快重传)的特征。
  • 第22轮次后:cwnd 从 26 降为 1。这是超时的特征。

(5) 门限 ssthresh

  • 第1轮次:初始值,由图推断漫开始一直到32,故为 32
  • 第18轮次:在第16轮次发生拥塞(cwnd=42),ssthresh = cwnd/2 = 21
  • 第24轮次:在第22轮次发生超时(cwnd=26),ssthresh = cwnd/2 = 13

(6) 第70个报文段

  • R1: 1 (Total 1)
  • R2: 2 (Total 3)
  • R3: 4 (Total 7)
  • R4: 8 (Total 15)
  • R5: 16 (Total 31)
  • R6: 32 (Total 63)
  • R7: 33 (Total 96)
  • 第 70 个报文段在 第 7 轮次 发送。

(7) 第26轮次后: 发生3个重复确认(快重传)。cwnd = 8。

  • ssthresh = cwnd / 2 = 8 / 2 = 4
  • cwnd = ssthresh + 3 (快恢复) = 4 + 3 = 7 (或根据题目风格,可能仅问阈值设为4,窗口也跟随调整)。参考历史解析,设为4。

5. [填空题]

一台主机H访问互联网中的Web服务器S时,S为新建的TCP连接分配了20KB(K=1024)的接收缓存,最大段长MSS=1KB,平均往返时间RTT=200ms。H建立连接时的初始序号为100,且持续以MSS大小的段向S发送数据,拥塞窗口初始阈值为32KB;S对收到的每个段进行确认,并通告新的接收窗口。假定TCP连接建立完成后,S端的TCP接收缓存仅有数据存入而无数据取出。请回答下列问题:

(1)在TCP连接建立过程中,主机H收到的服务器S发送过来的第二次握手TCP段的标志位SYN= [填空1] 、ACK= [填空2] ,确认序号= [填空3]

(2)主机H收到的第8个确认段所通告的接收窗口是 [填空4] KB。此时主机H的拥塞窗口变为 [填空5] KB,主机H3的发送窗口变为 [填空6] KB。

(3)当主机H的发送窗口等于0时,下一个待发送的数据段序号是 [填空7] 。主机H3从发送第1个数据段到发送窗口等于0时刻为止,平均数据传输速率是 [填空8] kB/s,即 [填空9] kb/s。(忽略段的传输延时)。

(4)若主机H与服务器S之间通信已经结束,在t时刻主机H请求断开该连接,则从t时刻起,服务器S释放该连接的最短时间是 [填空10] ms。

答案

[1] 1 [2] 1 [3] 101 [4] 12 [5] 9 [6] 9 [7] 20581 [8] 20.48 [9] 163.84 [10] 300

解析:

(1) 第二次握手:SYN=1, ACK=1。确认号 = H_ISN + 1 = 100 + 1 = 101。

(2)

  • H收到第8个确认段,说明 S 已经收到了 8 个 MSS 的数据(8KB)。
  • S 的接收缓存 20KB,存入 8KB,剩余 12KB。通告窗口 rwnd = 12 KB
  • H 的拥塞窗口:
    • 开始 cwnd = 1 (MSS)。
    • 收到 8 个 ACK(慢开始,每收到一个ACK,cwnd+1)。
    • cwnd = 1 + 8 = 9 KB
  • H 的发送窗口 = min(cwnd, rwnd) = min(9, 12) = 9 KB

(3)

  • 当发送窗口 = 0 时,说明 rwnd = 0。即缓存已满(20KB 数据已确认)。
  • 发送了 20 个 MSS。总数据量 20KB = 20480 字节。
  • 下一个序号 = 初始序号 101 + 20480 = 20581
  • 传输时间:
    • R1 (1个), R2 (2个), R3 (4个), R4 (8个), R5 (5个)。
    • 总共约 5 个 RTT。(最后一个ACK返回结束)。
    • T=5×200 ms=1000 ms=1 sT = 5 \times 200 \text{ ms} = 1000 \text{ ms} = 1 \text{ s}
  • 平均速率 = 20 KB / 1 s = 20 KB/s = 20.48 kB/s (注意 k=1000 vs K=1024, 题目中K=1024. 20KB = 20480 Bytes. 20480 / 1000 = 20.48 kB/s)。
  • 比特率 = 20.48×8=163.84 kb/s20.48 \times 8 = \textbf{163.84} \text{ kb/s}

(4) 释放连接需 1.5 RTT(H发FIN -> S收并回ACK/FIN -> H收并回ACK -> S收ACK关闭)。 Time = 1.5×200=300 ms1.5 \times 200 = 300 \text{ ms}


Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录