参考答案

<>2.1节

RI. 列出5种非专用的因特网应用及它门所吏用的应用层协议。

* 浏览器:HTTP((HyperText Transfer Protocol)
* 对等文件传输:FTP(File Transfer Protocol)
* 网络安全协议:SSH(Secure Shell)
* 电子邮件:SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol -
Version 3),IMAP(Internet Mail Access Protocol)
* 远程连接:Telnet
R2. 网络体系结构与应用程序体系结构之间有什么区别?

​ 网络体系结构指的是网络层次的组织形式,比如我们常见的五层网络结构;应用体系结构指的是应用当中各个部分的组织形式,如客户—服务器体系结构或P2P体系结构。

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

​ 发起通信的进程是客户;等待被联系的进程是服务器

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

​ 不同意。对于P2P文件共享而言,接受文件的为客户进程,发送文件的为服务器进程。一个进程既可能是客户端,也可能是服务器。

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

​ 目标主机的IP地址和目标套接字的端口号

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


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

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

​ 商品限时秒杀、优惠卷的限时发放、百亿补贴券的抢购。时间和订单信息十分敏感

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

运输服务TCPUDP
可靠数据传输√×
吞吐量××
定时××
安全性××
R9. 前面讲过TCP能用SSL来强化,以提供进程到进程的安全性服务,包括加密。SSL
运行在运输层还是应用层?如果某应用程序研制者想要用SSL来强化UDP,该研制者应当做些什么工作?

​ 应用层;研制者需要在应用程序的客户端和服务端代码中插入SSL代码。

<>2.2~2.4节

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

​ 确认身份,是指主要用来让客户端及服务器确认彼此的身份的一类网络协议

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

​ TCP具有面向连接服务和可靠数据传输服务,还具有拥塞控制机制,符合HTTP、SMITP 及POP3的对数据传输敏感性的要求

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


cookie:用户与服务器的交互。当新的客户访问网站时,生成cookie并返回给客户,给浏览器保管,同时服务器也记录一份cookie。等这个客户再次访问或买东西时,浏览器带着这个cookie将请求发送到服务器,服务器再在对应的cookie上添加商品记录。(存储数据结构可用
Map<Cookie, List<Order>>来模拟)

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


当用户访问某一个资源时,其主机会先向web缓存器发送一个请求,如果用户请求的资源就在web缓存器上,则web缓存器将会直接将资源返回给用户。如果没有,则向服务器请求再返回给用户,并在本地存下该资源。

​ Web
缓存器中保存最近请求过的对象的副本,会减少所有对象的时延。由于web缓存器一般离用户更近,在web缓存器已有资源的情况下,可以降低时延。而在没有资源,向服务器请求时,由于web缓存器的存在,大大减小了服务器以及网络核心链路的压力,所以这部分时延也会有所降低。

RI4. Telnet到一台Web服务器并发送一个多行的请求报文。在该请求报文中包含If - modifed -
sincec:首部行,迫使响应报文中出现“304 Not Modifed"状态代码。

​ 对。

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

​ 微信、QQ、钉钉……

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

* Alice使用浏览器作为用户代理,基于HTTP协议将邮件发送到Alice的邮件服务器
* Alice的邮件服务器通过SMTP协议将邮件发送到Bob的邮件服务器
* Bob的主机通过POP3协议获取到Bob的邮件服务器上的邮件
R17. 将你最近收到的报文首部打印出来。其中有多少Recived:首部行?分析该报文的首部行中的心一行。

​ 略

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


在下载并删除模式:在用户从POP服务器下载他的邮件后,信息就被删除。对移动的用户不便,因为用户无法从不同的机器上访问邮件。也就是仅能最初那台访问服务器的机器存有邮件。


在下载并保留模式:在用户取回邮件后,邮件不会被删除。因为每次当用户在一台新的机器上取回存储的邮件时,所有的没有被删除的信息都将会被传送的新的机器上(包括非常老的邮件)。例如QQ邮箱就是下载并保留模式,比如在其他电脑登陆Steam的时候,Steam会发送一封验证码给你,这个时候移动端的QQ邮箱会收到,Web端的QQ邮箱也会收到。

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

可以,包含邮件主机名的RR有MX类型和A类型,MX记录邮件服务器的简写全名映射,A记录邮件服务器的全名和IP地址映射。

RR(Resource Record)是指共同实现DNS分布式数据库所有的DNS服务器存储资源记录

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

​ 可以;不行。

<>2.5节

R21. 在BiToment中,假定Alice 向Baob 提供个30秒间隔的文件块吞吐量。Bob
将必须进行回报,在相同的间隔中向Alice提供文件块吗?为什么?

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

​ 在 BitTorrent 中,对等方们每过 30 秒随机选择另外的一个邻居发送块,当 Alice 被随机选中时,她将得到第一个块。

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

​ 覆盖网路是一种应用层网络(对等方组成的逻辑网络,不是物理链路),在P2P协议中,覆盖网路由文件共享系统的节点与节点间的逻辑联系
(两个对等方之间的TCP连接)构成,这条逻辑联系就是“边”,不包括路由器。

<>2.6节

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

* 深入(Enter Deep)

在遍及全球的ISP中部署服务器集群来深入到ISP接入网中。目标是靠近端用户,通过减少端用户到CDN集群之间的链路长度和路由器数量,从而改善用户请求时延。但管理、维护这一堆集群的成本很高。
* 邀请做客(Bring Home)

这种方式被许多CDN公司采用。通过在少量关键位置建造大型集群来邀请周边ISP访问。不是将集群放在ISP中,通常放在IXP中(因特网交换点)。这种设计维护和管理开销更低,但牺牲了部分端用户的体验。
R25. 除了如时延、丢包和带宽性能等网络相关的考虑外,设计种CDN服务器选择策略时还有其他重要因素。它们是什么?

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

<>2.7节

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


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

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


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

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信