计算机网络习题解答 下载本文

连接请求重传连接请求建立连接通信释放连接AB...延迟到达第一次握手连接请求确认并建立连接,分配资源超时拆链,避免错误连接

当TCP一端释放连接后,这端不能发送报文段了,但可以对对方的报文段进行确认。

而TCP另一端能够继续发送报文段。

3. 网络拥塞的主要成因有哪些?它们带来的危害分别有哪些?有哪几种网络拥塞控制方法?

答:网络拥塞的主要成因及其危害是:

① 当分组到达速率超过路由器输出链路的容量时,路由器将要缓存输入但

无法立即输出的分组。这导致第一种危害,即当分组以大于或接近链路容量的速率到达时,分组将承受很大的时延。

② 当分组到达某路由器时,当有限的缓存已满,分组将被丢弃。这导致发

送方因为分组被路由器丢弃而进行了不必要的重传,引起路由器利用其链路带宽转发不必要的分组拷贝。

③ 每当有一个分组在某路由器上被丢弃时,传输路径上的前几跳路由器的

工作都是徒劳的。 网络拥塞控制方法是:

① 端到端的拥塞控制:该方法不从网络得到明确的反馈,而是设法从端系统

根据观察到的时延/丢失推断出拥塞,这是TCP所采用的方法。 ② 网络辅助的拥塞控制: 路由器为端系统提供反馈,如用一个bit指示一条

链路出现拥塞,指示发送方的发送速率。

4. 分析产生网络拥塞条件的公式(5-6),式中的资源通常包括哪些东西?该公式能够为我们设计和解决网络管理和网络安全方案和问题提供哪些思路?

答:(5-6)式中的资源可以包括了带宽、缓存、CPU甚至打印机等网络可以共享的东西。

从(5-6)式可知,任意一种或多种资源的需求失衡都会导致拥塞的发生。该式可以为我们提供如下思路:解决网络拥塞的问题可以从寻找使上述不等式不

忽略该确认,不发送第三次握手第二次握手

成立的条件着手。如一方面减少对资源的需求或增加可用资源,另一方面许多网络攻击行为都致力于消耗网络某环节的最为紧缺的资源,从而以较少的代价导致系统崩溃。

5-19讲

1. TCP拥塞控制的基本思想是什么?有哪些基本拥塞控制机制?试简要阐述它们的基本思想。

答:TCP拥塞控制的基本思想是,当出现丢包事件时,迅速减小拥塞窗口的长度使发送方降低其发送速率;而一般情况下则谨慎增加拥塞窗口的长度使发送速率缓慢增长。

TCP的拥塞机制是:慢启动和加性增、乘性减。

慢启动的基本思想是:从较小的拥塞窗口出发,逐步试探出网络状态,而试探的增长速率以要指数的速度快速增加,直到接近某个阈值。

加性增的基本思想是:在拥塞避免阶段,TCP发送方的发送速率以线性增长的速率进行发送。

乘性减的基本思想是:发现丢包后,TCP急剧减小拥塞窗口的措施。当发生丢包事件时,将阈值=拥塞窗口/2并且拥塞窗口减少至1报文段,再进入慢启动阶段;对于接收到3个冗余ACK事件,先将拥塞窗口减半,再线性增加拥塞窗口(快速恢复)。

2. 考虑下图中TCP窗口长度作为时间的函数。假设TCP Reno是一个经历如上所示行为的协议,回答下列问题。在各种情况中,请简要地论证你的回答

4540?)?35??¨±(30è?25¤3ú?20°′?è15μó105002468101214161820222426传输轮回 a. 指出当TCP慢启动运行时的时间间隔。 b. 指出当TCP拥塞避免运行时的时间间隔。 c. 在第16个传输轮回之后,报文段的丢失是根据3个重复确认还是根据超时检测出来的?

d. 在第22个传输轮回之后,报文段的丢失是根据3个重复确认还是根据超

时检测出来的?

e. 在第一个传输轮回里,ssthresh的初始值设置为多少? f. 在第18个传输轮回里,ssthresh的值设置为多少? g. 在第24个传输轮回里,ssthresh的值设置为多少? h. 第70个报文段在哪一个传输轮回内发送?

i. 假定在第26个发送轮回后,通过收到3个冗余ACK检测出有分组丢失,拥塞的窗口长度和ssthresh的值将应当是多少? 答:a. 慢启动的时间间隔是[1,6]和[23,26]。 b. TCP拥塞避免的时间间隔为[6,16]和[17,22]。

c. 在第16个传输轮回之后,报文段丢失是根据3个重复确认检测出来的,因为如果是超时检测出丢包,拥塞窗口的长度将为降为1。

d. 在第22个传输轮回上,报文段的丢失是根据超时检测出来的,因为拥塞窗口降为1,并进入了满启动阶段。

e. 在第一个传输轮回里,ssthresh的初始值是32。此时是慢启动停止,拥塞避免开始的拥塞窗口的长度。

f. 在16轮检测出3个冗余确认,拥塞窗口为42, 所以在18轮ssthresh的值是42/2=21.

g.在第22轮检测出丢包,拥塞窗口为29,在第24个传输轮回里,ssthresh的值是14(14.5的下界)。

h. 在第一个传输轮回里,发送了1个报文,在第2个轮回里发送了报文2-3,在第3个轮回里发送了报文4-7,在第4个轮回里发送了报文8-15,在第5个轮回里发送了报文16-31,在第6个轮回里发送了报文32-63,在第7个轮回里发送了报文 64-96.因此第70个报文在第7个轮回里进行了传输。 i.当丢包出现时阈值将被设置为当前拥塞窗口(8)的一半,即为4。拥塞窗口将被设置为新阈值+3,即为7。

3. 若通信信道带宽为1Gbps,两个端系统之间的时延为15ms,而TCP的发送窗口最大为65535字节。试计算:能达到的最大吞吐量是多少?信道的利用率是多少?

答:将通信信道看做数字管道,设最大吞吐量为S,两个端系统之间的往返时延RTT为15ms,协议最多只能发送RTT*S字节数。但由于窗口W的限制,一次最多只能发送填满窗口的数量:

W=RTT*S 因此

S=W/RTT=65536*8/(15*10-3)=34.953*106≈35Mbps。

此时,发送速率远比信信道带宽1Gbps小,此信道的利用率为:35Mbps/1000Mbps=3.5%。

4. 在5.6.3节我们讨论了这样的事实;一个应用程序能够打开多条TCP连接并获得较高吞吐量(或等价地一个较快的传输时间)。如果所有应用程序试图通过使用多条连接来改善它们的性能的话,将发生什么情况?让一个网络元素决定是否一个应用程序正在使用多条TCP连接,会遇到什么样的困难?

答:TCP的友好性,n个TCP连接通过速率为R的链路,每条TCP获得的传输速率为:R/n,因此如果所有用户都使用多条TCP连接来改善行能,那么获得速率将与其打开的连接的数目有关,数目越多,获得的速率越高。一个应用程序可以是多线程的,每个线程可以打开一个连接,而无法通过相应的方法判断某个线程是否属于某个程序,因此也无法确定该程序是否正在使用多条TCP连接。

6-20讲

1. 应用层协议的主要功能是什么?应用层协议与网络应用程序的关系是什么?应用层协议与运输层提供的服务能力有何关系?网络体系结构与应用程序体系结构之间有什么区别?

答:应用层协议的主要功能是:定义了运行在不同端系统上的应用程序进程之间如何交互传递报文,是为某一类应用进程提供通信服务的规则。

应用层协议只是网络应用程序中与其他端系统中应用层实体交互的那个部分。

应用层协议与运输层提供的服务能力关系是:应用层运行在运输层之上,运输层为应用层中的不同应用进程提供不同类型的多路复用/分解的运输服务。

网络体系结构是指各个层次及其协议的集合,某个网络的体系结构是确定的。包括应用程序的应用层通常位于其最高层。应用程序的体系结构由应用程序研发者设计,不同的网络应用可能采用不同的体系结构,如客户/服务器体系结构和对等方到对等方体系结构。

2. 与具有客户/服务器体系结构的系统相比,具有P2P体系结构的系统有哪些重要特点? 对于一个P2P文件共享应用, “一个通信会话不存在客户端和服务器端的概念”的说法正确吗?为什么?

答:与客户/服务器体系结构相比,P2P体系结构具有以下的重要特点:一是规模效益,结点数目越多,系统效率越高。二是动态性,对等结点频繁加入或者离开社区,这将导致系统一直处于重组的动荡中。三是异构性,对等方在物理特征和行为方面存在差异。四是自扩展性,随着用户数的增多,系统能力增强。

对于一个P2P文件共享应用, “一个通信会话不存在客户端和服务器端的概念”的说法不正确。尽管在P2P系统中,某结点可能同时具有客户和服务器两种功,但在一次具体会话中,仍会有请求服务的客户和提供服务的服务器。