本节书摘来华章计算机《计算机网络:自顶向下方法(原书第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.com)吗?包含邮件服务器主机名的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:首部指出了该响应中对象最后一次修改的时间。
e.HTTP响应报文决不会具有空的报文体。
P2.阅读有关FTP的RFC 959。列出这个RFC所支持的所有客户命令。
P3.考虑一个HTTP客户要获取一个给定URL的Web页面。该HTTP服务器的IP地址开始时并不知道。在这种情况下,除了HTTP外,还需要什么运输层和应用层协议?
P4.考虑当浏览器发送一个HTTP GET报文时,通过Wireshark俘获到下列ASCII字符串(即这是一个HTTP GET报文的实际内容)。字符是回车和换行