《计算机网络:自顶向下方法(原书第6版)》一课后习题和问题
《计算机⽹络:⾃顶向下⽅法(原书第6版)》⼀课后习题和
问题
本节书摘来华章计算机《计算机⽹络:⾃顶向下⽅法(原书第6版)》⼀书中的第2章 ,(美)James F.Kurose Keith W.Ross  著 陈 鸣 译 更多章节内容可以访问云栖社区“华章计算机”查看。
课后习题和问题
复习题2.1节
R1.列出5种⾮专⽤的因特⽹应⽤及它们所使⽤的应⽤层协议。
R2.⽹络体系结构与应⽤程序体系结构之间有什么区别?
R3.对两进程之间的通信会话⽽⾔,哪个进程是客户,哪个进程是服务器?
R4.对⼀个P2P⽂件共享应⽤,你同意“⼀个通信会话不存在客户端和服务器端的概念”的说法吗?为什么?
R5.运⾏在⼀台主机上的⼀个进程,使⽤什么信息来标识运⾏在另⼀台主机上的进程?
R6.假定你想尽快地处理从远程客户到服务器的事务,你将使⽤UDP还是TCP?为什么?
R7.参见图2-4,我们看到在该图中所列出的应⽤程序没有⼀个同时既要求⽆数据丢失⼜要求定时的。你能设想⼀个既要求⽆数据丢失⼜⾼度时间敏感的应⽤程序吗?
R8.列出⼀个运输协议能够提供的4种宽泛类型的服务。对于每种服务类型,指出是UDP还是TCP(或这两种协议)提供这样的服务?
R9.前⾯讲过TCP能⽤SSL来强化,以提供进程到进程的安全性服务,包括加密。SSL运⾏在运输层还是应⽤层?如果某应⽤程序研制者想要⽤SSL来强化UDP,该研制者应当做些什么⼯作?
2.2~2.5节
R10.握⼿协议的作⽤是什么?
R11.为什么HTTP、FTP、SMTP及POP3都运⾏在TCP,⽽不是UDP上?
R12.考虑⼀个电⼦商务⽹站需要保留每⼀个客户的购买记录。描述如何使⽤cookie来完成该功能?
R13.描述Web缓存器是如何减少接收被请求的对象的时延的。Web缓存器将减少⼀个⽤户请求的所有对象或只是其中的某些对象的时延吗?为什么?
R14. Telnet到⼀台Web服务器并发送⼀个多⾏的请求报⽂。在该请求报⽂中包含If-modified-since:⾸部⾏,迫使响应报⽂中出现“304 Not Modified”状态代码。
R15.为什么说FTP在“带外”发送控制信息?
R16.假定Alice使⽤⼀个基于Web的电⼦邮件账户(例如Hotmail或gmail)向Bob发报⽂,⽽Bob使⽤POP3从他的邮件服务器访问⾃⼰的邮件。讨论是怎样从Alice主机到Bob主机得到该报⽂的。要列出在两台主机间移动该报⽂时所使⽤的各种应⽤层协议。
R17.将你最近收到的报⽂⾸部打印出来。其中有多少Received:⾸部⾏?分析该报⽂的⾸部⾏中的每⼀⾏。
R18.从⽤户的观点看,POP3协议中下载并删除模式和下载并保留模式有什么区别吗?
R19.⼀个机构的Web服务器和邮件服务器可以有完全相同的主机名别名(例如,foo)吗?包含邮件服务器主机名的RR有什么样的类型?
R20.仔细检查收到的电⼦邮件,查由使⽤.edu电⼦邮件地址的⽤户发送的报⽂⾸部。从其⾸部,能够确定发送该报⽂的主机的IP地址吗?对于由gmail账号发送的报⽂做相同的事。
2.6节
R21.在BitTorrent中,假定Alice向Bob提供⼀个30秒间隔的⽂件块吞吐量。Bob将必须进⾏回报,在相同的间隔中向Alice提供⽂件块吗?为什么?
R22.考虑⼀个新对等⽅Alice加⼊BitTorrent⽽不拥有任何⽂件块。没有任何块,因此她没有任何东西可上载,她⽆法成为任何其他对等⽅的前4位上载者。那么Alice将怎样得到她的第⼀个⽂件块呢?
R23.覆盖⽹络是什么?它包括路由器吗?在覆盖⽹络中边是什么?
R24.考虑⼀个具有⽹状覆盖⽹络拓扑的DHT(即每个对等⽅跟踪系统中的所有对等⽅)。这样设计的优点和缺点各是什么?环形DHT(⽆捷径)的优点和缺点各是什么?
R25.列出⾄少4个不同的应⽤,它们本质上适合P2P体系结构。(提⽰:⽂件分布和即时讯息是两个这样的应⽤。)
2.7节
R26. 2.7节中所描述的UDP服务器仅需要⼀个套接字,⽽TCP服务器需要两个套接字。为什么?如果TCP服务器⽀持n个并⾏连接,每条连接来⾃不同的客户主机,那么TCP服务器将需要多少个套接字?
R27.对于2.7节所描述的运⾏在TCP之上的客户-服务器应⽤程序,服务器程序为什么必须先于客户程序运⾏?对于运⾏在UDP之上的客户-服务器应⽤程序,客户程序为什么可以先于服务器程序运⾏?习题P1.是⾮判断题。
a.假设⽤户请求由某些⽂本和3幅图像组成的Web页⾯。对于这个页⾯,客户将发送⼀个请求报⽂并接收4个响应报⽂。
b.两个不同的Web页⾯(例如,www.mit.edu/research.html及www.mit.edu/students.html)可以通过同⼀个持续连接发送。
c.在浏览器和初始服务器之间使⽤⾮持续连接的话,⼀个TCP报⽂段是可能携带两个不同的HTTP服务请求报⽂的。
d.在HTTP响应报⽂中的Date:⾸部指出了该响应中对象最后⼀次修改的时间。
d.在HTTP响应报⽂中的Date:⾸部指出了该响应中对象最后⼀次修改的时间。
e.HTTP响应报⽂决不会具有空的报⽂体。
P2.阅读有关FTP的RFC 959。列出这个RFC所⽀持的所有客户命令。
P3.考虑⼀个HTTP客户要获取⼀个给定URL的Web页⾯。该HTTP服务器的IP地址开始时并不知道。在这种情况下,除了HTTP外,还需要什么运输层和应⽤层协议?
P4.考虑当浏览器发送⼀个HTTP GET报⽂时,通过Wireshark俘获到下列ASCII字符串(即这是⼀个HTTP GET报⽂的实际内容)。字符是回车和换⾏符(即下⾯⽂本中的斜体字符串表⽰了单个回车符,该回车符包含在HTTP⾸部中的相应位置)。回答下列问题,指出你在下⾯HTTP GET报⽂中到答案的地⽅。
a.由浏览器请求的⽂档的URL是什么?
b.该浏览器运⾏的是HTTP的何种版本?
c.该浏览器请求的是⼀条⾮持续连接还是⼀条持续连接?
d.该浏览器所运⾏的主机的IP地址是什么?
e.发起该报⽂的浏览器的类型是什么?在⼀个HTTP请求报⽂中,为什么需要浏览器类型?
P5.下⾯⽂本中显⽰的是来⾃服务器的回答,以响应上述问题中HTTP GET报⽂。回答下列问题,指出你在下⾯报⽂中到答案的地⽅。
a.服务器能否成功地到那个⽂档?该⽂档提供回答是什么时间?
b.该⽂档最后修改是什么时间?
c.⽂档中被返回的字节有多少?
d.⽂档被返回的前5个字节是什么?该服务器同意⼀条持续连接吗?
P6.获取HTTP/1.1规范(RFC 2616)。回答下⾯问题:
a.解释在客户和服务器之间⽤于指⽰关闭持续连接的信令机制。客户、服务器或两者都能发送信令通知连接关闭了吗?
b.HTTP提供了什么加密服务?
c.⼀个客户能够与⼀个给定的服务器打开3条或更多条并发连接吗?
d.如果⼀个服务器或⼀个客户检测到连接已经空闲⼀段时间,该服务器或客户可以关闭两者之间的传输连接。⼀侧开始关闭连接⽽另⼀侧通过该连接传输数据是可能的吗?请解释。
P7.假定你在浏览器中点击⼀条超链接获得Web页⾯。相关联的URL的IP地址没有缓存在本地主机上,因此必须使⽤DNS lookup以获得该IP地址。如果主机从DNS得到IP地址之前已经访问了n个DNS服务器;相继产⽣的RTT依次为RTT1、…、RTTn。进⼀步假定与链路相关的Web页⾯只包含⼀个对象,即由少量的HTML⽂本组成。令RTT0表⽰本地主机和包含对象的服务器之间的RTT值。假定该对象传输时间为零,则从客户点击该超链接到它接收到该对象需要多长时间?
P8.参照习题P7,假定在同⼀服务器上某HTML⽂件引⽤了8个⾮常⼩的对象。忽略发送时间,在下列情况下需要多长时间:
宜宾三江是哪三江
a.没有并⾏TCP连接的⾮持续HTTP。
b.配置有5个并⾏连接的⾮持续HTTP。
c.持续HTTP。
P9.考虑图2-12,其中有⼀个机构的⽹络和因特⽹相连。假定对象的平均长度为850000⽐特,从这个机构⽹的浏览器到初始服务器的平均请求率是每秒16个请求。还假定从接⼊链路的因特⽹⼀侧的路由器转发⼀个HTTP请求开始,到接收到其响应的平均时间是3秒(参见
2.2.5节)。将总的平均响应时间建模为平均接⼊时延(即从因特⽹路由器到机构路由器的时延)和平均因特⽹时延之和。对于平均接⼊时延,使⽤Δ/(1-Δβ),式中Δ是跨越接⼊链路发送⼀个对象的平均时间,β是对象对该接⼊链路的平均到达率。
a.求出总的平均响应时间。
b.现在假定在这个机构LAN中安装了⼀个缓存器。假定命中率为0.4,求出总的响应时间。
P10.考虑⼀条10⽶短链路,某发送⽅经过它能够以150bps速率双向传输。假定包含数据的分组是100000⽐特长,仅包含控制(如ACK 或握⼿)的分组是200⽐特长。假定N个并⾏连接每个都获得1/
N的链路带宽。现在考虑HTTP协议,并且假定每个下载对象是100Kb长,这些初始下载对象包含10个来⾃相同发送⽅的引⽤对象。在这种情况下,经⾮持续HTTP的并⾏实例的并⾏下载有意义吗?现在考虑持续HTTP。你期待这⽐⾮持续的情况有很⼤增益吗?评价并解释你的答案。
P11.考虑在前⼀个习题中引出的情况。现在假定该链路由Bob和4个其他⽤户所共享。Bob使⽤⾮持续HTTP的并⾏实例,⽽其他4个⽤户使⽤⽆并⾏下载的⾮持续HTTP。
1. Bob的并⾏连接能够帮助他更快地得到Web页⾯吗?
对牛弹琴的意思b.如果所有5个⽤户打开5个⾮持续HTTP并⾏实例,那么Bob的并⾏连接仍将是有益的吗?为什么?
P12.写⼀个简单的TCP程序,使服务器接收来⾃客户的⾏并将其打印在服务器的标准输出上。(可以通过修改本书中的TCPServer.py程序实现上述任务。)编译并执⾏你的程序。在另⼀台有浏览器的机器上,设置浏览器的代理服务器为你正在运⾏服务器程序的机器,同时适当地配置端⼝号。这时你的浏览器向服务器发送GET请求报⽂,你的服务器应当在其标准输出上显⽰该报⽂。使⽤这个平台来确定你的浏览器是否对本地缓存的对象产⽣了条件GET报⽂。
P13. SMTP中的MAIL FROM与该邮件报⽂⾃⾝中的From:之间有什么不同?
P14. SMTP是怎样标识⼀个报⽂体结束的?HTTP是怎样做的呢?HTTP能够使⽤与SMTP标识⼀个报
⽂体结束相同的⽅法吗?试解释。
P15.阅读⽤于SMTP的RFC 5321。MTA代表什么?考虑下⾯收到的垃圾邮件(从⼀份真实垃圾邮件修改得到)。假定这封垃圾邮件的唯⼀始作俑者是malacious,⽽其他主机是诚实的,指出是该malacious主机产⽣了这封垃圾邮件。
P16.阅读POP3的RFC,即RFC 1939。UIDL POP3命令的⽬的是什么?
P17.考虑⽤POP3访问你的电⼦邮件。
五一手抄报内容文字
a.假定你已经配置以下载并删除模式运⾏的POP邮件客户。完成下列事务:
b.假定你已经配置以下载并保持模式运⾏的POP邮件客户。完成下列事务:
c.假定你已经配置以下载并保持模式运⾏的POP邮件客户。使⽤(b)中的记录,假定你检索报⽂1和2,退出POP,5分钟以后,你再访问POP以检索新电⼦邮件。假定在这5分钟间隔内,没有新报⽂发送给你。给出第⼆种POP会话的记录。
P18.如题:
a.什么是whois数据库?
b.使⽤因特⽹上的各种whois数据库,获得两台DNS服务器的名字。指出你使⽤的是哪个whois数据库。
c.你本地机器上使⽤nslookup向3台DNS服务器发送DNS查询:你的本地DNS服务器和两台你在(b)中发现的DNS服务器。尝试对类型A、NS和MX报告进⾏查询。总结你的发现。
d.使⽤nslookup出⼀台具有多个IP地址的Web服务器。你所在的机构(学校或公司)的Web服务器具有多个IP地址吗?
e.使⽤ARIN whois数据库,确定你所在⼤学使⽤的IP地址范围。
f.描述⼀个攻击者在发动攻击前,能够怎样利⽤whois数据库和nslookup⼯具来执⾏对⼀个机构的侦察。
g.讨论为什么whois数据库应当为公众所⽤。
P19.在本习题中,我们使⽤在Unix和Linux主机上可⽤的dig⼯具来探索DNS服务器的等级结构。图2-21讲过,在DNS等级结构中较⾼的DNS服务器授权对该等级结构中较低DNS服务器的DNS请求,这
是通过向DNS客户发送回那台较低层次的DNS服务器的名字来实现的。先阅读dig的帮助页,再回答下列问题。
a.从⼀台根DNS服务器(从根服务器[a-m].root-server之⼀)开始,通过使⽤dig得到你所在系的Web服务器的IP地址,发起⼀系列查询。显⽰回答你的查询的授权链中的DNS服务器的名字列表。
b.对⼏个流⾏Web站点如google、yahoo或amazon,重复上⼀⼩题。
P20.假定你能够访问所在系的本地DNS服务器中的缓存。你能够提出⼀种⽅法来粗略地确定在你所在系的⽤户中最为流⾏的Web服务器(你所在系以外)吗?解释原因。
P21.假设你所在系具有⼀台⽤于系⾥所有计算机的本地DNS服务器。你是普通⽤户(即你不是⽹络/系统管理员)。你能够确定是否在⼏秒钟前从你系⾥的⼀台计算机可能访问过⼀台外部Web站点吗?解释原因。
P22.考虑向N个对等⽅分发F=15Gb的⼀个⽂件。该服务器具有us=30Mbps的上载速率,每个对等⽅具有di=2Mbps的下载速率和上载速率u。对于N=10、100和1000并且u=300kbps、700kbps和2Mbps,对于N和u的每种组合绘制出确定最⼩分发时间的图表。需要分别针对客户-服务器分发和P2P分发两种情况制作。
P23.考虑使⽤⼀种客户-服务器体系结构向N个对等⽅分发⼀个F⽐特的⽂件。假定⼀种流体模型,即某服务器能够同时向多个对等⽅传输,只要组合速率不超过us,则以不同的速率向每个对等⽅传输。
a.假定us/N≤dmin。定义⼀个具有NF/us分发时间的分发⽅案。
b.假定us/N≥dmin。定义⼀个具有F/dmin分发时间的分发⽅案。
c.得出最⼩分发时间通常是由max{NF/us,F/dmin}所决定的结论。
P24.考虑使⽤P2P体系结构向N个⽤户分发F⽐特的⼀个⽂件。假定⼀种流体模型。为了简化起见,假定dmin很⼤,因此对等⽅下载带宽不会成为瓶颈。
a.假定us≤(us+u1+…+uN)/N。定义⼀个具有F/us分发时间的分发⽅案。
b.假定us≥(us+u1+…+uN)/N。定义⼀个具有NF/(us+u1+…+uN)分发时间的分发⽅案。
c.得出最⼩分发时间通常是由max{F/us,NF/(us+u1+…+uN)}所决定的结论。
P25.考虑在⼀个有N个活跃对等⽅的覆盖⽹络中,每对对等⽅有⼀条活跃的TCP连接。此外,假定该TCP连接通过总共M台路由器。在对应的覆盖⽹络中,有多少结点和边?
P26.假定Bob加⼊BitTorrent,但他不希望向任何其他对等⽅上载任何数据(因此称为搭便车)。
1. Bob声称他能够收到由该社区共享的某⽂件的完整副本。Bob所⾔是可能的吗?为什么?
2. Bob进⼀步声称他还能够更为有效地进⾏他的“搭便车”,⽅法是利⽤所在系的计算机实验室中的多台计算机(具有不同的IP地
址)。他怎样才能做到这些呢?
P27.在2.6.2节的环形DHT例⼦中,假定对等⽅3知道对等⽅5已经离开。对等⽅3如何更新它的后继状态信息?此时哪个对等⽅是它的第⼀个后继?哪个是其第⼆个后继?
P28.在2.6.2节的环形DHT例⼦中,假定⼀个新的对等⽅6要接⼊该DHT,并且对等⽅6最初只知道对等⽅15的IP地址。需要采⽤哪些步骤?
P29.因为⼀个位于[0,2n-1]的整数能被标识为⼀个在DHT中的n⽐特的⼆进制数,每个键能被表⽰为k=(k0,k1,…,kn-1),并且每个对等⽅标识符能被表⽰为p=(p0,p1,…,pn-1)。我们现在定义键k和对等⽅p的异或(XOR)距离为
老师打学生
描述该度量如何⽤于为对等⽅分配(键,值)对。(要学习如何使⽤这个天然的度量构建有效的DHT,参见描述Kademlia DHT的⽂献[Maymounkov 2002]。)
P30.由于DHT是覆盖⽹络,它们也许不必与底层的物理⽹络匹配得很好,即两个相邻的对等⽅也许物理上相距很远;例如,⼀个对等⽅可能位于亚洲⽽它的邻居可能位于北美。如果我们随机并统⼀地为新加⼊的对等⽅分配标识符,这个分配⽅案将会引起这种误匹配吗?揭⽰原因。这种误匹配如何影响DHT的性能呢?
P31.在⼀台主机上安装编译TCPClient和UDPClient Python程序,在另⼀台主机上安装编译TCPServer和UDPServer程序。
a.如果你在运⾏TCPServer之前运⾏TCPClient,将发⽣什么现象?为什么?
b.如果你在运⾏UDPServer之前运⾏UDPClient,将发⽣什么现象?为什么?
c.如果你对客户端和服务器端使⽤了不同的端⼝,将发⽣什么现象?
P32.假定在UDPClient.py中在创建套接字后增加了下⾯⼀⾏:
  Marc Andreessen  Marc Andreessen是Mosaic的共同发明⼈,Mosaic是⼀种Web浏览器,正是它使
万维⽹在1993年流⾏起来。Mosaic具有⼀个清晰、易于理解的界⾯,是⾸个能嵌在⽂本中显⽰图像的浏览器。在1994年,Marc Andreessen和Jim Clark创办了Netscape公司,其浏览器是到20世纪90年代中期为⽌最为流⾏的。Netscape也研发了安全套接字层(SSL)协议和许多因特⽹服务器产品,包括邮件服务器和基于SSL的Web服务器。他现在是风险投资公司Andreessen Horowitz的共同奠基⼈和⼀般股东,对包括Facebook、Foursquare、Groupon、Jawbone、Twitter和Zynga等公司的财产投资搭配进⾏监管。他服务于包括Bump、eBay、Glam Media、Facebook和HP等在内的多个董事会。他具有美国伊利诺伊⼤学厄巴纳-⾹槟分校的计算机科学理学学⼠学位。 您是怎样变得对计算感兴趣的?您过去⼀直知道您要从事信息技术吗?
在我长⼤成⼈的过程中,视频游戏和个⼈计算正好成为成功⽽风⾏⼀时的事物,在20世纪70年代后期和80年代初期,个⼈计算成为了新技术发展前沿。那时不只有苹果和IBM的个⼈计算机,⽽且有如Commodore和Atari等数以百计的新公司。我在10岁时⽤⼀本名为《简明BASIC速成》(Instant Freeze-Dried BASIC)的书进⾏⾃学,并在12岁时得到⾃⼰的第⼀台计算机(TRS-80 Color Computer,查查
它!)。
请描述您职业⽣涯中⼲过的最令⼈激动的⼀两个项⽬。最⼤的挑战是什么?
⽏庸置疑,最令⼈兴奋的项⽬是1992~1993年的初始Mosaic Web浏览器,最⼤的挑战是让任何⼈从此往后都认真地对待它。在那个时候,每个⼈都认为交互式未来将是由⼤型公司宣布的“交互式电视”,⽽⾮由新兴公司发明的因特⽹。
您对⽹络和因特⽹未来的什么东西感到兴奋?您最为关注什么?
最为兴奋的东西是程序员和企业家能够开发的应⽤和服务的巨⼤的尚待开发的领域,即因特⽹已经释放的创造性到达了⼀种我们以前从未预见到的⽔平。我最关注是“意想不到的后果”的原则,即我们并不总是知道我们所做事情的后果,例如因特⽹被政府所⽤,使得监视居民到达了⼀种新⽔平。
随着Web技术的进展,学⽣们有什么应当特别要了解的?
改变的速度,即对学习来说,最重要的东西是学习的⽅法,在特定的技术中如何灵活地适应改变,当你在职业⽣涯中前⾏时,在新的机会和可能性⽅⾯如何保持开放的思想。
一嗨租车价格
什么⼈给予您专业灵感?
他们是:Vannevar Bush,Ted Nelson,Doug Engelgart,Nolan Bushnell,Bill Hewlett和Dave Packard,Ken Olsen,Steve Jobs,Steve Wozniak,Andy Grove,Grace Hopper,Hedy Lamarr,Alan Turing,Richard Stallman。
对于要在计算和信息技术领域谋求发展的学⽣们,您有什么忠告?
尽可能深⼊地理解技术是怎样创造的,然后补充学习商业运作的原理。安全文明手抄报
技术能够解决世界的问题吗?
不能,但是通过经济增长我们推动⼈们⽣活标准的改善。综观历史,⼤多数经济增长来⾃技术,因此就像技术带来的好处⼀样。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。