计算机网络自顶向下第三章习题

计算机网络第三章作业

R9:

接收方通过检查序号可以判断接收到的分组是新的数据还是一次重传,这样可以解决冗余分组问题。

 

R10:

当在信道上发生丢包时,发送方不知道是一个数据分组丢失还是一个ACK丢失,或者只是该分组或ACK过度延时。引入定时器是为了实现基于时间的重传机制。如果在规定的时间内没有收到分组或者该分组的ACK,则可能发生了丢包,则发送方重传该分组。

 

R14:

a. 错误。TCP要求主机B要发送确认消息,因为主机B不能随数据捎带确认,所以需要单独发送确认消息。

b. 错误。rwnd表示接受缓存中的空闲空间,是动态变化的。

c. 正确。

d. 错误。序号的设定不是以报文段为单位,而是以传送的字节流为单位。一个报文段的序号是该报文段中数据段的第一个字节在字节流中的编号 。

e. 正确。

f. 错误。对于该连接的TimeoutInterval由SampleRTT和EstimatedRTT共同决定。

g. 错误。接收方可能会发送重复的ACK,确认号可能还是38。

 

R15:

a. 第一个报文段中有20字节的数据。因为TCP把数据看成一个无结构的但是有序的字节流。因此TCP的序号是建立在传送的字节流上的。由第一个报文段序号为90,第二个报文段序号为110可推出第一个报文段中的数据大小为110 - 90 = 20 Bytes。

b. 若第一个报文段丢失,则发送方会在一定时间后没有收到接收方的反馈确认包,接受方此时会发送一个重复的ACK,在主机B发往主机A的确认报文中,确认号应该是90。


P22:

a. 发送方的窗口大小N=4,假设在时刻t接收方期待的下一个有序分组的序号为k,则说明接收方已收到k-1号分组,并对之前收到的所有分组进行过确认。如果分组全部正确到达发送方,则此时发送方窗口内的报文序号是[k , k+N-1]。如果发送方没有收到所有应收到的ACK,此时发送方窗口内报文序号为[k-N , k-1]。因此发送方窗口内的报文序号可能是: [ k-4 , k-1 ],[ k-3 , k ],[ k-2 , k+1 ],[ k-1 , k+2 ],[ k , k+3 ]。

b. 由上题得到,发送方发送报文序号最小为[k-N , k-1],说明发送方已经收到了k-N-1的ACK确认,所以不会对k-N-1之前的分组再进行确认。所以ACK字段的所有可能值为[ k-5 , k-1 ]。

 

P27:

a. 序号是207,源端口号是302,目的端口号是80。(207 = 127 + 80)

b. 如果第一个报文段在第二个报文段之前到达,在第一个到达报文段的确认中,确认号是207,源端口是80,目的端口号是302。

c. 如果第二个报文段在第一个报文段之前到达,在第一个到达报文段的确认中确认号是127。

d. 

 计算机网络自顶向下第三章习题

 

P40:

a. TCP慢启动运行时的时间间隔为[1 , 6]和[23 , 26]。

b. TCP拥塞避免运行时的时间间隔为[6 , 16]和[17 , 22]。

c. 在第16个传输轮回之后报文段的丢失是根据3个冗余ACK检测出来的。因为拥塞窗口长度没有降到1个MSS而是减半。

d. 在第22个传输轮回之后报文段的丢失是根据超时检测出来的。因为拥塞窗口长度降到了1个MSS。

e. 在第1个传输轮回里,ssthresh的初始值设置成32个MSS,因为在第6轮传输时到达了阈值32。然后拥塞窗口开始以线性速度爬升,直到在第16轮传输后出现3个冗余ACK。

f. 在第18个传输轮回里,ssthresh的值被设置成21个MSS,因为当第16个周期丢包事件发生时,拥塞窗口值为42个MSS,所以ssthresh的值被设置成0.5 × cwnd = 21 × MSS。

g. 在第24个传输轮回里,ssthresh的值被设置成14.5个MSS,因为当第22个周期丢包事件第二次发生时,拥塞窗口值为29个MSS,所以ssthresh的值被设置成0.5 × cwnd = 14.5 × MSS。

h. 在前6个传输周期中已经发送了1 + 2 + 4 + 8 + 16 + 32 = 63 个报文段,第7个传输轮回要发送32 + 1 = 33个报文段,即第64 - 96个报文段,所以第70个报文段在第7个传输轮回中发送。

i. 在第26个传输轮回时,拥塞窗口值为8个MSS,因此通过收到3个冗余ACK检测出有分组丢失时ssthresh的值被设置成0.5 × cwnd = 4 × MSS。拥塞窗口长度应当为4 + 3 = 7个MSS。

j. 假定使用TCP Tahoe(不管是发生超时指示的丢包事件,还是发生3个冗余ACK指示的丢包事件,都无条件地将拥塞窗口减至1个MSS,并进入慢启动阶段),并假定在第16个传输轮回收到3个冗余ACK。在第19个传输轮回,ssthresh的值被设置成21个MSS,因为当第16个周期丢包事件发生时,拥塞窗口值为42个MSS,所以ssthresh的值被设置成0.5 × cwnd = 21 × MSS。但是此时拥塞窗口值为1个MSS。

k. 第17个传输轮回到第21个轮回分别传送了1 + 2 + 4 + 8 + 16 = 31个分组,第22个轮回传送分组为阈值21个,所以一共传送了52个分组。