答案解析:
(1) 在进行文件传输时,FTP 的客户与服务器之间要建立两个并行的 TCP 连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过该控制连接发送给服务器的控制进程,但控制连接并不用来传输文件。实际用于传输文件的是数据连接。服务器的控制进程在接收到FTP客户发送来的文件传输请求后就创建数据传送进程和数据连接,用来连接客户和服务器的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭数据传送连接并结束运行。
第一问。FTP的控制连接是持久的。
第二问。FTP的数据连接是非持久的。
第三问。H登录FTP服务器时,建立的TCP连接是控制连接。
(2) 第一问。FTP是基于TCP的,建立TCP连接的三次握手的过程如下:
建立TCP连接时,三次握手中第一次握手需要消耗一个序号,第三次握手允许携带数据。建立数据连接时,选择的初始序号为100,因此,发送文件F时,第一个字节的序号为100+1=101。
因此,H通过数据连接发送F时,F的第一个字节序号是101。
第二问。FTP是基于TCP的,释放TCP连接的四次握手的过程如下:
释放TCP连接前,已经完成文件F的传送,文件F的大小为18000B,占用从101开始的18000个序号,即101~18100,
释放TCP连接时,第一次挥手需要消耗一个序号,即seq = u = 18101,第二次挥手ack= u +1=18102。
因此,在断开数据连接的过程中,FTP发送的第二次挥手的ACK序号是18102。
(3) 发送方维持一个拥塞窗口 (congestion window, cwnd),拥塞窗口的大小取决于网络的拥塞程度,并且动态地变化。发送方让自己的发送窗口等于拥塞窗口。
发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。
最大报文段长度 (maximum segment size, MSS) 是 TCP 协议的一个选项,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度(不包括报文段头)。
慢开始算法
开始时,将拥塞窗口设置为一个 MSS 的数值,每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个 MSS 的数值。可以分析出,每经过一个传输轮次 (transmission round),拥塞窗口大小加倍,逐渐增大到拥塞窗口的数值,一个传输轮次所经历的时间就是一个往返时间 RTT。
拥塞避免算法
每经过一个往返时间将发送方的窗口加 1 MSS。只要发送方判断网络出现拥塞,就将慢开始门限 ssthresh 设置为出现拥塞时发送方窗口值的一半,然后执行慢开始算法。
|
发送方每收到一个对新的报文段的确认后拥塞窗口大小变化 |
发送方每经过一个轮次后拥塞窗口大小变化 |
慢开始算法 |
拥塞窗口大小增加至多 1 个 MSS。若拥塞窗口大小未达到拥塞窗口阈值,则拥塞窗口大小增加 1 个 MSS;若拥塞窗口大小达到拥塞窗口阈值,则拥塞窗口大小不变。 |
本轮次拥塞窗口大小是上一个轮次拥塞窗口大小的两倍且不超过拥塞窗口阈值。当前轮次的拥塞窗口 = min{2×上一轮轮次的拥塞窗口, ssthresh} |
拥塞避免算法 |
若已发送报文段不是该轮次最后一个报文段,则拥塞窗口大小不变;若已发送报文段是该轮次最后一个报文段,则拥塞窗口大小增加 1 个 MSS。 |
本轮次拥塞窗口大小在上一个轮次拥塞窗口大小的基础上增加 1 个 MSS。当前轮次的拥塞窗口 = 上一轮轮次的拥塞窗口 + 1 MSS |
接下来对本题进行分析。
TCP 连接建立后,初始时,cwnd = 1 MSS。文件F大小为18000B的,MSS=1000B,文件F大小为18 MSS。
第一个 RTT 主机H将文件F第1个 MSS 发送出去,F初始序号为101且MSS=1000B,即将101~1100号字节发送出去,主机H得到肯定应答后,即收到确认序号为1101的确认段时,调整当前拥塞窗口大小为上一轮次拥塞窗口大小的两倍,即调整 cwnd = 2 MSS。
第二个 RTT 主机H将文件F第2、3个 MSS 发送出去,F初始序号为101且MSS=1000B,即将1101~2100、2101~3100号字节发送出去,主机H得到肯定应答后,即收到确认序号为2101、3101的确认段时,调整当前拥塞窗口大小为上一轮次拥塞窗口大小的两倍,即调整 cwnd = 4 MSS。此时 cwnd 到达拥塞控制初始阈值为4MSS,转而是使用拥塞避免算法。
第三个 RTT 主机H将文件F第4、5、6、7个 MSS 发送出去,F初始序号为101且MSS=1000B,即将3101~4100、4101~5100、5101~6100、6101~7100号字节发送出去,主机H得到肯定应答后,即收到确认序号为4101、5101、6101、7101的确认段时,调整当前拥塞窗口大小为上一轮次拥塞窗口大小加1MSS,即调整 cwnd = 5 MSS。
第四个 RTT 主机H将文件F第8、9、10、11、12个 MSS 发送出去,F初始序号为101且MSS=1000B,即将7101~8100、8101~9100、9101~10100、10101~11100、11101~12100号字节发送出去,主机H得到肯定应答后,即收到确认序号为8101、9101、10101、11101、12101的确认段时,调整当前拥塞窗口大小为上一轮次拥塞窗口大小加1MSS,即调整 cwnd = 6 MSS。
第五个 RTT 主机H将文件F第13、14、15、16、17、18个 MSS 发送出去,F初始序号为101且MSS=1000B,即将12101~13100、13101~14100、14101~15100、15101~16100、16101~17100、17101~18100号字节发送出去,主机H得到肯定应答后,即收到确认序号为13101、14101、15101、16101、17101、18101的确认段时,调整当前拥塞窗口大小为上一轮次拥塞窗口大小加1MSS,即调整 cwnd = 7 MSS。此时文件F传输完毕。
根据上述分析,可画出如下示意图。
第一问。F发送过程中,当H收到确认序号为2101的确认段时,处于第二个RTT范围内,此时使用的是慢开始算法。在慢开始算法中,发送方每收到一个对新的报文段的确认后,拥塞窗口大小增加至多 1 个 MSS。若拥塞窗口大小未达到拥塞窗口阈值,则拥塞窗口大小增加 1 个 MSS;若拥塞窗口大小达到拥塞窗口阈值,则拥塞窗口大小不变。第一个RTT结束时,cwnd = 2 MSS,第二个 RTT 中,主机H将文件F第2个 MSS 发送出去,F初始序号为101且MSS=1000B,即将1101~2100号字节发送出去,主机H得到肯定应答后,即收到确认序号为2101的确认段时,此时cwnd = 2 MSS<4MSS,未达到拥塞控制初始阈值,拥塞窗口大小增加 1 个 MSS,即达到3MSS。
因此,F发送过程中,当H收到确认序号为2101的确认段时,H的拥塞窗口调整为3 MSS。
第二问。F发送过程中,当H收到确认序号为7101的确认段时,处于第三个RTT范围内,此时使用的是拥塞避免算法。在拥塞避免算法中,发送方每收到一个对新的报文段的确认后,若已发送报文段不是该轮次最后一个报文段,则拥塞窗口大小不变;若已发送报文段是该轮次最后一个报文段,则拥塞窗口大小增加 1 个 MSS。当H收到确认序号为7101的确认段时,表示第三个RTT最后一个报文段被接收,第二个RTT结束时cwnd = 4 MSS,第三个RTT结束时在此基础上增加1MSS,达到 5 MSS。
因此,F发送过程中,当H收到确认序号为7101的确认段时,H的拥塞窗调整为5 MSS。
(4) 第一问。根据 (3) 的分析,从请求建立数据连接开始,到确认F已被服务器全部接收为止,需要经过6个RTT,其中第1个RTT用于建立连接的第一次和第二次握手,第三次握手携带数据,后5个RTT用于传输数据。
为了简化模型,假设同一个TCP段的发送和确认在同一个RTT内完成,可画出如下示意图。
因为RTT=10ms,6RTT=60ms,H从请求建立数据连接开始,到确认F已被服务器全部接收为止,至少需要60ms。
第二问。期间应用层传输数据量为文件F的大小18000B,根据第一问的分析,该传输过程至少需要60ms。因此,应用层数据平均发送速率是18000B/60ms=2.4Mbps。
登录后提交答案