计算机网络 - 第六章习题 联系客服

发布时间 : 星期四 文章计算机网络 - 第六章习题更新完毕开始阅读0b9a269d011ca300a7c39098

第六章

1、在我们的图6-2所示传输原语例子中,LISTEN是一个阻塞调用。试问这是必要的吗?如

果不是,请解释如何有可能使用一个非阻塞的原语。与正文中描述的方案相比,你的方案有什么优点?

2、传输服务原语假设在两个端点之间建立连接的过程是不对称的,一端(服务器)执行

LISTEN,而另一端(客户端)执行CONNECT。然而,在对等应用中,比如BitTorrent那样的文件共享系统,所有的端点都是对等的。没有服务器或客户端功能之分。试问如何使用传输服务原语来构建这样的对等应用?

3、在图6-4所示的底层模型中,它的假设条件是网络层的分组有可能会丢失,因此,分组

必须被单独确认。假如网络层是百分之百可靠的,它永远不会丢失分组,那么图6-4需要做什么修改吗?如果需要的话?

4、在图6-6的两部分中,有一条注释说明了SERVER_PORT在客户和服务器中必须相同。

试问为什么这一条如此重要?

5、在Internet文件服务器例子中(图6-6 ),除了服务器端的监听队列为满之外,试问还有其他原因能导致客户机的connect()系统调用失败吗?假设网络完美无缺。

6、评判一个服务器是否全程活跃,或者通过进程服务器来按需启动它的一个标准是它所提供服务的使用频率。试问你能想出作出这一决定的任何其他标准吗?

7、假设采用时钟驱动方案来生成初始序列号,该方案用到了一个15位宽度的时钟计数器。

并且,每隔1OOms时钟滴答一次,最大数据包生存期为60s。请问,每隔多久需要重新同步一次?

(a)在最差情况下。

(b)当数据每分钟用掉240个序列号的时候。

8、试问,为什么最大分组生存期T必须足够大,大道确保不仅数据包本身而且它的确认也

消失在网络中?

9、想象用两次握手过程而不是三次握手过程来建立连接。换句话说,第三个消息不再是要求的。试问现在有可能死锁吗?请给出一个例子说明存在死锁,或者证明死锁不存在。 10、想象一个广义的n-军队对垒问题,在这里任何两支蓝军达成一致意见后就足以取得胜利。试问是否存在一个能保证蓝军必赢的协议?

11、请考虑从主机崩溃中恢复的问题(图6-18)。如果写操作和发送确认之间的间隔可以设置得相对非常小,那么,为了使协议失败的概率最小,试问两种最佳的发送端-接收端策略是什么?

12.在图6-20中,假设加入了一个新的流E,它的路径为从R1到R2,再到R6。试问对于5个流的最大-最小带宽分配有什么变化?

13.请讨论信用协议与滑动窗口协议的优缺点。

14.拥塞控制的公平性方面有一些其他的策略,它们是加法递增加法递减(AIAD,AdditiveIncrease Additive Decrease)、乘法递增加法递减(MIAD,Multiplicative Increase Additive Decrease )、乘法递增乘法递减(MIMD,Multiplicative Increase Multiplicative Decrease )。请从收敛性和稳定性两个方面来讨论这三项政策。

15.试问,为什么会存在UDP?用户进程使用原始IP数据包还不够吗? 16.请考虑一个建立在UDP之上的简单应用层协议,它允许客户从一个远程服务器获取文件,而且该服务器位于一个知名地址上。客户端首先发送一个请求,该请求中包含了文件名;然后服务器以一个数据包序列作为响应,这些数据包中包含了客户所请求的文件的不同部分。为了确保可靠性和顺序递交,客户和服务器使用了停一等式协议。忽略显然存在的性能问题,试问你还能看得出这个协议存在的另一个问题吗?请仔细想一想进程崩溃的可能性。

17.一个客户通过一条1 Gbps的光纤向100千米以外的服务器发送一个128字节的请求。 试问在远过程调用中这条线路的效率是多少?

18.继续考虑上一个问题的情形。对于给定的1 Gbps线路和1 Mbps线路两种情况,请计算最小的可能响应时间。试问由此你得出了什么结论?

19. UDP和TCP在传递消息时,都使用了端口号来标识接收方实体。请给出两个理由说明为什么这两个协议要发明一个新的抽象ID(端口号),而不用进程ID?在设计这两个协议的时候,进程ID早已经存在。

20.一些RPC实现为客户端提供了一个选项,使用实现在UDP之上的RPC还是使用实现在TCP之上的RPC。试问在什么样的条件下,客户端更喜欢使用基于UDP的RPC?在什么条件下,他或许更喜欢使用基于TCP的RPC?

21.考虑两个网络N1和N2,在源端A和目的端D之间有相同的平均延迟。在N1中,不同的数据包所经历的延迟是均匀分布,且最大延迟为10秒;而在N2中,99%的数据包所经历的延迟都小于1秒,且没有最大延迟上界。请讨论在这两种情况下如何用RTP来传输实时音频/视频流。

22.试问最小TCP MTU的总长度是多少?包括TCP和IP的开销,但是不包括数据链路层的开销。

23.数据报的分段和重组机制由IP来处理,对于TCP不可见。试问,这是否意味着TCP不用担心数据错序到达的问题?

24. RTP被用来传输CD品质的音频,这样的音频信号包含一对16位的采样值,采样的频率为每秒钟44100次,每个采样值对应于一个立体声声道。试问RTP每秒钟必须传输多少个数据包?

25.试问有可能将RTP代码放到操作系统内核中,与UDP代码放在一起吗?请解释你的答案。 26.主机1上的一个进程己经被分配了端口p,主机2上的一个进程也己经被分配了端口q,试问这两个端口之间有可能同时存在两个或者多个TCP连接吗?

27.在图6-36中,我们看到除了32位的确认号字段外,在第四个字还有一个ACK标志位。试问这个标志位有额外的意义吗?为什么有?或者为什么没有?

28. TCP段的最大有效载荷为65495字节。试问为什么选择如此奇怪的数值? 29.描述从图6-39中进入SYN RCVD状态的两种途径。

30.请考虑在一条往返时间为10毫秒的无拥塞线路上使用慢速启动算法的效果。接收窗口为24 KB,最大段长为2 KB。试问需要多长时间才能首次发送满窗口的数据?

31.假设TCP的拥塞窗口被设置为18 KB,并且发生了超时。如果接下来的4次突发传输 全部成功,试问拥塞窗口将达到多大?假设最大段长为1 KB o

32.如果TCP往返时间RTT的当前值是30毫秒,紧接着分别在26, 32, 24毫秒确认到达, 那么,若使用Jacobson算法,试问新的RTT估计值为多少?请使用α=0.9。 33.一台TCP机器正在通过一条1 Gbps的信道发送满窗口的65535字节数据,该信道的单向延迟为10毫秒。试问可以达到的最大吞吐量是多少?线路的效率是多少?

34.一台主机在一条线路上发送1500字节的TCP有效载荷,最大数据包生存期为120秒,要想不让序号回绕,试问该线路的最快速度为多少?要考虑TCP、IP和以太网的开销。假设可以连续发送以太网帧。

35.为了解决IPv4的局限性,主要经过IETF的努力,导致了IPv6的设计,但仍然有很多人不愿意采用这个新版本。然而,却没有人做出解决TCP限制所需要的重大努力。请解释为什么会这样。

36.在一个网络中,最大段长为128字节,段的最大生存期为30秒,序号为8位,试问每个连接的最大数据率是多少?

37.假设你正在测量接收一个段所需要的时间。当发生一个中断时,你读出系统时钟的值(以毫秒为单位)。当该段被完全处理后,你再次读出时钟的值。你测量的结果是270000次为0毫秒,730 000次为1毫秒。试问接收一个段需要多长时间? 38.一个CPU执行指令的速率为1000 MIPS。数据复制可以按每次64'位来进行,每个字的复制需要花费10条指令。如果一个入境数据包要被复制4次,试问这个系统能处理一条1 Gbps的线路吗?为了简单起见,假设所有的指令,包括读或者写内存的指令,都以1000 MIPS的全速率运行。

39.为了避开当序号回绕时老的数据包仍然存在这个问题,可以使用64位序号。然而,从理论上讲,光纤的运行速度可以达到75 Tbps。试问在未来的75 Tbps网络中使用64位序号,数据包的最大生存期为多少才能确保不会发生回绕问题?假设每个字节都有自己的序号,像TCP那样。

40.在6.6.5节中,我们计算了主机以80 000包/秒的速度往一条千兆线路发送,只使用了6250指令,留下一半的CPU时间给应用程序。这里计算时假设数据包大小为1500字节。针对ARPANET大小的数据包(128字节)重复上述计算。在这两种情况下,假设给出的数据包大小均包括了所有开销。

41.对于一个运行在4000千米距离上的1 Gbps网络,限制因素是延迟而并非带宽。请考虑这样一个MAN,源端和接收方之间的平均距离为20千米。试问多大的速率使得1 KB数据包的传输延迟等于光速的往返延迟?

42.试计算下列网络的带宽一延迟乘积:(1) T1 (1.SMbps);(2)以太网(10 Mbps );(3) T3 (45 Mbps)和(4 ) STS-3 (155 Mbps )。假设RTT为100毫秒。请回忆TCP头有16位保留用作窗口大小(Window Size )。根据你的计算,试问它有什么隐含的意义吗?

43.对于地球同步卫星上的一条50 Mbps信道,试问它的带宽一延迟乘积是多少?如果所有的数据包都是1500字节(包括开销),试问窗口应该为多大(按数据包为单位)?

44.图6-6所示的文件服务器远非完美,它在许多方面都还可以改进。请作以下修改: (a)给客户增加第三个参数,它指定了一个字节范围。 (b)给客户增加一个标志w,允许将文件写入服务器上。

45.所有的网络协议都需要的一种常见功能是处理消息。回想一下,协议处理消息通过添加/拆除头来实现的。有些协议还可能将一个单一消息分解成多个片段,在稍后再把这些多个片段组合成一个单一消息。为此,请设计并实施一个消息管理库。该库提供了创建一个新消息、附加一个消息头到消息上、从消息上剥离消息头、将一个消息分成两个消息、将两个消息组合成一个消息,以及保存消息副本功能。你的实现必须尽量减少把数据从一个缓冲区复制到另一个缓冲区的操作。至关重要的是处理消息的操作不应该触碰到消息的数据,而只处理消息指针。

46.设计和实现一个聊天系统,它允许多组用户同时进行聊天活动。有一个聊天协调器位于某一个知名的网络地址上,它使用UDP与聊天客户通信,并且为每个聊天会话建立聊天服务器,而且还维护了一个聊天会话目录。每个聊天会话都有一个聊天服务器。聊天服务器使用TCP与客户端进行通信。聊天客户端允许用户启动、加入或者离开一个聊天会话。请设计和实现聊天协调器、聊天服务器和聊天客户端代码。