计算机网络习题——八
- 在某网络中截获的数据如下图所示,请回答哪三个报文段是用来建立TCP连接的,经过分析并给出结论(结论给出No列中序号即可)。
- TCP的拥塞窗口cwnd大小与传输轮次n的关系如下所示:
(1) 分别指出慢开始阶段和拥塞避免阶段的时间间隔。
(2) 在第13轮次和第18轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段。
(3) 在第1轮次、第15轮次和第20轮次发送时,门限ssthresh分别被设置为多大?
- 假设主机甲通过TCP向主机乙发送数据,部分过程如下图所示。甲在t0时刻发送了一个序号seq=501、封装200 B数据的报文段段,在t1时刻收到乙发送的序号seq=601、确认序号ack_seq=501、接收窗口rcvwnd=500 B的段,则甲在未收到新的确认段之前可以继续向乙发送的字节序号范围是什么?(只有结论没有分析过程不得分)。
答
1、no:2,3,4
模型假设为:A向B建立连接
确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。(在可靠传输中一般置为1)
同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。
终止 FIN (FINish) —— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
序号1,所在的行中有FIN表示上一次的连接得到了释放。
而序号二,所在的行中有SYN表示这是一个连接的请求,即A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = 0,表明传送数据时的第一个数据字节的序号是 0。
序号三表示:B 的 TCP 收到连接请求报文段后,如同意,则发回确认。B 在确认报文段中应使 SYN = 1,使 ACK = 1,其确认号ack = 0+1,并自己选择一个序号 。
序号四表示:A收到了B的确认并且向B发送确认,因为不是请求所以没有SYN=1;
综上序号2、3、4报文段是用来建立TCP连接的。
2、
(1)
慢开始门限 ssthresh 的用法如下:
当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
分析表格可知,慢开始阶段:[1,5] [19,22]
拥塞避免阶段:[5,13] [14,18]
(2)当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门ssthresh 减半,但拥塞窗口 cwnd 现在不设置为 1,而是设置为慢开始门限 ssthresh 减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。而超时重传是慢开始门限 ssthresh 减半,cwnd设置为1.
所以分析得:
13轮次之后:收到三个重复的确认
18轮次之后:超时检测到丢失了报文段
(3)第1轮次门限ssthresh为:16
24/2=12
第15轮次为:12
第20轮次为:8
3、甲在t0时刻发送了一个序号seq=501、封装200 B数据的报文段段,在t1时刻收到乙发送的序号seq=601、确认序号ack_seq=501、接收窗口rcvwnd=500 B的段。因为甲收到乙的确认号为501与甲发送时的序号一样所以发生了数据的丢失,而甲收到确认号为501,接收窗口为500B,所以甲还可以发送的数据大小为500B,所以甲从701开始发500字节,所以范围为501~1000。