计算机网络(自顶向下方法)(原书第4版)课后复习题第二章

第二章 应用层

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

答:Web服务的HTTP协议;文件传输的FTP协议;电子邮件的SMTP;远程控制的Telnet;P2P应用的P2P协议;文件传输的FTP协议。

2.1.2 网络体系结构与应用程序体系结构之间有什么区别?

答:从应用程序的开发者角度看,网络体系结构是固定的,并为应用程序开发提供了相应的接口。但是,另一方面,应用程序体系结构由应用程序研发者设计,开发者可能使用两种主流体系结构之一:客户机/服务器体系结构或对等体系结构。

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

答:发起通信的是客户机,接受通信的是服务器。

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

答:不同意,一个进程可以既是客户机又是服务器。

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

答:目的端口号

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

答:UDP。因为用UDP的话不用建立连接再通信,而且UDP没有拥塞控制机制,可以以任何速率向下面的层注入数据。

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

答:现在还没有。

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

答:可靠数据传输:TCP有,UDP没有;吞吐量:两个都有;定时:两个都有;安全性:TCP可以通过SSL保证安全,而UDP没有。

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

答:SSL在应用层进行操作,SSL套接字接受来自未加密的数据应用层,将其加密,然后将其传递到TCP套接字。

2.2.10 握手协议的作用是什么?

答:提示客户机和服务端做好分组传输的准备。

2.2.11 为什么HTTP,FTP,SMTP,POP3都运行在TCP而不是UDP之上?

答:因为这些都要求可靠的数据传输,所以都运行在TCP上。

2.2.12 考虑一个电子商务网站需要保留每一个客户的购物记录。描述如何使用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请求报文都包括该首部行,在这种方式下,网站服务器就可以跟踪客户在该站点的活动。

2.2.13 描述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缓存器可以迅速将该对象交付给用户。

2.2.14 用Telnet向Web服务器注册并发送一个多行的请求报文。在该请求报文中包含If-modified-since:首部行,迫使响应报文中出现304 Not Modified状态代码。

答:略。

2.2.15 为什么说FTP在“带外”发送控制信息?

答:因为FTP使用了两个并行的TCP连接来传输文件,一个控制连接,另一个数据连接。控制连接用于在两个主机之间传递控制信息。数据连接用于实际传输一个文件。因此FTP协议使用一个分离的控制连接,所以我们也称FTP的控制信息是带外传送。

2.2.16 假定Alice 使用一个基于web的电子邮件账户(如Hotmail或gmail)向Bob发报文,而Bob使用pop3访问他的邮件服务器来获取自己的邮件。讨论报文是怎样从Alice主机到达Bob主机的。列出在两台主机间移动该报文时所使用的各种应用层协议。

答:从Alice的代理到Alice的邮件服务器是HTTP协议,而从Alice的邮件服务器到Bod的邮件服务器是SMTP协议,从Bob的邮件服务器到Bob的代理是POP3协议。

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

答:略。

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

答:“下载并删除”是指用户在一台机器上收取一个邮件之后,那么在其它的机器上将不能再次收取这个邮件。而“下载并保留”是在一台机器上接受这个邮件之后,用户在其他客户端也可以接受这个邮件。

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

答:(1)如果type=A,则Name是主机名,Value是该主机名的IP地址。(2)如果type=NS,则Name是域(如foo.com),而Value是知道如何获得该域中主机IP地址的权威DNS服务器的主机名。(3)如果Type=CNAME,则Value是别名为Name的主机对应的规范主机名。(4)如果Type=MX,则Value是别名为Name的邮件服务器的规范主机名。

2.6.20 在BitTorrent中,假定Alice以30s间隔向Bob发送文件快。Bob必须回应,以相同的间隔向Alice发送文件块吗?为什么?

答:是,因为每过30秒Alice将随机地选择一名新的对换伙伴并开始与那位伙伴进行对话。如果这两个对等方都满足对换要求,那么它们会将对方放入其前四位列表中并继续与对方进行对话,直到对等方之一发现了一个更好的伙伴为止。

2.6.21 考虑一个新对等方Alice加入BitTorrent,但她没有任何文件块。由于没有任何文件块,没有什么可上载所以她不能成为任何其他对等方的前4位上载者。那么,Alice将怎样得到她的第一个文件块呢?

答:当一个新的对等方Alice加入洪流时,追踪器随机地从参与对等方集合中选择一些对等方,并将这些对等方的IP地址发送给Alice。Alice持有对等方的这张列表,视图与该列表上的对等方创建并行的TCP连接。

2.6.22 覆盖网络是什么?它包括路由器吗?在覆盖网络中什么是边?查询洪泛覆盖网络是怎样创建和维护的?

答:对等方形成一个抽象的逻辑网络,这个称为覆盖网络。它只是逻辑网络,不包括实际网络。如果对等方x与对等方y维护一个tcp连接,那么称x和y之间有一条边。一个主机向它的邻居发出一个查询报文,它的邻居又给它的邻居发出一个查询,即这样查询下去,只到查询到东西然后返回一个报文。

2.6.23 具有集中式索引的即时讯息以何种方式采用客户机/服务器和 P2P 体系结构的混合结构?

答:由一台大型服务器来提供索引服务。具有集中式索引的P2P文件共享系统实际上是一种P2P和客户机/服务器混合体系结构。文件分发是P2P的,但搜索是客户机/服务器的。

2.6.24 今天大多数即时讯息系统使用集中式索引来定位用户。考虑使用查询洪泛覆盖网络(如Gnutella)来定位用户。描述如何实现这个设计,并讨论其优点与缺点。

答:比如Alice向Bob发送消息,则Alice向超级对等方发出请求。然后Alice的超级对等方寻找Bob的超级对等方。然后Bob的超级对等方寻找Bob,这样就建立了一个连接,他们之间便可以发送即时消息。优点:这样寻找用户速度快,而且也不用消耗用户太多的资源。缺点:如果超级对等方发生瘫痪,则整个网络将无法使用。

2.6.25 Skype针对两个重要功能使用了P2P技术。它们是什么?

答:用户定位和NAT遍历。

2.6.26 至少列出4个不同的应用,它们本质上采用P2P体系结构。(提示:文件分发和即时讯息就是两个。)

答:文件分发,即时讯息,P2P因特网电话,视频会议。

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

答:(1)TCP有初始握手的过程。因此需要一个欢迎套接字,并且有流域套接字相联系,因此需要两个套接字,而UDP服务没有这两点,因此需要一个套接字。(2)TCP服务器需要n+1个套接字。

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

答:因为运行在TCP之上的客户机/服务器应用程序在客户机运行后,它会尝试向服务器进程发起连接,而此时如果服务器进程没有运行,客户机进程就可能认为服务器不可达,从而返回错误信息;而运行在UDP之上的客户机/服务器应用程序在客户机进程运行之后不会向服务器进程发起连接,而是等待用户输入,因此客户程序可以先于服务器程序运行

猜你喜欢

转载自blog.csdn.net/shaft_/article/details/79959266