《计算机网络:自顶向下方法-课本课后习题和答案.docx》由会员分享,可在线阅读,更多相关《计算机网络:自顶向下方法-课本课后习题和答案.docx(14页珍藏版)》请在课桌文档上搜索。
1、计算机网络:自顶向下方法-课本课后习题答案(1-3)课后习题答案:Chapter1:Reviewquestions:1,4,11,13,15,16,18,19,23,25,261没有不同,在本文书中,“主机”和“终端系统”可以互换使用。终端系统包括PCs,工作站,Web服务器,电子邮件服务器,连接Internet的PDA,WebTV等。41通过电话线拨号调制解调器:住宅2通过电话线的DSL:住宅或小型办公室3光纤电缆:住宅4100MbPS交换以太网:公司5无线LAN:移动电话6蜂窝移动接入(例如TyAP):移动电话11电路交换网络可以为一个通话保证特定数量的端到端带宽。大多数现在分组交换网络(
2、包括Internet)可以提供所有端到端带宽保证。13在时间t发送主机开始传输。在tl二L/R1时,发送主机完成传输并且整个分组到达路由器(没有传播延迟)。因为路由器在时间tl拥有整个分组,所以它在时间tl开始向接收主机传输此分组。在时间t2=tl+L/R2,路由器完成传输并且接收主机接收整个分组(也没有传播延迟)。因此端到端延迟是LR1+LR2015a)可以支持两个用户因为每个用户需要一半的链路带宽。b)因为在传输过程中每个用户需要IMbPs,如果两个或更上用户同时传输,那么最大需要2Mbs。因为共享的链路的可用带宽是2Mbps,所以在链接之前没有排队延迟。然而,如果三个用户同时传输,那么需
3、要的带宽将是3Mbps,它大于共享链路的可用带宽,在这种情况下在链接前存在排队延迟。c)给定用户传输的概率是0.2。(.p3(p严d)所有三个用户同时传输的概率是=(0.2)3=0.0080因为当所有用户都传输时,队列增加,所以在队列增加的分数(它等于所有三个用户同时传输的概率)是0.008。16延迟组件是处理延迟,传输延迟,传播延迟和排队延迟。除了排队延迟是变化的,其它所有延迟都是固定的。18IOmsec;d/s;no;no19a) 500kbpsb) 64secondsc) 100kbps;320secondsIntemet协议栈中的5层从顶到底应用层,传输层,网络层,链路层和物理层。章节
4、1.5.1中概述了各自的主要职责。25路由器处理从第1层到第3层(这不完全准确,因为新型的传感器又是充当防火墙或缓冲组件,并且也处理第4层)。链路层交换机处理第1层到第2层。主机处理所有5层。26a)病毒需要某些人的互动形式来传播。典型的例子是电子邮件病毒b)蠕虫不需要用户复制。在感染的主机中的蠕虫扫描IP地址和端口号,寻找容易的进程进行感染。c)特洛伊木马隐藏在某些有用的软件之中。Problems:2,5,12,18,24a)电路交换网络将适合此描述的应用,因为此应用包含拥有可预测平滑带宽需求的长期会话。因为传输率已知并且不是爆炸性的,所以可以为每个应用会话电路预留带宽而没有非常大的浪费。此
5、外,我们不要关心建立和解除一个电路连接的开销,它们分摊给定义应用会话的较长时间。b)给定一个大量链接能力,网络需要拥塞控制机制。在最坏的情况下(很有可能拥塞),所有应用同时在一个或更多的特定网络链接上同时传输。但是,因为每个链接提供足够的带宽来处理应用数据率的总和,所以不会发生拥塞(非常少的排队)。a) dprop=m5秒.b) dL/R秒.c) dend-to-end(m/S+L/R)杪d)此比特刚离开HOStAe)第一个比特在链路中并且没有到达HOStBf)第一个个比特已经达到HoStBog)m=5s=cI。9(2.5IO8)=893R28X1O3km.12第一个传输的分组的排队延迟是0,
6、第二个传输的分组是L/R,一般地,对于第n个传输的分组来说,排队延迟是(11T)LR.因此,对于N个分组来说平均的延迟是:(LR+2LR+(N-1)LR)N=LRN(1+2+(N-I)二1.N(N-I)/(2RN)=(N-I)L(2R)注意:1+2+N=N(N+1)218a) 40,000bitsb) 40,000bitsc)链路的带宽延迟积是可以在链路中的最大比特数。d)1比特是250米长,它比一个足球场长1米。e)s/R247.5x106rrsec=5seca)从源主机到第一个分组交换机的时间=L5X1O使用“存储交换”分组交换,从源主机到目的主机移动该数据包的总共时间二5secX3hop
7、s=15secb)从源主机到第一个分组交换机移动第一个分组1.5103.rsec=InISeC的时间L5xl,第一台交换机接收的第二个分组的时间工第一个分组到达第二台交换机的时间=2Xlmsec=2msec,第2腌时,第二个分组能被第一台交换机全部收到。c)第一个分组到达目的主机的时间Jmsec3hops=3msec,在此之后,每ImS就收到一个分组,因此收到最后一个分组(第5000个分组)的时间二3msec+4999Imsec=5.002seco可以发现使用报文分段要小的多(差不多1/3)d)缺点:1)分组必须放在目的的序列中2)报文分段产生很多较小的数据包。因为不管分组的大小如何,头的大小
8、通常是相同的。使用分组分段,头比特的总数更多。Chapter 2:Reviewquestions:1,3,5,6,11,13,15,22,27,281Web:HTTP;文件传输:FTP;远程登录:Telnet;网络新闻:NNTP;e-mail:SMTP0初始通信的进程是客户端;等待连接的进程是服务器。目标主机的IP地址和目标套接字的端口号。应该使用UDP。通过UDP,传输可以在一个往返时间(RTT)中完成客户端向UDPSoCket发送传输请求,并且服务器向客户端的UDPSOCket返回应答。通过TCP,最少需要两个RTT一个是构建TCP连接,另一个是客户端发送请求,服务器返回应答。11与这些协
9、议相关的应用要求所有应用数据要按照正确的顺序接收而没有问隔。TCP提供这些服务而UDP则没有。13Web缓存器可以产生较接近用户或者用户主机连接的相同LAN的希望内容。Web缓存器可以降低所有对象的延迟,即使没有储存的对象,因为缓存降低了链路流量。15FTP使用两个平行的TCP连接,一个是发送控制信息(例如传输文件的清求)的连接和实际传输文件的连接。因为控制信息不在文件发送的连接上发送,所以FTP发送“带外”控制信息。22在P2P文件共享系统中的覆盖网络包括参与文件系统中的节点和节点之间的逻辑链接。如A和B之间存在一个半永久TCP连接,那么从节点A到节点B存在一个逻辑链接(在图理论中是一条边)
10、。覆盖网络不包括路由器。通过Gnutella,当一个节点想加入GnUtelIa网络时,它首先发现(带外)已经在网络中的一个或更多节点的IP地址。然后向这些节点发送加入消息。当节点收到确认时,它成为GnUtella网络中的一个成员。节点通过周期的刷新消息维持它们的逻辑链接。27使用UDP服务器,没有欢迎套接字,并且来自不同客户端的所有数据通一个套接字进入服务器。使用TCP服务器,存在一个欢迎套接字,并且每次客户端初始一个到服务器的连接,就创建一个新的套接字。因此,为了支持n个同时连接,服务将需要n+1个套接字。28对于TCP应用程序来说,只要客户端执行了,那么它就尝试与服务器初始化一个TCP连接
11、。如果TCP服务器没有运行,那么客户端将建立此连接失败。对于UDP应用程序来说,客户端不会在执行时立即初始化连接(或者尝试与UDP服务器通信)。Problems:9,249a)速率为R链路上传输对象大小为L的时间为L/R。平均时间是R分隔的对象的平均时间:=(900,000bits)(15,000,000bits/sec)=0.06sec在链路上的流量强度是(15requests/sec)(0.06msec/request)-0.9。因此,平均访问延迟是(0.06sec)(l-0.9)=0.6seconds0因此总共的平均响应时间是0.6sec+2sec=2.6secb)访问链路的流量强度降低
12、了40%,这是因为请求的40%在这个机构的网络中是满足的。因此平均访问延迟是(0.06scc)l-(0.6)(0.9)=0.13SeCOndS。响应时间基本是0如果请求满足缓冲区(这发生的概率是0.4);对于缓冲未命中的情况平均响应时间是013sec+2sec=2.13sec(这发生的概率是60%)o因此平均响应时间是(0.4)(0sec)+(0.6)(2.13sec)=1.278seconds24a)如果首先运行TCP客户端,那么客户端尝试与不存在的服务器进程建立TCP连接。TCP连接将建立失败。b)UDP客户端没有与服务器建立连接。因此,所有事情都运行正常如果你首先运行UDP客户端,然后运
13、行UDP服务器,再在键盘中输入某些输入。C)如果你使用不同的端口号,那么客户端将尝试与错误的进程或不存在的进程建立一个TCP连接。将发生错误。Chapter 3:Reviewquestions:3,4,6,8,11,14,15,17,183源端口号y,目的端口号x。4应用程序开发可能不想使用TCP的拥塞控制,拥塞控制可能扼杀在拥塞时的发送速率。通常IP电话和IP视频会议应用程序的设计者会选择让他们的应用程序运行在UDP上,因为他们想避免TCP的拥塞控制。同样某些应用程序不需要TCP提供的可靠数据传输。6能。应用程序开发者可以把可靠数据传输放在应用层协议中。但是,这将需要大量的工作和测试。8对于
14、每个持久连接来说,Web服务器将分别创建“连接套接字”.每个连接套接字通过一个四元组标识(源IP地址,源端口地址,目的IP地址,目的端口地址)当主机C接收IP数据包时,它检测报文/分组中的这四个域以确定TCP报文的有效负载应该传输到哪个套接字。因此,这需要A和B经过不同的套接字。这些套接字的标识符对于目的端口号是80,但是,这些标识符拥有不同的源IP地址值。与UDP不同,当传输层传递一个TCP分组负载到应用程序进程时,它不指定源IP地址,因为这意味着通过套接字标识符指定。11在协议rdt3.0中定时器仍然需要。如果知道往返时间,那么唯一的优点是,发送者明确知道包或者包的ACK(或NACK)已经
15、丢失,相对于真实场景,这里的在时钟到期后,ACK(或NACK)可能仍然在向发生者的发送过程中。但是,为了检测每个包的丢失,在发生者的常量时间段的计时器仍然必要.14a)falseb)falsec)trued)falsee)truef)falseg)false15a)20bytesb)acknumber=9017R/218FalSe,它设置为拥塞窗口的当前值的一半。Problems:3,18,19,20,23,24,333UDP检查和01010101+011100001100010111000101+)1001100O(K)100OI1的补码=IllOIIIo为了检测错误,接收方将4个字相加(3
16、个原始字和1个检测字),如果结果包含0,那么接收方就知道分组中存在错误,所有的Ibil错误都将被检测出来,但是2个比特的错误有可能被忽略(例如,如果第1个字的最后1个数变为0,并且第二个字的最后1个数变为D18a)这里窗口的大小N=3。假定接收器己经接收的包数k-l,并且己经确认它和所有其它处理数据包。如果这些CK已经被发送者接收那么发送者的窗口是k,k+Nl.假定然后,发送者没有收到任何AaG在此第二种情况下,发送者的窗口将包含k-1和N个数据并包括k-lo因此发送者的窗口时k-N,k-I.通过上述论证,发生的窗口大小是3并且开始在某位置在范围k-N,kb)如果接收者等待数据包k,那么它已经
17、接收(并确认)数据包k-1和它之前的N-I个数据包。如果这些N个ACKS都没有被发送者收到,那么在值为Ik-N,k-l的ACK消息仍然传输回来。因为发送已经发送数据包MNk-lj,所以这一定是发送者已经收到MN-I的ACK的情况。一旦接收者已经发送了k-N-l的CK,那么它将不再发送小于k-N-l的ACK。因此,在传输中的ACK的值的范围为k-N-l到k-119因为A到B的信道可能丢失请求消息,所以A将需要超时并且裁新床书请求消息(可能从丢失中恢复)。因为信道延迟是变量并且未知,所以A可能发送重复的请求(也就是重新发送B已经收到的请求信息)。为了可以检测重复请求消息,此协议需要使用序列号。对于
18、请求/响应协议的停止和等待类型一个1比特的序列号就足够了.A(请求者)拥有4个状态:“等待来自上级的RCqUCSt0。这里请求器等正在等待来自上级一个调用以请求一个数据单元.当它从上级收到一个请求时,它发送请求消息RO到B,启动计时器并且处于“等待D0”状态.当处于“等待来自上级的RCqUeSt0”状态时,A忽略从B收到的所有东西。“等待DO”这里请求器等待来自B的Do数据消息。计时器通常运行在这个状态上如果计时器超时了,那么A发送另一个Ro消息,重新启动计时器并且记住此状态。如果从B收到了DO消息,那么A停止计时并且转为“等待来自上级的ReqUeSH”的状态。如果A在此状态收到了Dl数据,那
19、么它将忽略它。“等待上级MReqUeStI”。这里请求器再次等待来自上级的调用以请求一个数据单元.当它从上级收到一个请求的时候,它发送请求消息Rl到B,启动计时器并且进入“等待Dlw的状态。如果在“等待上级的Requestlw状态,A忽略从B收到的任何东西。“等待D1”。这里请求其正在等待来自B的DI数据消息。计时器通常运行在此状态。如果计时器超时了,那么A发送另一个Rl消息,重新启动计时器并且记住此状态。如果从B收到了Dl消息,那么A停止计时器并且进入“等待上级的ReqUeSt0”的状态。如果A在此状态收到了DO数据消息,那么它将被忽略。数据提供者(B)只有两个状态“发送DO”。在此状态,通
20、过发送DO,B连续响应收到的RO消息,并且记住此状态。如果B收到了Rl消息,那么它知道它的DO消息已经被正确地接受了。因此它丢弃此DO数据(因为它已经在另一边收到了)并且然后进入“发送D1”状态,这里它将使用Dl去发送下一个数据请求片。“发送D1”。在此状态下,通过发送DLB连续响应收到的Rl消息,然后记住此状态。如果B收到了Rl消息,那么它知道它的Dl消息已经正确地收到了并且因此进入“发送D1”状态。20为了避免图3.27的场景,我们想避免接收器窗口的前缘(也就是拥有最高序列号的那个)回绕在序列号空间中并且与后缘(也就是在发送者窗口中拥有最低序列号的那个)。也就是说,序列后空间必须足够大以适
21、合整个接收器状态和整个发送者窗口而没有这些重叠条件。因此,我们需要确定序列号的一个范围可以在任意给定时间接受者和发送者的窗口都可以包含。假设接收者正在等待的数据包的最低序列号是数据包mo在这种情况下,它的窗口是m,m+wT并且它已经收到(并且确认了)数据包和它之前的WT个数据包,这里W是窗口的大小。如果这些W个ACKS都没有被发送者收到,那么值为rw,T的ACK消息可能仍然在传过来的过程中。如果拥有这些ACKs数的ACKs都没有被接受者收到,那么发送者的窗口将是mr,m-l。因此,发送者的最小边是mr,并且接收着的导边是m+wT。为了让接收者的窗口的导边不会与发送者的尾边重叠,序列号空间必须足
22、够大以容纳2w序列号。也就是,序列号空间至少是窗口大小的两倍,k2wo23这里有2-4,294,967,296个可能的序列号。a)序列号没有每个报文就增加一个。而是通过发送的数据的字节的数增加。所以MSS的大小是无关的一一从A发送到B的最大大小文件简单地可以表示为字节数2兆之4.19Gbyteso2%1460= 2,941,758b)报文的数目是,66字节的头添加到每个报文上,得到194,156,028字节的头。传输的字节的总数是2翌+194,156,028=3,59IxIO?比特因此在链路率IoMbPS中传输将耗时3,591seconds=59minutes去传输此文件。24a)在从主机A发
23、往B的第二个报文段中,序号为289,源端口号为503,目的端口号为80。b)如果第一个报文段在第二个报文段之前到达,在第一个到达报文段的确认中,确认号为289,源端口号为80,目标端口号为503。c)如果第二个报文段在第一个报文段之前到达,在第一个报文段的确认f249o中机A主机BSeQ=249.40=29,60ACk289AckSrq249,40中,d)Ark=349a)运行TCP慢启动的时间间隔是1,6和23,26ob)运行TCP拥塞避免的时间间隔是6,16和17,22Oc)在第16个传输周期之后,报文段的丢失通过3个重复确认来检测。如果存在一个超时,那么拥塞窗口的大小将降低为1。d)在第
24、22个传输周期之后,报文段的丢失通过超时检测,并且因此拥塞窗口的大小设置为1。e) ThreShOlcl初始值为32,因为在此窗口大小上慢启动停止,拥塞避免开始。f) ThreShoId设置为拥塞窗口的值的一半当检测到包丢失时。当在传输周期16中检测到丢失时,拥塞窗口大小为42。因此在第18个传输周期Threshold是21。g) ThreShOld设置为拥塞窗口的值的一半当检测到数据包丢失时。当在传输周期22中检测到丢失时,拥塞窗口大小为26。因此在第24个传输周期Threshold是13。h)在第1个传输周期中,发送数据包1,在第2个传输周期中发送报文段2-3,在第3个传输周期中发送报文段4-7,在第4个传输周期中发送报文段8-15,在第5个传输周期中发送报文段15-31,在第6个传输周期中发送报文段32-530在第7个传输周期中发送报文段64-96。因此报文段70在第7个传输周期发送。i)当发送丢失的时候,拥塞窗口和threshold将被设置为当前拥塞窗口(8)的一半,因此threshold和窗口的值将被设置为4。