1、计算机网络自顶向下方法课本课后习题答案13计算机网络:自顶向下方法-课本课后习题答案(1-3)课后习题答案:Chapter 1:Review questions: 1,4,11,13,15,16,18,19,23,25,261没有不同,在本文书中,“主机”和“终端系统”可以互换使用。终端系统包括PCs,工作站,Web服务器,电子邮件服务器,连接Internet的PDA,WebTV等。41 通过电话线拨号调制解调器:住宅2 通过电话线的DSL:住宅或小型办公室3 光纤电缆:住宅4 100 Mbps交换以太网:公司5 无线LAN:移动电话6 蜂窝移动接入(例如WAP):移动电话11电路交换网络可以
2、为一个通话保证特定数量的端到端带宽。大多数现在分组交换网络(包括Internet)可以提供所有端到端带宽保证。13在时间t0发送主机开始传输。在t1 = L/R1时,发送主机完成传输并且整个分组到达路由器(没有传播延迟)。因为路由器在时间t1拥有整个分组,所以它在时间t1开始向接收主机传输此分组。在时间t2 = t1 + L/R2,路由器完成传输并且接收主机接收整个分组(也没有传播延迟)。因此端到端延迟是L/R1 + L/R2。15a) 可以支持两个用户因为每个用户需要一半的链路带宽。b) 因为在传输过程中每个用户需要1Mbps,如果两个或更上用户同时传输,那么最大需要2Mbs。因为共享的链路
3、的可用带宽是2Mbps,所以在链接之前没有排队延迟。然而,如果三个用户同时传输,那么需要的带宽将是3Mbps,它大于共享链路的可用带宽,在这种情况下在链接前存在排队延迟。c) 给定用户传输的概率是0.2。d) 所有三个用户同时传输的概率是= (0.2)3 = 0.008。因为当所有用户都传输时,队列增加,所以在队列增加的分数(它等于所有三个用户同时传输的概率)是0.008。16延迟组件是处理延迟,传输延迟,传播延迟和排队延迟。除了排队延迟是变化的,其它所有延迟都是固定的。1810msec; d/s; no; no19a) 500 kbpsb) 64 secondsc) 100kbps; 320
4、 seconds23Internet协议栈中的5层从顶到底应用层,传输层,网络层,链路层和物理层。章节1.5.1中概述了各自的主要职责。25路由器处理从第1层到第3层(这不完全准确,因为新型的传感器又是充当防火墙或缓冲组件,并且也处理第4层)。链路层交换机处理第1层到第2层。主机处理所有5层。26a) 病毒需要某些人的互动形式来传播。典型的例子是电子邮件病毒b) 蠕虫不需要用户复制。在感染的主机中的蠕虫扫描IP地址和端口号,寻找容易的进程进行感染。c) 特洛伊木马隐藏在某些有用的软件之中。Problems: 2,5,12,18,242a) 电路交换网络将适合此描述的应用,因为此应用包含拥有可预
5、测平滑带宽需求的长期会话。因为传输率已知并且不是爆炸性的,所以可以为每个应用会话电路预留带宽而没有非常大的浪费。此外,我们不要关心建立和解除一个电路连接的开销,它们分摊给定义应用会话的较长时间。b) 给定一个大量链接能力,网络需要拥塞控制机制。在最坏的情况下(很有可能拥塞),所有应用同时在一个或更多的特定网络链接上同时传输。但是,因为每个链接提供足够的带宽来处理应用数据率的总和,所以不会发生拥塞(非常少的排队)。5a) 秒.b) 秒.c) 秒.d) 此比特刚离开Host Ae) 第一个比特在链路中并且没有到达Host Bf) 第一个个比特已经达到Host B。g) km.12第一个传输的分组的
6、排队延迟是0,第二个传输的分组是L/R,一般地,对于第n个传输的分组来说,排队延迟是(n-1)L/R。因此,对于N个分组来说平均的延迟是:(L/R + 2L/R + . + (N-1)L/R)/N = L/RN(1 + 2 + . + (N-1) = LN(N-1)/(2RN) = (N-1)L/(2R)注意:1 + 2 + . + N = N(N+1)/218a) 40,000 bitsb) 40,000 bitsc) 链路的带宽延迟积是可以在链路中的最大比特数。d) 1比特是250米长,它比一个足球场长1米。e) s/R 24a) 从源主机到第一个分组交换机的时间=。使用“存储交换”分组交
7、换,从源主机到目的主机移动该数据包的总共时间= b) 从源主机到第一个分组交换机移动第一个分组的时间,第一台交换机接收的第二个分组的时间=第一个分组到达第二台交换机的时间=,第2ms时,第二个分组能被第一台交换机全部收到。c) 第一个分组到达目的主机的时间=,在此之后,每1ms 就收到一个分组,因此收到最后一个分组(第5000个分组)的时间=。可以发现使用报文分段要小的多(差不多1/3)d) 缺点:1) 分组必须放在目的的序列中2) 报文分段产生很多较小的数据包。因为不管分组的大小如何,头的大小通常是相同的。使用分组分段,头比特的总数更多。Chapter 2:Review questions:
8、 1,3,5,6,11,13,15,22,27,281Web:HTTP;文件传输:FTP;远程登录: Telnet;网络新闻:NNTP;e-mail: SMTP。3初始通信的进程是客户端;等待连接的进程是服务器。5目标主机的IP地址和目标套接字的端口号。6应该使用UDP。通过UDP,传输可以在一个往返时间(RTT)中完成客户端向UDP socket发送传输请求,并且服务器向客户端的UDP socket返回应答。通过TCP,最少需要两个RTT一个是构建TCP连接,另一个是客户端发送请求,服务器返回应答。11与这些协议相关的应用要求所有应用数据要按照正确的顺序接收而没有间隔。TCP提供这些服务而U
9、DP则没有。13Web缓存器可以产生较接近用户或者用户主机连接的相同LAN的希望内容。Web缓存器可以降低所有对象的延迟,即使没有储存的对象,因为缓存降低了链路流量。15FTP使用两个平行的TCP连接,一个是发送控制信息(例如传输文件的请求)的连接和实际传输文件的连接。因为控制信息不在文件发送的连接上发送,所以FTP发送“带外”控制信息。22在P2P文件共享系统中的覆盖网络包括参与文件系统中的节点和节点之间的逻辑链接。如A和B之间存在一个半永久TCP连接,那么从节点A到节点B存在一个逻辑链接(在图理论中是一条边)。覆盖网络不包括路由器。通过Gnutella,当一个节点想加入Gnutella网络
10、时,它首先发现(带外)已经在网络中的一个或更多节点的IP地址。然后向这些节点发送加入消息。当节点收到确认时,它成为Gnutella网络中的一个成员。节点通过周期的刷新消息维持它们的逻辑链接。27使用UDP服务器,没有欢迎套接字,并且来自不同客户端的所有数据通一个套接字进入服务器。使用TCP服务器,存在一个欢迎套接字,并且每次客户端初始一个到服务器的连接,就创建一个新的套接字。因此,为了支持n个同时连接,服务将需要n+1个套接字。28对于TCP应用程序来说,只要客户端执行了,那么它就尝试与服务器初始化一个TCP连接。如果TCP服务器没有运行,那么客户端将建立此连接失败。对于UDP应用程序来说,客
11、户端不会在执行时立即初始化连接(或者尝试与UDP服务器通信)。Problems: 9,249a) 速率为R链路上传输对象大小为L的时间为L/R。平均时间是R分隔的对象的平均时间:= (900,000 bits)/(15,000,000 bits/sec) =0.06 sec在链路上的流量强度是(15 requests/sec)(0.06 msec/request) = 0.9。因此,平均访问延迟是(0.06 sec)/(1 -0.9) =0.6 seconds。因此总共的平均响应时间是0.6 sec + 2 sec = 2.6 secb) 访问链路的流量强度降低了40%,这是因为请求的40%在
12、这个机构的网络中是满足的。因此平均访问延迟是(0.06 sec)/1 (0.6)(0.9) =0.13 seconds。响应时间基本是0如果请求满足缓冲区(这发生的概率是0.4);对于缓冲未命中的情况平均响应时间是0.13sec+2sec=2.13sec(这发生的概率是60%)。因此平均响应时间是(0.4)(0 sec) + (0.6)(2.13 sec) = 1.278 seconds24a) 如果首先运行TCP客户端,那么客户端尝试与不存在的服务器进程建立TCP连接。TCP连接将建立失败。b) UDP客户端没有与服务器建立连接。因此,所有事情都运行正常如果你首先运行UDP客户端,然后运行U
13、DP服务器,再在键盘中输入某些输入。c) 如果你使用不同的端口号,那么客户端将尝试与错误的进程或不存在的进程建立一个TCP连接。将发生错误。Chapter 3:Review questions: 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) false b) false c) true d) false e) true f) false g) false15a) 20 bytes b) ack number = 9017R/218False,它设置为拥塞窗口的当前值的一半。Problems: 3,18,19,20,23,24,333UDP检查和01010101+01110000 11000101 11000101+01001100 000100011的补码11
16、101110为了检测错误,接收方将4个字相加(3个原始字和1个检测字),如果结果包含0,那么接收方就知道分组中存在错误,所有的1bit错误都将被检测出来,但是2个比特的错误有可能被忽略(例如,如果第1个字的最后1个数变为0,并且第二个字的最后1个数变为1)。18a) 这里窗口的大小N=3。假定接收器已经接收的包数k-1,并且已经确认它和所有其它处理数据包。如果这些ACK已经被发送者接收那么发送者的窗口是k,k+N-1。假定然后,发送者没有收到任何ACK。在此第二种情况下,发送者的窗口将包含k-1和N个数据并包括k-1。因此发送者的窗口时k-N,k-1。通过上述论证,发生的窗口大小是3并且开始在
17、某位置在范围k-N,kb) 如果接收者等待数据包k,那么它已经接收(并确认)数据包k-1和它之前的N-1个数据包。如果这些N个ACKs都没有被发送者收到,那么在值为k-N,k-1的ACK消息仍然传输回来。因为发送已经发送数据包k-N, k-1,所以这一定是发送者已经收到k-N-1的ACK的情况。一旦接收者已经发送了k-N-1的ACK,那么它将不再发送小于k-N-1的ACK。因此,在传输中的ACK的值的范围为k-N-1到k-119因为A到B的信道可能丢失请求消息,所以A将需要超时并且重新床书请求消息(可能从丢失中恢复)。因为信道延迟是变量并且未知,所以A可能发送重复的请求(也就是重新发送B已经收
18、到的请求信息)。为了可以检测重复请求消息,此协议需要使用序列号。对于请求/响应协议的停止和等待类型一个1比特的序列号就足够了。A(请求者)拥有4个状态:“等待来自上级的Request 0”。这里请求器等正在等待来自上级一个调用以请求一个数据单元。当它从上级收到一个请求时,它发送请求消息R0到B,启动计时器并且处于“等待D0”状态。当处于“等待来自上级的Request 0”状态时,A忽略从B收到的所有东西。“等待D0”。这里请求器等待来自B的D0数据消息。计时器通常运行在这个状态上。如果计时器超时了,那么A发送另一个R0消息,重新启动计时器并且记住此状态。如果从B收到了D0消息,那么A停止计时并
19、且转为“等待来自上级的Request1”的状态。如果A在此状态收到了D1数据,那么它将忽略它。“等待上级的Request 1”。这里请求器再次等待来自上级的调用以请求一个数据单元。当它从上级收到一个请求的时候,它发送请求消息R1到B,启动计时器并且进入“等待D1”的状态。如果在“等待上级的Request 1”状态,A忽略从B收到的任何东西。 “等待D1”。这里请求其正在等待来自B的D1数据消息。计时器通常运行在此状态。如果计时器超时了,那么A发送另一个R1消息,重新启动计时器并且记住此状态。如果从B收到了D1消息,那么A停止计时器并且进入“等待上级的Request 0”的状态。如果A在此状态收
20、到了D0数据消息,那么它将被忽略。数据提供者(B)只有两个状态“发送D0”。在此状态,通过发送D0,B连续响应收到的R0消息,并且记住此状态。如果B收到了R1消息,那么它知道它的D0消息已经被正确地接受了。因此它丢弃此D0数据(因为它已经在另一边收到了)并且然后进入“发送D1”状态,这里它将使用D1去发送下一个数据请求片。“发送D1”。在此状态下,通过发送D1,B连续响应收到的R1消息,然后记住此状态。如果B收到了R1消息,那么它知道它的D1消息已经正确地收到了并且因此进入“发送D1”状态。20为了避免图3.27的场景,我们想避免接收器窗口的前缘(也就是拥有最高序列号的那个)回绕在序列号空间中
21、并且与后缘(也就是在发送者窗口中拥有最低序列号的那个)。也就是说,序列后空间必须足够大以适合整个接收器状态和整个发送者窗口而没有这些重叠条件。因此,我们需要确定序列号的一个范围可以在任意给定时间接受者和发送者的窗口都可以包含。假设接收者正在等待的数据包的最低序列号是数据包m。在这种情况下,它的窗口是m,m+w-1并且它已经收到(并且确认了)数据包m-1和它之前的w-1个数据包,这里w是窗口的大小。如果这些w个ACKs都没有被发送者收到,那么值为m-w,m-1的ACK消息可能仍然在传过来的过程中。如果拥有这些ACKs数的ACKs都没有被接受者收到,那么发送者的窗口将是m-w,m-1。因此,发送者
22、的最小边是m-w,并且接收着的导边是m+w-1。为了让接收者的窗口的导边不会与发送者的尾边重叠,序列号空间必须足够大以容纳2w序列号。也就是,序列号空间至少是窗口大小的两倍,。23这里有个可能的序列号。a) 序列号没有每个报文就增加一个。而是通过发送的数据的字节的数增加。所以MSS的大小是无关的从A发送到B的最大大小文件简单地可以表示为字节数。b) 报文的数目是,66字节的头添加到每个报文上,得到194,156,028字节的头。传输的字节的总数是比特。因此在链路率10Mbps中传输将耗时3,591 seconds = 59 minutes去传输此文件。24a) 在从主机A发往B的第二个报文段中
23、,序号为289,源端口号为503,目的端口号为80。b) 如果第一个报文段在第二个报文段之前到达,在第一个到达报文段的确认中,确认号为289,源端口号为80,目标端口号为503。c) 如果第二个报文段在第一个报文段之前到达,在第一个报文段的确认中,确认号为249。d) Ack = 349Ack = 349Seq = 249, 40 bytesSeq = 249, 40 bytesSeq = 289, 60 bytesAck = 289主机A主机 B超时间隔超时间隔 33a) 运行TCP慢启动的时间间隔是1,6和23,26。b) 运行TCP拥塞避免的时间间隔是6,16和17,22。c) 在第16
24、个传输周期之后,报文段的丢失通过3个重复确认来检测。如果存在一个超时,那么拥塞窗口的大小将降低为1。d) 在第22个传输周期之后,报文段的丢失通过超时检测,并且因此拥塞窗口的大小设置为1。e) Threshold初始值为32,因为在此窗口大小上慢启动停止,拥塞避免开始。f) Threshold设置为拥塞窗口的值的一半当检测到包丢失时。当在传输周期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-53。在第7个传输周期中发送报文段64-96。因此报文段70在第7个传输周期发送。i) 当发送丢失的时候,拥塞窗口和threshold将被设置为当前拥塞窗口(8)的一半,因此threshold和窗口的值将被设置为4。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1