《计算机网络》第五章 作业参考答案 下载本文

第五章 作业参考答案

5-01试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区

别?为什么运输层是必不可少的?

答:运输层在协议栈中的地位和作用:从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络边缘的两个主机进行端到端的通信时,只有位于网络边缘的主机有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。

运输层的通信和网络层的通信区别:运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信。

从网络层来说,通信的两端是两个主机,IP数据报的首部明确地标志了这两个主机的IP地址,但两个主机进行通信实际上就是两个主机中的应用进程互相通信。IP协议虽然能把分组送到目的主机,但这个分组还停留在主机的网络层而没有交付主机中的应用进程。从运输层的角度看,通信的真正端点并不是主机而是主机中的应用进程,也就是说,端到端的通信是应用进程之间的通信。因此,运输层是必不可少的。

6-10 假定要从已知的URL获得一个万维网文档。若该万维网服务器的IP地址开始时并不知道。试问:除HTTP外,还需要什么应用层协议和传输层协议?

答:应用层协议需要的是DNS。

运输层协议需要的是UDP(DNS使用)和TCP(HTTP使用)。 5-08 为什么说UDP是面向报文的,而TCP是面向字节流的?

答:发送方UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。因此,UDP是面向报文的。

虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。TCP根据对方给出的窗口值和当前网络拥塞的程度来决定发送的一个报文段应包含多少个字节。如果应用进程传送的数据块太长,TCP就可以把它划分短一些再传送,如果应用进程一次只发来一个字节,TCP也可以等待积累足够多的字节再构成报文段传送出去。因此,TCP是面向字节流的。

5-15 使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传送数据文件时会有

什么问题?

答:TCP是可靠传输协议,当实时语音数据传输出现差错时,TCP协议要对差错部分进行重传,而在实时话音通信中,我们宁可丢掉几个分组,也不愿意收到太迟到的分组,因此TCP不能实现实时语音数据的传输。若要对实时语音数据进行实时传输,则必须使用UDP协议。

使用UDP传送数据文件时,如果出现了差错,UDP仅仅是少收了这个出错的报文段,并不通知发送方重传,这样就不能保证正确地传送数据。因此在传送数据文件时采用TCP来传送。

5-16 在停止等待协议中如果不使用编号是否可行?为什么?

答:不可行。

传输分组和确认分组都必须进行编号,才能明确哪个分组得到确认,所以停止等待协议中不使用编号是不可行的。

5-17在停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄地丢弃它而其他什么

也没做)是否可行?试举出具体的例子说明理由。

答:不可行。

若对收到的重复报文不予理睬,如下图,对收到重复帧,若不重传确认,发送端将不断重传M1。

A B 发送M1

超时重传M1 不予理睬 不予理睬确认M1

超时重传M1 t t 5-30 设TCP使用的最大窗口为65535字节,而传输信道不产生差错,带宽也不受限制。若

报文段的平均往返时间为20ms,问所能得到的最大吞吐量是多少? 解:若忽略发送时延,则:

最大吞吐量=最大数据率=最大窗口×8/平均往返时间=65535×8bit/20×10-3s≈26.2Mb/s。 5-31 通信信道带宽为1Gb/s,端到端传播时延为10ms。TCP的发送窗口为65535字节。试

问:可能达到的最大吞吐量是多少?信道的利用率是多少? 解:由题意的:

一个窗口的发送时延TD=发送窗口×8/信道带宽=65535×8bit/109b/s=0.00052428s≈0.524ms,往返时间RTT=端到端传播时延×2=10ms×2=20ms,因此

最大吞吐量=发送窗口×8/(TD+RTT)=65535×8bit/(0.524ms+20ms)≈25.5Mb/s 信道利用率U=TD/(TD+RTT)= 0.524s/(0.524+20)s≈2.55% 或信道利用率U=25.5Mbps/1Gps=2.55%

5-33 假定TCP在开始建立连接时,发送方设定超时重传时间是RTO=6秒。

(1)当发送方收到对方的连接确认报文段时,测量出RTT样本值为1.5秒。试计算现

在的RTO值。

(2)当发送方发送数据报文段并收到确认时,测量出RTT样本值为2.5秒。试计算现

在的RTO值。 解:RTO值计算如下:

(1)当第一次测量到RTT样本时,RTTs取值为该RTT样本值,RTTD取值为该RTT样本值的一半,因此,RTTs=1.5s,RTTD=1.5s/2=0.75s

于是,RTO=RTTs+4×RTTD=1.5+4×0.75=4.5s (2)新的RTT样本值为2.5s,则

新的RTTs=(1-α)×(旧的RTTs)+α×(新的RTT样本)=(1-0.125)×1.5+0.125×2.5=1.625s 新的RTTD=(1-β)×(旧的RTTD)+β×|RTTs-新的RTT样本|=(1-0.25)×0.75+0.25×|1.625-2.5|=0.78125s

于是,RTO=RTTs+4×RTTD=1.625+4×0.78125=4.75s

5-34 已知第一次测得TCP的往返时间RTT是30 ms。接着收到了三个确认报文段,用它

们测量出的往返时间样本RTT分别是:26ms,32ms和24ms。设α=0.1。试计算每一次的新的加权平均往返时间值RTTs。讨论所得出的结果。

解:第一次测得RTT样本时,RTTs取值为该RTT样本值,因此,RTTs=30ms。 根据公式:新的RTTs=(1-α)×(旧的RTTs)+α×(新的RTT样本) 第一次算出:RTTs=(1-0.1)×30+0.1×26=29.6ms 第二次算出:RTTs=(1-0.1)×29.6+0.1×32=29.84ms 第三次算出:RTTs=(1-0.1)×29.84+0.1×24=29.256ms

三次算出加权平均往返时间分别为29.6,29.84和29.256ms。

可以看出,RTT的样本值变化多达(30-24)/30=20%时,加权平均往返时间RTTs的变化却很小。

5-37 在TCP的拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?这里每一种算

法各起什么作用? “乘法减小”和“加法增大”各用在什么情况下?

答:慢开始算法:在主机刚刚开始发送报文段时,先将拥塞窗口设置为一个最大报文段MSS的数值,在每收到一个对新的报文段的确认后,将当前拥塞窗口值增加一倍。用这种方法可以逐步增大发送方的拥塞窗口,使分组注入到网络的速率更加合理。

拥塞避免算法:当拥塞窗口值大于等于慢开始门限值时,停止使用慢开始算法而改用拥塞避免算法。此时,每经过一个往返时间RTT就把发送方的拥塞窗口值加1,而不是加倍。这样,拥塞窗口按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。

快重传算法:当接收方每收到一个失序的报文后,就立即发出重复确认,当发送方连续收到三个重复确认,就立即重传丢失的报文段而不必等待为该报文段设置的重传计时器的到期。

快恢复算法:当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把慢开始门限值减半,即设置为当前拥塞窗口的一半,这是为了预防网络发生拥塞。然后把拥塞窗口值设置为慢开始门限减半后的数值,开始执行拥塞避免算法。

乘法减小:是指不论在慢开始阶段还是拥塞避免阶段,只要出现超时(即很可能出现网络拥塞),就把慢开始门限值设置为当前的拥塞窗口的一半。当网络频繁出现拥塞时,慢开始门限值就下降得很快,以大大减少注入到网络中的分组数。

加法增大:是指执行拥塞避免算法后,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。 5-38 设TCP的ssthresh的初始值为8(单位为报文段)。当拥塞窗口上升到12时网络发生

了超时,TCP使用慢开始和拥塞避免。试分别求出第1轮次到第15轮次传输的各拥塞窗口大小。你能说明拥塞控制窗口每一次变化的原因吗? 答:拥塞窗口大小及变化的原因:

第1传输轮次,TCP执行慢开始算法,拥塞窗口cwnd是1;

第2传输轮次,ssthresh初始值为8,当前cwnd<8,TCP执行慢开始算法,拥塞窗口倍增是2;

第3传输轮次,当前cwnd<8,TCP执行慢开始算法,拥塞窗口倍增是4; 第4传输轮次,当前cwnd<8,TCP执行慢开始算法,拥塞窗口倍增是8; 第5传输轮次,当前cwnd=8,TCP执行拥塞避免算法,拥塞窗口加1是9;

第6传输轮次,8<当前cwnd<12,TCP执行拥塞避免算法,拥塞窗口加1是10; 第7传输轮次,8<当前cwnd<12,TCP执行拥塞避免算法,拥塞窗口加1是11; 第8传输轮次,8<当前cwnd<12,TCP执行拥塞避免算法,拥塞窗口加1是12; 第9传输轮次,当前cwnd=12,网络发生超时,执行乘法减小算法,新的ssthresh值为当前cwnd值的一半,即新的ssthresh值为6,TCP执行慢开始算法,拥塞窗口是1;

第10传输轮次,当前cwnd<6,TCP执行慢开始算法,拥塞窗口倍增是2; 第11传输轮次,当前cwnd<6,TCP执行慢开始算法,拥塞窗口倍增是4;

第12传输轮次,当前cwnd<6,TCP执行慢开始算法,拥塞窗口增加到当前的ssthresh

值是6;

第13传输轮次,当前cwnd=6,TCP执行拥塞避免算法,拥塞窗口加1是7; 第14传输轮次,6<当前cwnd<12,TCP执行拥塞避免算法,拥塞窗口加1是8; 第15传输轮次,6<当前cwnd<12,TCP执行拥塞避免算法,拥塞窗口加1是9。