编程技术文章分享与教程

网站首页 > 技术文章 正文

复习题2.网络应用层 网络应用层级

hmc789 2024-11-13 11:32:57 技术文章 2 ℃

R1.列出5种非专用的因特网应用及它们所使用的应用层协议。
浏览网页 HTTP协议
文件传输 FTP协议
P2P下载 P2P协议
发送邮件 SMTP协议
DNS服务 DNS协议

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

网络体系结构是分层的体系结构,但从应用程序开发者的角度看,网络体系结构是固定的,为应用程序提供了特定的服务集合。

应用程序体系结构规定了如何在各种端系统上组织应用程序。有两种主流体系结构:客户-服务器体系结构和对等体系结构。

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

最先发起会话的进程是客户,最先等待连接的进程是服务器。

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

不同意。因为一旦有通信的进程,就必然会有客户端和服务器端。而且从另一个意义上讲,P2P也是有服务器来记录信息的。

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

标识对方主机使用IP地址,标识对方主机上的进程使用端口号。

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

使用UDP。UDP不需要建立连接,拥塞控制等等,所以更快。

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

例如,使用Google文档进行远程文字处理就是一个这样的例子。但是,由于Google文档在Internet上运行(使用TCP),因此没有提供定时保证。

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

可靠数据传输 TCP
吞吐量 TCP/UDP
定时 TCP/UDP
安全性 TCP+SSL

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

SSL在应用层运行。SSL套接字从应用层接收未加密的数据,对其进行加密,然后将其传递给TCP套接字。如果应用程序开发人员希望使用SSL增强TCP,则必须在应用程序中包含SSL代码。

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

确认身份,建立TCP连接,使客户和服务器为接受大量的分组做好准备。

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

因为上述协议需要可靠的数据传输,不允许丢失数据。

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

当用户第一次访问站点时,服务器将创建一个唯一的标识号,在其后端数据库中创建一个条目,并将此标识号作为cookie编号返回。此cookie编号存储在用户的主机上,并由浏览器管理。在每次后续访问(和购买)期间,浏览器将cookie编号发送回站点。因此,站点知道这个用户(更准确地说,是这个浏览器)访问该站点的时间。

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

Web缓存器中存储了最近请求过的对象的副本。web请求会先定向到Web缓存器。
只能减少部分对象的时延。因为Web缓存器只存储了访问过的副本,未访问过的对象在Web缓存器中没有。此时就不能减少请求该对象的时延了。

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

首先用telnet请求一次内容,确定内容的Last-Modified时间。然后再用一个晚于该时间的时间去询问对象即可。

  • telnet baidu.com 80
    GET /img/baidu_jgylogo3.gif HTTP/1.1
    Host:
    www.baidu.com
  • telnet baidu.com 80
    GET /img/baidu_jgylogo3.gif HTTP/1.1

Host: www.baidu.com
If-modified-Since:Mon, 14 Jan 2019 13:29:08 GMT

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

几个流行的消息应用程序列表:WhatsApp、Facebook Messenger、微信和Snapchat。这些应用程序使用与SMS不同的协议。

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

Alice主机-(HTTP协议)-Alice的服务器-(SMTP协议)-Bob的服务器-(POP3协议)-Bob的主机

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

收到的报文首部:

HTTP/1.1 200 OK

Date: Sat, 19 Jan 2021 13:03:02 GMT

Server: Apache

Last-Modified: Sat, 31 Dec 2020 09:54:00 GMT

ETag: "1cdb-4b56054245e00"

Accept-Ranges: bytes

Content-Length: 7387

Cache-Control: max-age=86400

Expires: Sun, 20 Jan 2021 13:03:02 GMT

Connection: Keep-Alive

Content-Type: text/html


HTTP/1.1 200 OK

HTTP/1.1表示HTTP版本

200 OK 表示请求成功

Date: Sat, 19 Jan 2021 13:03:02 GMT

表示服务器发送响应报文的日期和时间

Server: Apache

用的Apache服务器

Last-Modified: Sat, 31 Dec 2020 09:54:00 GMT

请求对象最后修改的日期和时间

ETag: "1cdb-4b56054245e00"

对象的版本标记

Accept-Ranges: bytes

表示支持字节的断点续传

Content-Length: 7387

对象的字节数

Cache-Control: max-age=86400

表示当访问此对象后的86400秒内再次访问不会去服务器请求,而是使用缓存

Expires: Sun, 20 Jan 2021 13:03:02 GMT

该对象过期的日期

Connection: Keep-Alive

客户端到服务器端的连接持续有效

Content-Type: text/html

对象类型是html文本

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

区别是,如果选择下载并保留模式,即使存放在本地的邮件丢失,用户也能重新取回邮件。

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

可以有完全相同的主机名。RR必须有一条类型为MX的记录。

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

您应该能够使用.edu电子邮件地址查看发送方的IP地址。但是,如果用户使用Gmail帐户,您将无法看到发件人的IP地址。

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

不是必须进行回报的。由BitTorrent的机制决定,没有任何“必须”回报的操作

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

每过30秒,其它对等方将随机的选择一名新的对等方开始对换,如果选择到了Alice,则Alice就会获得文件块。

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

覆盖网络是一种面向应用层的网络,包括对等方和对等方之间由虚拟联络构成的抽象的逻辑网。覆盖网络不包括路由器。在覆盖网络中“边”就是对等方和对等方之间的逻辑链路。

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

一种服务器布局理念称为Enter Deep,它通过在全世界的ISP中部署服务器集群,深入到Internet服务提供商的接入网中。目标是减少延迟,提高终端用户和CDN服务器之间的吞吐量。

另一种理念是将ISP带回家,在较小数量的站点上构建大型CDN服务器集群,并通常将这些服务器集群放置在IXP(Internet Exchange Point)中。这带来了居家设计典型的结果是较低的维护和管理成本,与进入深度的设计理念。

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

除了与网络相关的因素之外,还有一些重要的因素需要考虑,例如负载平衡(客户端不应指向过载集群)、日效应、网络中DNS服务器之间的变化、很少访问视频的可用性有限以及需要缓解流行视频内容可能产生的热点。

另一个需要考虑的因素是ISP交付成本-可以选择集群,以便使用特定的ISP来承载CDN到客户端的通信,同时考虑到ISP和集群运营商之间的契约关系中的不同成本结构。

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

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

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

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

标签列表
最新留言