计算机网络 自顶向下方法第七版 第二章习题答案总结(部分)

计算机网络 自顶向下方法第七版 第二章习题答案总结

复习题

2.1 节

R1.列出5种非专用的因特网应用以及它们所使用的应用层协议。P62

答:①Web应用和HTTP协议
②电子邮件应用和SMTP(简单邮件传输协议)
③因特网的目录服务DNS和DNS协议
④BitTorrent和P2P协议
⑤远程终端访问和Telnet
⑥文件传输和FTP协议

R2.网络体系结构与应用程序体系结构之间有什么区别?P55-P56

知识点:2.1.1 网络应用程序体系结构
答:① 应用程序体系结构明显不同于网络的体系结构,从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合。
② 应用程序体系结构由应用程序研发者设计,规定了如何在端系统上组织该应用程序。其所使用的两种主流体系结构之一分别是客户——服务器体系结构对等(P2P)体系结构

R3.对两进程之间的通信会话而言,哪个进程是用户?哪个进程是服务器? P57

知识点:2.1.2 进程通信——客户和服务器进程
答:在一对进程的通信会话场景中,发起通话(即在会话开始时发起与其他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程是服务器

R4. 对一个P2P文件共享应用,你同意“一个通信会话不存在客户端和服务器端的概念”的说法吗?为什么?

答:不同意,在P2P文件共享应用中,一个进程可以既是客户又是服务器。实际上,在P2P文件共享系统中,一个进程既能上载文件又能下载文件。无论如何,在给定的一对进程之间的通信会话中,我们仍能标志一个进程是客户机,标志另一个进程为服务器。在给定的一堆进程之间的通信会话中,发起通话的进程被标识为客户,在会话开始时等待联系的进程是服务器

R5. 运行在一台主机上的一个进程,使用什么信息来标识运行在另一个主机上的进程?

答:目标主机的IP地址和目标套接字的端口号。

R6.假定你想尽快地处理从远程客户到服务器的事务,你将使用UDP和TCP?为什么?

答:UDP的发送端可以用任意速率向网络层注入数据,可以在一次往返时间(RTT)中完成——客户端将事务请求发送到UDP套接字,服务器将回复发送回客户端UDP套接字。对于TCP,至少需要两个RTTs,一个用于建立TCP连接,另一个用于客户机发送请求,以及服务器发送回复。

R7. 参见图2-4,我们看到在该图中所列出的应用程序没有一个同时既要求无数据丢失又要求定时的。你能设想一个既要求无数据丢失又高度时间敏感的应用程序吗?P61

知识点:2.1.4 因特网提供的运输服务
答:对时间和订单信息敏感的应用程序:商品限时秒杀 、优惠券的限时发放、百亿补贴券限时抢购。

R8.列出一种运输协议能够提供的4种宽泛类型的服务。对于每种服务类型,指出是UDP还是TCP(或这两种协议)提供这样的服务?P59-P60、P62

知识点:2.1.3 可供应用程序使用的运输服务
2.1.4 因特网提供的运输服务——因特网运输协议不提供的服务

运输服务TCPUDP
可靠数据传输×
吞吐量××
定时××
安全性√(添加SSL)×

R9. 前面讲过TCP能用SSL来强化,以提供进程和进程的安全性服务,包括加密。SSL运行在运输层还是应用层?如果某应用程序研制者想要用SSL来强化UDP,该研制者应当做些什么工作?P60-P61

知识点:2.1.4 TCP安全
答:SSL在应用层运行。SSL套接字从应用层接收未加密的数据,对其进行加密,然后将其传递给TCP套接字。如果应用程序开发人员希望使用SSL增强TCP,则必须在应用程序中包含SSL代码。
SSL不能用来强化UDP。SSL是可靠协议,基于不可靠的UDP丢失关键信息就没意义了。

2.2 节——2.4节

R10. 握手协议的作用是什么?

答:让客户端和服务器确认彼此的身份。

R11.为什么HTTP、SMTP及POP3都运行在TCP,而不是UDP上?

知识点:2.1.4 因特网提供的运输服务
答:首先要知道TCP几个重要的特性: 面向连接, 保证数据完整性, 保证数据有序到达, 有拥塞控制功能. 而上述功能UDP都没有.
首先HTTP, 用户通过浏览器以HTTP协议向服务器发起请求, 如果这个请求数据不完整, 服务器将无法给出正确响应, 用户也得不到想要的结果.
SMTP和POP3两个邮件协议也需要保证数据的完整性, 并且要保证按照一定的顺序交付, 所以选择TCP。

R12.考虑一个电子商务网站需要保留每一个客户的购买记录。描述如何使用cookie来完成该功能?P70-P71

知识点:2.2.4 用户与服务器的交互:cookie
答:课本原话:Cookie可以用于标识一个用户。用户首次访问一个站点时,可能需要提供一个用户标识(可能是名字)。在后继会话中,浏览器向服务器传递一个cookie首部,从而向该服务器标识了用户。因此cookie可以在无状态的HTTP之上建立一个用户会话层。
当用户首先访问电子商务网站时,需要提供一个用户的唯一标识,电商网站根据用户标识查得用户信息,并将特定的用户信息作为cookie响应给用户,然后用户在电商网站发起的每个操作都带上该cookie,电商网站便能保留每个客户的购买记录了。

R13.描述Web缓存器是如何减少接收被请求对象的时延的。Web缓存器将减少一个用户请求的所有对象或只是其中的某些对象的时延吗?为什么?

知识点:2.2.5 Web缓存器——代理服务器
在这里插入图片描述
答:Web缓存器设置在用户和初始服务器之间,当用户要向初始服务器发起请求时,浏览器会先将请求定位到Web缓存器上,如果缓存器上有请求对象的副本则直接将该副本响应给客户。如果缓存器中没有,则从Web缓存器向初始服务器发起对该对象的请求,Web缓存器收到来自初始服务器的响应对象后,自己会保留一份该对象的副本,然后再响应给用户。
因此,Web缓存器只能减少缓存过的对象的时延。

R14.Telnet到一台Web服务器并发送一个多行的请求报文。在该请求报文中包含If-modified-since:首部行,迫使响应报文中出现“304 Not Modified”状态代码。(P74-P75)

知识点:2.2.6 条件GET方法
答:
条件GET语句允许缓存器证实它的对象是最新的
如果请求报文使用GET方法;并且请求报文中包含一个“If-Modified-Since:”首部行。那么,这个HTTP请求报文就是一个条件GET请求报文。
1、首先,一个代理缓存器(proxy cache)代表一个请求浏览器,向某Web服务器发送一个请求报文:
在这里插入图片描述
2、其次,该Web服务器向缓存器发送具有被请求的对象的响应报文:
在这里插入图片描述
3、该缓存器在将对象转发到请求的浏览器的同时,也在本地缓存了该对象。重要的是,缓存器在存储该对象时也存储了最后修改日期。最后,一个星期后,另一个用户经过该缓存器请求同一个对象,该对象仍在这个缓存器中。由于在过去的一个星期中位于Web服务器上的该对象可能已经被修改了,该缓存器通过发送一个条件GET执行最新检查。具体来说,该缓存器发送:
在这里插入图片描述
而此处的If-Modified-Since:首部行的值正好等于一星期前服务器发送的响应报文中的Last-Modified:首部行的值。该条件GET报文告诉服务器,仅当自指定日期之后该对象被修改过,才发送该对象。假设该对象没有被修改,接下来Web服务器向该缓存器发送一个响应报文:
在这里插入图片描述
4、在最后的响应报文中,状态行中为304 Not Modified,它告诉缓存器可以使用该对象,能向请求的浏览器转发它(该代理缓存器)缓存的该对象副本。

R15、列出几种流行的即时通信应用。它们使用相同的协议作为SMS吗?

答:QQ、微信等。(用C/S架构模式也有B/S架构模式,详见https://baike.baidu.com/item/%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF%E8%BD%AF%E4%BB%B6/9556908
其中QQ使用的应用层协议是OICQ,OICQ使用的传输层协议是UDP。使用端口:4000用于发送信息,端口:8000用于接收信息。OICQ协议提供可靠的传输服务。
微信使用的应用层协议是HTTP。
它们不是使用相同的协议作为SMS。

R16.假定Alice使用一个基于Web的电子邮件账户(例如Hotmail或Gmail)向Bob发报文,而Bob使用POP3从他的邮件服务器访问自己的邮件。讨论该报文是如何从Alice主机到Bob主机的。要列出两台主机间移动该报文时所使用的的各种应用层协议。(P83)

知识点:2.3.4 邮件访问协议——POP3和基于Web的电子邮件
答:从Alice的用户代理到Alice的邮件服务器的是HTTP协议,从Alice的邮件服务器到Bob的邮件服务器是SMTP协议,从Bob的邮件服务器到Bob的用户代理是POP3协议。

R17.将你最近收到的报文首部打印出来。其中有多少Received:首部行?分析该报文的首部行中的每一行。

答:略(等我做编程作业3再来答复。)

R18.从用户的观点看,POP3协议中下载并删除模式和下载并保留模式有什么区别吗?(P82)

知识点:2.3.4 邮件访问协议——POP3
答:使用下载并删除方式的问题是,邮件接收方Bob可能是移动的,可能希望从多个不同的机器访问访问他的邮件报文,如从办公室的PC、家里的PC或他的便携机来访问邮件。例如,下载并删除方式将对Bob的邮件报文根据这3台机器进行划分,特别是如果Bob最先是在他办公室的PC收取了一条邮件,那么晚上当他回到家里时,通过他的手机将不能再收取该邮件。
使用下载并保留方式,用户代理下载某邮件后,该邮件仍保留在邮件服务器上。这时,Bob就能通过不同的机器重新读取这些邮件;他能在工作时收取一封报文,而在工作回家后再次访问他。

R19.一个机构的Web服务器和邮件服务器可以有完全相同的主机名别名(例如,foo.com)吗?包含邮件服务器主机名的RR有什么样的类型?(P89)

知识点:2.4.3 DNS记录和报文
答:资源记录是一个四元组:(Name,Value,Type,TTL),其中TTL是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间。
当Type的类型为A时则Name是主机名,Value是该主机名对应的IP地址。 因此,一条资源类型为A的资源记录提供了标准的主机名到IP地址的映射。例如(relay1.bar.foo.com,145.37.93.126,A)就是一条类型A记录。
当Type的类型为NS时,则Name是个域(如foo.com),而Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。这个记录用于沿着查询链来路由DNS查询。例如(foo.com,dns.foo.com,NS)就是一条类型为NS的记录。
当Type的类型为CNAME时,则Value是别名为Name的主机对应的规范主机名。该记录能够向查询的主机提供一个主机名对应的规范主机名,例如(foo.com,relay1.bar.foo.com,CNAME)就是一条CNAME类型的记录。
当Typle的类型为MX时,则Value是别名为Name的邮件服务器规范主机名。例如,(foo.com,mail.bar.foo.com,MX)就是一条MX记录。

问题1的答案: MX服务器允许邮件服务器主机名具有简单的别名。通过使用MX记录,一个公司的邮件服务器可以和它的其他服务器(Web服务器)可以使用相同的别名。
问题2的答案:包含邮件服务器主机名的RR有两条记录,一条是MX类型,一条是A类型

R20.仔细检查收到的电子邮件,查找由使用.edu电子邮件地址的用户发送的报文头部。从其首部,能够确定发送该报文的主机的IP地址嘛?对于由Gmail账号发送的报文做相同的事情。

答:.edu可以,Gmail不行

2.5 节

R21.在BitTorrent中,假定Alice向Bob提供一个30秒间隔的文件块吞吐量。Bob需要必须进行回报,在相同的间隔中向Alice提供文件块吗?为什么?(P96-P97)

知识点:2.5 P2P文件分发——BitTorrent
答:不,Bob并不必须进行回报。因为Alice会选取一定数量的“邻居”(邻近对等方),并从它们那里获得块。而这个选择不是基于Alice向谁发送块就向谁获取块,而是根据一种“对换算法”,在Alice的对等方列表(追踪器提供)中向对等方发送请求,选取响应速度快的前四位上载者来获取块,每隔30秒Alice获取块的伴侣也是不停更新的。

R22.考虑一个新对等方Alice加入BitTorrent而不拥有任何文件块。没有任何块,因此她没有任何东西可上载,她无法成为任何其他对等方的前4位上载者。那么Alice将怎样得到她的第一个文件块呢?(P96-P97)

知识点:2.5 P2P文件分发——BitTorrent
答:在BitTorrent中,对等方们每过30秒随机选择另外的一个邻居发送块,当Alice被随机选中时,她将得到第一个块。(一个试探的对等方)

R23.覆盖网络是什么?它包括路由器吗?在覆盖网络中边是什么?

知识点:2.5 P2P文件分发——DHT(分布式散列表)
DHT的知识补充
覆盖网络的知识补充
答:覆盖网络是一种应用层网络(对等方组成的逻辑网络,不是物理链路),在P2P协议中,覆盖网络由文件共享系统的节点与节点间的逻辑联系(两个对等方之间的TCP连接)构成,这条逻辑联系就是“边”,不包括路由器。

2.6 节

R24. CDN通常采用两种不同的服务器放置方法之一。列举并简单描述它们。P100

知识点:2.6.3 内容分发网——P98
答:①深入。该原则是通过在遍及全球的接入ISP中部署服务器集群来深入到ISP的接入网中。其目标是靠近端用户,通过减少端用户和CDN集群之间(内容从这里收到)链路和路由器的数量,从而改善了用户感受的时延和吞吐量。由于它是高度分布式设计,维护和管理集群的任务成为挑战。
邀请做客。被大多数CDN公司所采用的,该原则是通过在少量(例如10个)关键位置建造大集群来邀请到ISP做客。这些CDN通常将集群放置在因特网交换点(IXP)。与深入设计原则相比,邀请做客设计通常产生较低的维护和管理开销,可能以对端用户的较高时延和较低吞吐量作为代价。

R25.除了如时延、丢包和带宽性能等网络相关的考虑外,设计一种CDN服务器选择策略时还有其他重要因素。它们是什么?P101

答: 负载均衡、昼夜问题、热点流量、ISP收费、服务器集群管理和维护开销等因素。

2.7节

R26. 2.7节中所描述的UDP服务器仅需要一个套接字,而TCP服务器需要两个套接字。为什么?如果TCP服务器支持n个并行连接,每条连接来自不同的客户主机,那么TCP服务器将需要多少个套接字?

答:对于UDP服务器,没有欢迎套接字,来自不同客户机的所有数据都通过这个套接字进入服务器。对于TCP服务器,有一个欢迎套接字,每当客户机启动到服务器的连接时,就会创建一个新的链接套接字。因此,要支持n个同时连接,服务器需要n+1个套接字。

R27.对于2.7节所描述的运行在TCP之上的客户——服务器应用程序,服务器程序为什么必须先于用户程序运行?对于运行在UDP之上的客户——服务器应用程序,客户程序为什么可以先于服务器程序运行?

答:对于TCP应用程序,一旦执行客户机,它会尝试启动与服务器的TCP连接。如果TCP服务器没有运行,那么客户机将无法握手,当然也无法建立连接。对于UDP应用程序,客户端在执行时不会立即启动连接或尝试与UDP服务器进行通信。

面试经典题目(5月14号)

R1. 从输入URL到页面展示的详细过程

参考文章:从输入URL到页面展示的详细过程(从输入url到页面展示到底发生了什么)
答:①输入URL地址
②应用层进行DNS解析
③应用层生成HTTP请求报文
④传输层建立TCP链接
⑤网络层使用IP协议来选择路线
⑥数据链路层实现网络相邻节点间可靠的数据通信
⑦物理层传输数据
⑧服务器处理反向传输
⑨服务器返回一个HTTP响应
⑩浏览器渲染

  • 10
    点赞
  • 139
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

highlight2333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值