复习题
R1.列出5种非专用的因特网应用以及它们所使用的应用层协议。
应用 | 协议 |
---|---|
The Web | HTTP |
file transfer | FTP |
remote login | Telnet |
Network News | NNTP |
SMTP |
R2.网络体系结构与应用程序体系结构之间有什么区别?
网络体系结构是指以分层的方式来描述通信过程的组织体系。(例如五层网络结构);另一方面,应用体系结构是由应用程序的研发者设计,并规定应用程序的主要结构(例如 客户机/服务器或 P2P)。从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合。
R3.对两进程之间的通信会话而言,哪个进程是客户,哪个进程是服务器?
在给定的一对进程之间的通信会话场景中,发起通信的进程为客户机,在会话开始时等待联系的进程是服务器。如Web,浏览器是一个客户进程,Web服务器是一台服务器进程。对于P2P文件共享,下载文件的对等方标示为客户,上载文件的对等方标示为服务器。
R4.对一个P2P文件共享应用,你同意“一个通信会话不存在客户端和服务器端的概念”的说法吗?为什么?
不同意这种说法。在所有的通信会话中,都存在一个客户端和服务器端。对于P2P文件共享应用,下载文件的对等方标示为客户,上载文件的对等方标示为服务器。
R5.运行在一台主机上的一个进程,使用什么信息来标识运行在另一台主机上的进程?
需要两种信息,一是目的主机的地址,二是目的主机中的接收进程的标识符。在因特网上,目的主机的地址由其 IP 地址标识,而进程的标识符一般用端口号标识。所以,只需要目的主机的IP和目的套接字(或进程)的端口号。
R6.假定你想尽快地处理从远程客户到服务器的事务,你将使用TCP还是UDP?为什么?
UDP。因为用UDP的话不用建立连接再通信,而且UDP没有拥塞控制机制,可以以任何速率向下面的层注入数据。
R7.参见图2-4,我们在该图中看到所列出的应用程序没有一种同时既要求“无数据丢失”又要求“定时”。你能设想出一种既要求无数据丢失又要求高度时间敏感的应用程序吗?
没有这种应用,因为如果要求无数据丢失就要进行可靠控制,这种额外的可靠保证控制势必无法达到时间敏感的要求。而高度时间敏感的应用一般会应用类似UDP的轻量级运输协议,但无法保证数据在运输过程中的可靠性。
R8.列出运输协议能够提供的4种宽泛类型的服务。对于每种服务类型,指出是UDP还是TCP(或这两种协议)提供这样的服务。
①可靠数据传输:TCP有,UDP没有;
②吞吐量:两个都有;
③定时:两个都有;
④安全性:TCP可以通过SSL保证安全,而UDP没有。
R9.前面讲过TCP能用SSL来强化,以提供进程到线程安全性服务,包括加密。SSL运行在运输层还是应用层?如果某应用程序研制者想要用SSL来强化UDP,该研制者应当做些什么工作?
①SSL运行在应用层,它不是与TCP和UDP在相同层次上的第三种因特网运输协议,而是一种对TCP的加强。
②研制者的工作主要是接受者如何高效解密数据(todo)。
R10.握手协议的作用是什么?
提示客户机和服务端做好分组传输的准备。
R11.为什么HTTP、FTP、SMTP、POP3都运行在TCP而不是UDP之上?
因为这些都要求可靠的数据传输,所以都运行在TCP上。UDP是无连接、不可靠的运输层协议。
R12.考虑一个电子商务网站需要保留每一个客户的购物记录。描述如何使用Cookie来完成该功能。
Cookie技术有4个组成部分:1.在HTTP响应报文中有一个Cookie首部行。2.在HTTP请求报文中有一个Cookie首部行。3.在用户端系统中保留一个Cookie文件,由用户的浏览器进行管理。4.在Web站点上有一个后端数据库。
当请求报文到达一个电子商务网站服务器时,该服务器站点将产生一个唯一识别码,并以此作为索引在它的后端数据库中产生一个表项。接下来该服务器用一个含set-cookie:首部行的HTTP响应报文对客户的浏览器进行响应,其中set-cookie:首部行含有识别码。当客户的浏览器收到了该HTTP响应报文时,他会看到该set-cookie:首部。该浏览器在它管理的特定cookie文件中添加一行,其中包含该服务器的主机名和set-cookie:首部中识别码。当客户继续浏览该网站时,每请求一个web页面,其浏览器就会从它的cookie文件中获取这个网站的识别码,并放到HTTP请求报文中含有该识别码的cookie首部行中。特别是,发往该站点服务器的每个HTTP请求报文都包括该首部行,在这种方式下,网站服务器就可以跟踪客户在该站点的活动。
R13.描述Web缓存器如何减少接受被请求的对象的时延。Web缓存器将减少用户请求的所有对象的时延还是其中的某些对象?为什么?
Web缓存器也叫代理服务器,它是能够代表初始web服务器来满足HTTP请求的网络实体。Web缓存器有自己的磁盘存储空间,并在该存储空间中保存最近请求过的对象的拷贝。 (1) 浏览器建立一个到web缓存器的TCP连接,并向web缓存器中的对象发送一个HTTP请求。 (2) Web缓存器检查本地是否存储了该对象拷贝。如果有,web缓存器就用HTTP响应报文向客户机浏览器返回该对象。 (3) 如果web缓存器没有该对象,它就与该对象的初始服务器打开一个TCP连接。Web 缓存器则在TCP连接上发送获取该对象的HTTP请求。在收到请求后,初始服务器向web缓存器发送具有该对象的HTTP响应。 (4) 当web缓冲器接收该对象时,它在本地存储空间存储了一份拷贝,并用HTTP响应报文向客户机的浏览器发送该拷贝。 Web缓存器可以大大减少对客户机请求的响应时间,特别是当客户机与初始服务器之间的瓶颈带宽远低于客户机与web缓存器之间的瓶颈带宽时更是如此。如果在客户机与web 缓存器之间有一个高速连接,并且用户所请求的对象在web缓存器上,则web缓存器可以迅速将该对象交付给用户。
Web缓存能够减小用户请求的所有对象的时延,即使是该对象没有被缓存,因为缓存能够减少链路上的流量,因此改善了所有应用的性能。
R14.用Telnet向Web服务器注册并发送一个多行的请求报文。在该请求报文中包含If-modified-since:
首部行,迫使响应报文中出现304 Not Modified
状态代码。
理解
If-modified-since:
的含义:仅当自该字段指定的日期之后对请求的对象进行过修改,才发送该对象(该请求请求的对象),否则返回304 Not Modified
状态码。
R15.为什么说FTP在“带外”发送控制信息?
因为FTP使用了两个并行的TCP连接来传输文件,一个控制连接,另一个数据连接。控制连接用于在两个主机之间传递控制信息(如用户标识、口令、改变远程目录的命令以及存放和获取文件的命令等)。数据连接用于实际发送一个文件。因此FTP协议使用一个分离的控制连接,所以我们也称FTP的控制信息是带外传送。(相应地,HTTP是带内发送控制信息:在传输文件的同一个TCP连接中发送请求和响应首部行)。
R16.假定Alice 使用一个基于web的电子邮件账户(如Hotmail或gmail)向Bob发报文,而Bob使用pop3访问他的邮件服务器来获取自己的邮件。讨论报文是怎样从Alice主机到达Bob主机的。列出在两台主机间移动该报文时所使用的各种应用层协议。
从Alice的代理到Alice的邮件服务器是HTTP协议,而从Alice的邮件服务器到Bod的邮件服务器是SMTP协议,从Bob的邮件服务器到Bob的代理是POP3协议。
R17.将你最近收到的报文首部打印出来。其中Received:
首部行有多少行?分析该报文中的报文首部行中的每一行。
略。
R18.从用户的观点看,POP3协议中“下载并删除”模式和“下载并保留”模式有什么区别?
“下载并删除”是指用户在一台机器上收取一个邮件之后,那么在其它的机器上将不能再次收取这个邮件。而“下载并保留”是在一台机器上接受这个邮件之后,用户在其他客户端也可以接受这个邮件。
R19.一个机构的web服务器和邮件服务器可以有完全相同的主机名别名(如foo.com)吗?包含邮件服务器主机名的RR有什么样的类型?
可以,一个机构的邮件服务器和 Web 服务器可以有完全相同的主机名别名。
RR(resource record),即资源记录,提供了主机名到IP地址的映射。MX记录被用来映射邮件服务器的主机名到它的 IP 地址。如果 Type=MX,则 Value 是别名为Name的邮件服务器的规范主机名。为了获得邮件服务器的规范主机名,DNS 客户机应当请求一条 MX 记录;而为了获得其他服务器的规范主机名,DNS 客户机应当请求 CNAME记录。
R20.仔细检查收到的电子邮件,查找由使用.edu电子邮件地址的用户发送的报文首部。从其首部,能够确定发送该报文的主机的IP地址吗?对于由gmail账号发送的报文做同样的事情。
todo
R21.在BitTorrent中,假定Alice向Bob提供一个30秒间隔的文件块吞吐量。Bob将必须进行回报,在相同的间隔中向Alice提供文件块吗?为什么?
没有必要,todo
R22.考虑一个新对等方Alice加入BitTorrent而不拥有任何文件块。没有任何块,因此她没有任何东西可上载,她无法成为任何其他对等方的前4位上载者。那么Alice将怎样得到她的第一个文件块呢?
TODO
R23.覆盖网络是什么?它包括路由器吗?在覆盖网络中边是什么?
TODO
R24.考虑一个具有网状覆盖网络拓扑的DHT(即每个对等方跟踪系统中的所有对等方)。这样设计的优点和缺点各是什么?环形DHT(无捷径)的优点和缺点各是什么?
TODO
R25.列出至少4个不同的应用,它们本质上适合P2P体系结构。
TODO
R26.2.7节中所描述的UDP服务器仅需要一个套接字,而TCP服务器需要两个套接字。为什么?如果TCP服务器支持n个并行连接,每条连接来自不同的客户主机,那么TCP服务器将需要多少个套接字?
UDP服务器中,是没有welcoming socket的,来自不同客户机的所有数据通过该一个scoket进入服务器。
TCP服务器中,有一个welcoming socket,而每个客户机发起到服务器的连接时,一个新的套接字被创建。因此,为支持n个并行连接时,服务器将需要n + 1个socket。
R27.对于2.7节所描述的运行在TCP之上的客户-服务器应用程序,服务器程序为什么必须先于客户程序运行?对于运行在UDP之上的客户-服务器应用程序,客户程序为什么可以先于服务器程序运行?
对于TCP应用,只要在执行客户端时,它会尝试发起TCP与服务器连接。如果TCP服务器没有运行,则客户端将无法建立连接。
对于UDP应用,客户端在立即执行后不发起连接(或试图与UDP服务器通信)。
习题
TODO
网友评论