应用层的作用

第六章、应用层 本章的习题 互联网的域名结构是怎么样的?它与目前的电话网的号码结构有何异同之处&…

第六章、应用层

本章的习题

  1. 互联网的域名结构是怎么样的?它与目前的电话网的号码结构有何异同之处?
    (1)域名的结构由标号序列组成,各标号之间用点隔开:
    … . 三级域名 . 二级域名 . 顶级域名各标号分别代表不同级别的域名。
    (2)电话号码分为国家号结构分为(中国 +86)、区号、本机号。

  2. 域名系统的主要功能是什么?域名系统中的本地域名服务器、根域名服务器、顶级域名服务器以及权限域名权服务器有何区别?
    域名系统的主要功能:将域名解析为主机能识别的IP地址。
    互联网上的域名服务器系统也是按照域名的层次来安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。共有三种不同类型的域名服务器。即本地域名服务器、根域名服务器、授权域名服务器。当一个本地域名服务器不能立即回答某个主机的查询时,该本地域名服务器就以 DNS 客户的身份向某一个根域名服务器查询。若根域名服务器有被查询主机的信息,就发送 DNS 回答报文给本地域名服务器,然后本地域名服务器再回答发起查询的主机。但当根域名服务器没有被查询的主机的信息时,它一定知道某个保存有被查询的主机名字映射的授权域名服务器的IP地址。通常根域名服务器用来管辖顶级域。根域名服务器并不直接对顶级域下面所属的所有的域名进行转换,但它一定能够找到下面的所有二级域名的域名服务器。每一个主机都必须在授权域名服务器处注册登记。通常,一个主机的授权域名服务器就是它的主机 ISP 的一个域名服务器。授权域名服务器总是能够将其管辖的主机名转换为该主机的 IP 地址。互联网允许各个单位根据本单位的具体情况将本域名划分为若干个域名服务器管辖区。一般就在各管辖区中设置相应的授权域名服务器。

  3. 举例说明域名转换的过程。域名服务器中的高速缓存的作用是什么?
    (1)把不方便记忆的IP地址转换为方便记忆的域名地址。
    (2)作用:可大大减轻根域名服务器的负荷,使互联网上的 DNS 查询请求和回答报文的数量大为减少。

  4. 设想有一天整个互联网的 DNS 系统都瘫痪了(这种情况不大会出现),试问还可以给朋友发送电子邮件吗?
    有可能,如果你能够直接使用对方的邮件服务器的 IP 地址。

  5. 文件传送协议 FTP 的主要工作过程是怎样的?为什么说 FTP 是带外传送控制信息?主进程和从属进程各起什么作用?
    FTP 使用客户/服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。
    FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
    主进程的工作步骤:
    1、打开熟知端口(端口号为 21),使客户进程能够连接上。
    2、等待客户进程发出连接请求。
    3、启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
    4、回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。FTP 使用两个 TCP 连接。
    控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
    实际用于传输文件的是 “数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建 “数据传送进程” 和 “数据连接”,用来连接客户端和服务器端的数据传送进程。
    数据传送进程实际完成文件的传送,在传送完毕后关闭 “数据传送连接” 并结束运行。

  6. 简单文件传送协议 TFTP 与 FTP 的主要区别是什么?各用在什么场合?
    文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。TFTP 是一个很小且易于实现的文件传送协议。TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施
    TFTP 只支持文件传输而不支持交互。TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

  7. 远程登录 TELNET 的主要特点是什么?什么叫做虚拟终端 NVT?
    (1)用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回
    到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
    (2)TELNET定义了数据和命令应该怎样通过互联网,这些定义就是所谓的网络虚拟终端NVT。

  8. 解释以下名词。各英文缩写词的原文是什么?
    【www,URL,HTTP,HTML,CGI,浏览器,超文本,超媒体,超链,页面,活动文档,搜索引擎。】

    www: 万维网WWW(World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所,英文简称为 Web。万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点(也就是所谓的“链接到另一个站点”),从而主动地按需获取丰富的信息。
    URL: 为了使用户清楚地知道能够很方便地找到所需的信息,万维网使用统一资源定位符 URL(Uniform Resource Locator)来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的标识符URL.
    HTTP: 为了实现万维网上各种链接,就要使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,这就是超文本传送协议 HTTP。HTTP是一个应用层协议,它使用 TCP 连接进行可靠的传送。
    CGI: 通用网关接口 CGI 是一种标准,它定义了动态文档应该如何创建,输入数据应如何提供给应用程序,以及输出结果意如何使用。CGI 程序的正式名字是 CGI 脚本。按照计算机科学的一般概念。
    浏览器: 一个浏览器包括一组客户程序、一组解释程序,以及一个控制程序。
    超文本: 超文本的基本特征就是可以超链接文档;你可以指向其他位置,该位置可以在当前的文档中、局域网中的其他文档,也可以在互联网上的任何位置的文档中。这些文档组成了一个杂乱的信息网。目标文档通常与其来源有某些关联,并且丰富了来源;来源中的链接元素则将这种关系传递给浏览者。
    超媒体: 超级媒体的简称,是超文本(hypertext)和多媒体在信息浏览环境下的结合。
    超链: 超链接可以用于各种效果。超链接可以用在目录和主题列表中。浏览者可以在浏览器屏幕上单击鼠标或在键盘上按下按键,从而选择并自动跳转到文档中自己感兴趣的那个主题,或跳转到世界上某处完全不同的集合中的某个文档。超链接(hyper text),或者按照标准叫法称为锚(anchor),是使用 <a>标签标记的,可以用两种方式表示。锚的一种类型是在文档中创建一个热点,当用户激活或选中(通常是使用鼠标)这个热点时,会导致浏览器进行链接。
    页面: 页面,类似于单篇文章页面,但是和单篇文章不同的是:1.每个页面都可以自定义样式,而单篇文章则共用一个样式。2.页面默认情况一般不允许评论,而单篇文章默认情况允许评论。3.页面会出现在水平导航栏上,不会出现在分类和存档里,而单篇文章会出现在分类和存档里,不会出现在水平导航栏上。
    活动文档: 即正在处理的文档。在 Microsoft Word 中键入的文本或插入的图形将出现在活动文档中。活动文档的标题栏是突出显示的。一个基于 Windows 的、嵌入到浏览器中的非 HTML 应用程序,提供了从浏览器界面访问这些应用程序的功能的方法。
    搜索引擎: 搜索引擎指能够自动从互联网上搜集信息,经过整理以后,提供给用户进行查阅的系统。

  9. 假定一个超链从一个万维网文档链接到另一个万维网文档时,由于万维网文档上出现了差错而使得超链指向一个无效的计算机名字。这是浏览器将向用户报告什么?
    可能出现一下的画面:
    9.
    但有的浏览器会显示下面的页面信息:
    在这里插入图片描述
    404 Not Found。

  10. 假定要从已知的 URL 获得一个万维网文档。若该万维网服务器的 IP 地址开始时并不知道。试问:除 HTTP外,还需要什么应用层协议和传输层协议?
    应用层协议需要的是 DNS。
    运输层协议需要的是 UDP(DNS 使用)和 TCP(HTTP 使用)。

  11. 你所使用的浏览器的高速缓存有多大?请进行一个试验:访问几个万维网文档,然后将你的计算机与网络断开,然后再回到你刚才访问过的文档。你的浏览器的高速缓存能够存放多少各页面?
    在这里插入图片描述
    这里的 Internet 临时需要使用的磁盘空间,就是浏览器的高速缓存的大小。可以自行调节。

  12. 什么是动态文档?试举出万维网使用动态文档的一些例子。
    Dynamic document 动态文档: 与 www 文档有关的计算机程序,它能生成所需的文档。当浏览器需要动态文档时,服务器就运行该程序并发送输出到浏览器。动态文档程序对每个需求可生成不同的输出。
    动态文档的一个例子是我们使用携程网(www.ctrip.com)购买机票。当我们打开携程网时,便看到了携程网服务器的网页,这就是一种活动文档。例如,我们选择国内机票,当我们键入出发地点、到达地点、日期、人数、舱位等信息后,携程网的服务器就可以根据你键入的数据,生成出符合你需要的各航空公司的航班表。这种航班表不是静态的,而是根据用户的需求动态变化的。当某个航班的机票已经售完时,动态航班表也会显示出某个航班的机票已经无法购买了。

  13. 浏览器同时打开多少个TCP连接进行浏览的优缺点如何?请说明理由。
    优点:简单明了方便。缺点:卡的时候容易死机

  14. 当使用鼠标点击一个万维网文档是,若该文档除了有文本外,还有一个本地 .gif 图像和两个远地 .gif 图像。试问;需要使用那个应用程序,以及需要建立几次 UDP 连接和几次 TCP 连接?
    若使用 HTTP/1.0,需要建立 0 次 UDP 连接,4 次 TCP 连接(文本 1 个和图像 3 个,各使用一个 TCP 连接)。
    若使用 HTTP/1.1,需要建立 0 次 UDP 连接,1 次 TCP 连接(文本 1 个和图像 3 个,都使用这一个 TCP)。

  15. 假定你在浏览器上点击一个 URL,但这个 URL 的 IP 地址以前并没有缓存在本地主机上。因此需要用 DNS 自动查找和解析。假定要解析到所要找的 URL 的 IP 地址共经过 n个 DNS 服务器,所经过的时间分别是 R T T 1 , R T T 2 , … … R T T n RTT_1,RTT_2,……RTT_n RTT1RTT2RTTn。假定从要找的网页上只需要读取一个很小的图片(即忽略这个小图片的传输时间)。从本地主机到这个网页的往返时间是 R T T W RTT_W RTTW。试问从点击这个 URL 开始,一直到本地主机的屏幕上出现所读取的小图片,一共需要经过多少时间?
    解析 IP 地址需要时间是: R T T 1 + R T T 2 + … + R T T n RTT_1+RTT_2+…+RTT_n RTT1+RTT2++RTTn
    建立 TCP 连接和请求万维网文档需要 2 R T T W 2RTT_W 2RTTW
    需要的总时间是: 2 R T T W + R T T 1 + R T T 2 + … + R T T n 2RTT_W+RTT_1+RTT_2+…+RTT_n 2RTTW+RTT1+RTT2++RTTn
    注解:
    在这里插入图片描述
    由上图可看出,请求一个万维网文档所需的时间是该文档的传输时间(与文档大小呈正比)加上两倍的往返时间 RTT(一个 RTT 用于连接 TCP 连接,另一个 RTT 用于请求和接受万维网文档)。TCP 建立连接的三报文握手的第三个报文中的数据,就是客户对万维网文档的请求报文。

  16. 在上题中,假定同一台服务器的 HTML 文件中又链接了三个非常小的对象。若忽略这些对象的发送时间,试计算客户点击读取这些对象所需的时间。
    (1)没有并行 TCP 连接的非持续 HTTP;
    (2)使用并行 TCP 连接的非持续 HTTP;
    (3)流水线方式的持续 HTTP。

    (1)所需时间
    = R T T 1 + R T T 2 + . . . + R T T n RTT_1 + RTT_2 + … + RTT_n RTT1+RTT2+...+RTTn (解析 IP 地址)
    + 2 R T T W +2RTT_W +2RTTW (建立 TCP 连接和读取 HTML 文件)
    + 3 ( 2 R T T W ) +3(2RTT_W) +3(2RTTW)依次读取三个的对象
    = R T T 1 + R T T 2 + . . . + R T T n + 8 R T T W RTT_1+RTT_2+…+RTT_n+8RTT_W RTT1+RTT2+...+RTTn+8RTTW
    8 R T T W 8RTT_W 8RTTW 的解释,见下图:
    在这里插入图片描述
    (2)所需时间
    = R T T 1 + R T T 2 + . . . + R T T n RTT_1 + RTT_2 + … + RTT_n RTT1+RTT2+...+RTTn (解析 IP 地址)
    + 2 R T T W +2RTT_W +2RTTW (建立 TCP 连接和读取 HTML 文件)
    + ( 2 R T T W ) +(2RTT_W) +(2RTTW)并行地建立 TCP 连接和并行地读取三个的对象
    = R T T 1 + R T T 2 + . . . + R T T n + 4 R T T W RTT_1+RTT_2+…+RTT_n+4RTT_W RTT1+RTT2+...+RTTn+4RTTW
    4 R T T W 4RTT_W 4RTTW 的解释,见下图:
    在这里插入图片描述
    (3)所需时间
    = R T T 1 + R T T 2 + . . . + R T T n RTT_1 + RTT_2 + … + RTT_n RTT1+RTT2+...+RTTn (解析 IP 地址)
    + 2 R T T W +2RTT_W +2RTTW (建立 TCP 连接和读取 HTML 文件)
    + R T T W +RTT_W +RTTW连续读取三个对象
    = R T T 1 + R T T 2 + . . . + R T T n + 3 R T T W RTT_1+RTT_2+…+RTT_n+3RTT_W RTT1+RTT2+...+RTTn+3RTTW
    3 R T T W 3RTT_W 3RTTW 的解释,见下图:
    在这里插入图片描述

  17. 在浏览器中应当有几个可选解释程序。试给出一些可选解释程序的名称。
    在浏览器中,HTML 解释程序是必不可少的,而其他的解释程序则是可选的。如 java 可选解释程序,但是在运行 java 的浏览器是则需要两个解释程序,即 HTML 解释程序和 Java 小应用程序解释程序。

  18. 一个万维网网点有 1000 万个页面,平均每个页面有 10 个超链,读取一个页面平均要 100 ms。问要检索整个网点所需的最少时间。
    依题意,一个页面上有 10 个超链,和本题并无关系,因为题目未指出是否还要点击这 10 个超链(也没有给出点击一个超链所需要的时间),以及是否要在点击超链后再继续点击下去,等等。本题实际上问的是,读取这 1000 万个页面需要多少时间。
    既然读取一个页面平均要 100 ms,那么读取 1000 万个页面,就需要时间:
    T = 1 0 7 ∗ 100 ∗ 1 0 − 3 = 1 0 6 T=10^7*100*10^{-3}=10^6 T=107100103=106 s,即约 11.6 天。

  19. 搜索引擎可分为哪两种类型?各有什么特点?
    搜索引擎的种类很多,大体上可划分为两大类,即全文检索搜索引擎分类目录搜索引擎全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在互联网上检索到的信息)。 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。

  20. 试述电子邮件的最主要的组成部件。用户代理 UA 的作用是什么?没有 UA 行不行?
    电子邮件系统的最主要组成部件:用户代理、邮件服务器、以及电子邮件使用的协议。UA就是用户与电子邮件系统的接口。用户代理使用户能够通过一个很友好的接口来发送和接收邮件。没有 UA 不行。因为并非所有的计算机都能运行邮件服务器程序。有些计算机可能没有足够的存储器来运行允许程序在后台运行的操作系统,或是可能没有足够的 CPU 能力来运行邮件服务器程序。更重要的是,邮件服务器程序必须不间断地运行,每天 24 小时都必须不间断地连接在互联网上,否则就可能使很多外面发来的邮件丢失。这样看来,让用户的 PC 机运行邮件服务器程序显然是很不现实的。

  21. 电子邮件的信封和内容在邮件的传送过程中起什么作用?和用户的关系如何?
    一个电子邮件分为信封和内容两大部分。电子邮件的传输程序根据邮件信封上的信息(收信人地址)来传送邮件。RFC-822 只规定了邮件内容中的首部格式,而对邮件的主体部分则让用户自由撰写。用户填写好首部后,邮件系统将自动地将所需的信息提取出来并写在信封上。

  22. 电子邮件的地址格式是怎样的?请说明各部分的意思。
    TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:
    收信人邮箱名@邮箱所在主机的域名
    符号“@”读作“at”,表示“在”的意思。
    收信人邮箱名又简称为用户名,是收件人自己定义的字符串标识符。但应当注意,标志收件人邮箱名的字符串在邮箱所在的邮件服务器的计算机中必须是唯一的。我们知道,邮箱所在的主机的域名在互联网中是唯一的,这样就保证了这个电子邮件地址在整个互联网范围内是唯一的。这对保证电子邮件能够在整个互联网范围内准确交付是十分重要的。电子邮件的用户一般采用容易记忆的字符串。
    例如,电子邮件地址:xiexiren@tsinghua.org.cn

  23. 试简述SMTP通信的三个阶段的过程。
    ① 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器。
    ② 邮件传送。
    ③ 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。

  24. 试述邮局协议POP的工作过程。在电子邮件中,为什么需要使用POP和SMTP这两个协议?IMAP与POP有何区别?
    POP 使用客户/服务器的工作方式。在接收邮件的用户的 PC 机中必须运行 POP 客户机程序,而在其 ISP 的邮件服务器中则运行 POP 服务器程序。POP 服务器只有在用户输入鉴别信息(用户名和口令)后才允许对邮箱进行读取。POP 是一个脱机协议,所有对邮件的处理都在用户的 PC 机上进行;IMAP 是一个联机协议,用户可以操纵 ISP 的邮件服务器的邮箱。

  25. MIME 与 SMTP 的关系是什么的?什么是 quoted-printable 编码和 base64 编码?
    MIME 全称是通用互联网邮件扩充 MIME。它并没有改动或取代 SMTP。MIME 的意图是继续使用目前的 RFC- 822格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。也就是说,MIME 邮件可以在现有的电子邮件程序和协议下传送。
    下图表明了 MIME和 SMTP 的关系:
    在这里插入图片描述
    quoted-printable 编码:对于所有可打印的 ASCII 码,除特殊字符等号外,都不改变。等号和不可打印的 ASCII 码以及非 ASCII 码的数据的编码方法是:先将每个字节的二进制代码用两个十六进制数字表示,然后在前面再加上一个等号。
    base64 编码是先把二进制代码划分为一个 24 位长的单元,然后把每个 24 位单元划分为 4 个 6 位组。每一个 6 位组按以下方法替换成 ASCII 码。6 位的二进制代码共有 64 种不同的值,从 1 到 63。用 A 表示 0,用 B 表示 1,等等。26 个大写字母排列完毕后,接下去再排 26 个小写字母,再后面是 10 个数字,最后用 + 表示 62,而用 / 表示 63。再用两个连在一起的等号 == 和一个等号 = 分别表示最后一组的代码只有 8 位或 16 位。回车和换行都忽略,它们可在任何地方插入。

  26. 一个二进制文件共 3072 字节长,若使用 base64 编码,并且每发送完 80 字节就插入一个回车符 CR 和一个换行符 LF,问一共发送了多少个字节?
    在 base64 编码方案中,24 比特的组被分成 4 个 6 比特单位,每个单位都作为一个合法的 ASCII 字符发送。编码规则是 A 表示 0,B 表示 1 等等,接着是 26 个小写字母表示 26 到 51,10 个数字(0 到 9)表示 52 到 61,最后,+ 和 / 分别表示 62 和 63。= 和 == 分别用来指示最后一组仅包含 8 位或 16 位。回车和换行被忽略不计,因此可以任意插入它们来保持一行足够短。
    ① 在本题中,base64 编码将把报文划分成 1024 个单元,每个单元 3 字节长。每个单元被编码为 4 个字节,所以共有 4096 个字节。如果把这些字节每 80 字节划分为一行,将需要 52 行,所以需要加 52 个CR 和 52 个LF。 4096 + 52 × 2 = 4200 4096+52×2=4200 4096+52×2=4200
    综上所述,该二进制文件用 base64 编码将会有 4200 字节长。
    3072 6 = 512 \frac{3072}{6}=512 63072=512 个 6 字节单元,每一个 6 字节转换为 8 字节单位,因此共有 512 ∗ 8 = 4096 512*8=4096 5128=4096 B。
    4096 = 51 ∗ 80 + 16 4096=51*80+16 4096=5180+16,最后的 16 字节也要作为一行来发送,因此共有 52 行。每行要插入 CR,LF 两个字节,总共要插入 2 ∗ 52 = 104 2*52=104 252=104 B,可知一共发送了 4096 + 104 = 4200 4096 + 104=4200 4096+104=4200 B

  27. 试将数据 11001100 10000001 00111000 进行 base64 编码,并得到最后传输的 ASCII 数据。
    先将 24 比特的二进制数字划分为 4 个 6 位组:
    110011 001000 000100 111000,得出十进制的值 51,8,4,56。因为 6 位组的值在 0 到 63 之间,因此每一个值可以唯一地与一个 ASCII 代码相对应。
    根据 base64 编码表,把上面的这些值转换为对应的 ASCII 代码:zIE4
    在这里插入图片描述
    以上的过程可以由下图表示:
    在这里插入图片描述
    再查找 ASCII 编码表,得出对应的二进制代码为:
    01111010 01001001 01000101 00110100

  28. 试将数据 01001100 10011101 00111001 进行 quoted-printable 编码,并得出最后传送的 ASCII 数据。这样的数据用 quoted-printable 编码后其编码开销有多大?
    01001100 1001101 00111001 有 3 个字节,中间的一个高位为 1,因此它不是 ASCII 码,需要使用 quoted-printable 编码。第一个和第三个字节是 ASCII 码,不变化。
    10011101 的十六进制表示是:9D,前面再加上等号 “=”,变成 “=9D”。
    =,9,D 的 8 位 ASCII 码分别为
    00111101 00111001 01000100,因此最后的结果是 5 个字节的数据:
    01001100 00111101 00111001 01000100 00111001
    编码开销 = 5 – 3 = 2 字节。原来只有 3 字节的数据。
    用百分数表示的编码开销 = 2 3 \frac{2}{3} 32 = 66.7%

  29. 电子邮件系统需要将众的电子邮件地址编成目录以便于查找,要建立这种目录应将人名划分为标准部分(例如,姓/名)。若要形成一个国际标准,那么必须解决哪些问题?
    非常困难。
    例如,人名的书写方法,很多国家(如英、美等西方国家)是先书写姓。但像中国或日本等国家则是先书写姓再写名。有些国家的一些人还有中间的名。称呼也有非常多种类。还有各式各样的头衔。很难有统一的格式。

  30. 电子邮件系统使用 TCP 传送邮件。为什么有时我们会遇到邮件发送失败的情况?为什么有时对方会收不到我们发送的邮件?
    有时对方的邮件服务器不工作,邮件就发送不出去。对方的邮件服务器出故障也会使邮件丢失。

  31. 基于万维网的电子邮件系统有什么特点?在传送邮电时使用什么协议?
    特点:不管在什么地方,只要能上网,在打开万维网浏览器后,就可以收发电子邮件。这时,邮件系统中的用户代理就是普通的万维网。电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。两个邮件服务器之间的传送使用 SMTP。邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。

  32. DHCP 协议用在什么情况下?当一台计算机第一次运行引导程序时,其 ROM 中有没有该 IP 地址,子网掩码或某个域名服务器的 IP 地址?
    动态主机配置协议 DHCP 提供了即插即用连网的机制。这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。

  33. 什么是网络管理?为什么说网络管理是当今网络领域中的热闹课题?
    网络管理即网络的运行、处理、维护(Maintenance)、服务提供等所需要的各种活动。网络管理是控制一个复杂的计算机网络使得它具有最高的效率和生产力的过程。

  34. 解释下列术语,网络元素,被管对象,管理进程,代理进程和管理库。
    网络元素:被管对象有时可称为网络元素。
    被管对象:在每一个被管设备中有许多被管对象,被管对象可以是被管设备中的某个硬件(例如,一块网络接口卡),也可以是某些硬件或软件(例如,路由选择协议)的配置参数集合。
    管理进程:管理程序在运行时就成为管理进程。
    代理进程:在每一个被管理设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫作网络管理代理程序。
    管理库:在被管理的实体中创建了命名对象,并规定了其类型。

  35. SNMP 使用 UDP 传送报文,为什么不使用 TCP?
    使用 UDP 是为了提高网管的效率

  36. 为什么 SNMP 的管理进程使用轮询掌握全网状态用于正常情况而代理进程用陷阱向管理进程报告属于较少发生的异常情况?
    使用轮询以维持对网络资源的实时监视,系统简单并限制通信量。陷阱的中断方式更灵活、快。

  37. SNMP 使用哪几种操作?SNMP 在 Get报文中设置了请求标识符字段,为什么?
    ① SNMP 有两种操作:
    (1)“读”操作,用 GET 报文来检测各被管对象的状况。
    (2)“写” 操作,用 SET 报文来改变各被管对象的状况。
    ② 因为 SNMP 在 GET 报文中设置请求标识符字段,可以允许管理进程同时向许多代理发送请求,代理响应回答的 get-response 报文中也包含相应的请求标识符,以区分不同的代理发回的响应报文。

  38. 什么是管理信息库 MIB?为什么要使用 MIB?
    管理信息库 MIB 是一个网络中所有可能的被管对象集合的数据结构。只有在 MIB 的对象才是 SNMP 能够管理的。MIB 的定义与具体的网络管理协议无关,这对于厂商和用户都有 。

  39. 什么是管理信息结构 SMI?它的作用是什么?
    管理信息结构 SMI 是 SNMP 的重要组成部分。SMI 标准指明了所有的 MIB 变量必须使用 抽象语法记法1(ASN.1)来定义。SMI 定义了命名对象和定义对象类型的通用规则,以及把对象和对象的值进行编码的规则。

  40. 用 ASN.1 基本编码规则对以下 4 个数组(SEQUENCE-OF)进行编码。假定每一个数字占用 4 个字节。
    2345,1236,122,1236

依题意,要进行 ASN.1 编码的数据元素是:

利用 TLV 方法进行编码的要点如下图所示:
-
① 先看 INTEGER 2345 应当如何进行 ASN.1 编码
从下表中,可以查出 INTEGER 类型的类别属于 ASN.1 定义的通用类(编码为 00),格式属于简单数据类型(编码是 0),编号为 00010。
在这里插入图片描述
因此,INTEGER 2345 的 TLV 编码的标记 T 字段的二进制编码是 00000010,用十六进制写出是:0x02。
INTEGER 类型的数(值 V)用 4 字节表示,因此长度字段 L 是但字节长度(1 字节),其值是十进制的 4,或用十六进制表示是 0x04。请注意,长度字段 L 的值是 4,指明了后面的值字段 V 的长度(而不是整个 TLV 编码的字节长度)是 4 字节。
在这里插入图片描述
很容易算出十进制 2345 的十六进制表示(使用 4 字节表示):
2345 = 9 ∗ 1 6 2 + 2 ∗ 1 6 1 + 9 ∗ 1 6 0 9*16^2+2*16^1+9*16^0 9162+2161+9160 = 0x00000929
因此,INTEGER 2345 的 ASN.1 编码是:02 04 00 00 09 29,一共需要 6 字节。
按同样的方法算出十进制数字 1236 和 122 的十六进制值:
1236 = 4 ∗ 1 6 2 + 13 ∗ 1 6 1 + 4 ∗ 1 6 0 4*16^2+13*16^1+4*16^0 4162+13161+4160 = 0x000004D4
122 = 7 ∗ 1 6 1 + 10 ∗ 1 6 0 7*16^1+10*16^0 7161+10160 = 0x0000007A
【想不通的话,可以反过来想,从后往前推】
这样,把题目给出的 4 个 INTEGER 类型的数字的 ASN.1 编码写出如下:
INTEGER 2345 的 ASN.1 编码是:02 04 00 00 09 29
INTEGER 1236 的 ASN.1 编码是:02 04 00 00 04 D4
INTEGER 122 的 ASN.1 编码是:02 04 00 00 00 7A
INTEGER 1236 的 ASN.1 编码是:02 04 00 00 04 D4
② 现在回到 SEQUENCE-OF 类型的 ASN.1 编码。
从下表中,可以查出 SEQUENCE-OF 类型的类别属于 ASN.1 定义的通用类(编码为 00),格式属于结构化数据类型(编码是 1),编号为 10000。
在这里插入图片描述
因此,SEQUENCE-OF 的 TLV 编码的标记 T 字段的二进制编码是 00110000,用十六进制写出是:0x30。
SEQUENCE-OF 类型长度 L 字段,是 4 个 INTEGER 数字的 ASN.1 编码的长度,即 24 字节, 2 4 10 = 1 8 16 24_{10} = 18_{16} 2410=1816 = 0x18
在这里插入图片描述
整个的编码为:

  1. SNMP 要发送一个 GetRequest 报文,以便向一个路由器获取 ICMP 的 icmpInParmProbs 的值。在 icmp 中变量 icmpInParmProbs 的标号是(5),它是一个计数器,用来统计收到的类型为参数问题的 ICMP 差错报告报文的数目。试给出这个 GetRequest 报文的编码。
    本题并没有把所有的已知条件都给出来,可以自己设定某些未给出的条件。我们先要弄清变量 icmpInParmProbs 的对象标识符是什么。
    在这里插入图片描述
    从上图可以知道,变量 icmpInParmProbs 的对象标识符是 1.3.6.1.2.1.5.5。但现在我们是要得到这个变量的值,即这个变量的一个实例(instance)。这就必须在变量的后面加上一个后缀 “.0”。也就是说,1.3.6.1.2.1.5.5 代表 icmpInParmProbs ,而 1.3.6.1.2.1.5.5.0 则代表变量 icmpInParmProbs 的实例,也就是变量 icmpInParmProbs 的内容。
    在这里插入图片描述
    根据上图,GetRequest 报文的结构应如下图所示。
    在这里插入图片描述
    后面的 ASN.1 编码从后向前分析。编码在上图的右侧。
    最后一个变量是 NULL(空),表示后面已经没有别的变量了。根据教材上的表 – 几种数据类型的 T 字段编码,NULL 的 T 字段为 05,其长度字段 L = 00,表示后面不再有 V 字段了。这样得出的最后一行为 05 00。
    再上面的变量就是要获取的 icmpInParmProbs 的值。变量 icmpInParmProbs 是 OBJECT IDENTIFIER 数据类型。根据教材上的表 – 几种数据类型的 T 字段编码,其类别是通用类(编码是 00),简单数据类型(编码是 0),编号为 00110,因此其 T 字段是 06。由于这个变量的值是 1.3.6.1.2.1.5.5.0,需要占 9 个字节,因此 L = 09,而后面的值是 V = 01 03 06 01 02 01 05 05 00。
    (也可以采用压缩方法,把 V 字段的前两个字节压缩成为一个字节。具体的方法就是:把 V 的第一个字节的值乘以 40,再加上第二个字节的值,再转换成十六进制即可。下面是转换的过程:
    1 ∗ 40 + 3 = 4 3 10 = 0010101 1 2 = 2 B 16 1 * 40 + 3=43_{10}=00101011_2=2B_{16} 140+3=4310=001010112=2B16
    如果进行了压缩,那么 L 字段就要少一个字节,变成 L = 08。)
    两个变量的上面一行是变量绑定,其数据类型是 SEQUENCE。从教材上的表 – 几种数据类型的 T 字段编码,查出其 T 字段为 30。后面的两个变量一共 13 字节,因此变量绑定的 L = 1 3 10 = 0 D 16 L=13_{10}=0D_{16} L=1310=0D16
    再上面是变量绑定列表,其数据类型是 SEQUENCE-OF。从表中查出其 T 字段为 30。后面的一共需要 15 字节,因此变量绑定的 L = 1 5 10 = 0 F 16 L=15_{10}=0F_{16} L=1510=0F16
    再上面是差错状态和差错索引。在请求报文中,这两个变量都是零,因此其 TLV 编码都一样,都是:T = 02,L = 01,V = 00。
    现在讨论请求 ID 这个变量
    请求 ID 的 TLV 编码是:T = 02 (通用类,简单整数类型,编号 00010)
    L = 04(后面有 4 个字节的数)
    V = 00 01 06 14
    上面的 V 字段是用十六进制表示的。可以算出十进制的 V 10 = 1 ∗ 1 6 4 + 6 ∗ 1 6 2 + 1 ∗ 1 6 1 + 4 ∗ 1 6 0 = 67092 V_{10}=1*16^4+6*16^2+1*16^1+4*16^0=67092 V10=1164+6162+1161+4160=67092。这就是请求 ID 的十进制数值。题目的已知并没有请求 ID,这个数值在这里随便假定的。
    最后,从表中,可以查出 GetRequest PDU 的 ASN.1 编码的 T 字段是 A0。把 A0 写成二进制,即 10100000。也就是说,这个变量的类别是上下文类(10),格式是结构化数据类型(1),编号为 00000。长度 L 字段就是后面所有的字节数(共 29 字节)。因此 L = 2 9 10 = 1 D 16 】 L=29_{10}=1D_{16}】 L=2910=1D16
    最后,本题的 ASN.1 编码是:

  1. 对 TCP 的 OBJECT IDENTIFIER 是什么?
    {1.3.6.1.2.1.6}
    在这里插入图片描述

  2. 在 ASN.1 中,IP 地址(IPAddress)的类别是应用类。若 IPAddress =131.21.14.2, 试求其 ASN.1 编码。
    40 04 83 15 0E 02
    4 0 16 = 1000000 0 2 40_{16}=10000000_2 4016=100000002,10 表示 应用类
    04 表示长度为 4 个字节
    8 3 16 = 1000001 1 2 = 131 83_{16}=10000011_2 = 131 8316=100000112=131
    2 1 16 = 0001010 1 2 = 21 21_{16}=00010101_2 = 21 2116=000101012=21
    1 4 16 = 0000111 0 2 = 14 14_{16}=00001110_2 = 14 1416=000011102=14
    2 16 = 000001 0 2 = 2 2_{16}=0000010_2 = 2 216=00000102=2

  3. 什么是应用编程接口 API?它是应用程序和谁的接口?
    当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。此接口再将控制权传递给计算机的操作系统,操作系统将此调用给某个内部过程,并执行所请求的 操作。内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用程序。只要应用进 程需要从操作系统获得服务,就要将控制权传递给操作系统,操作系统在执行必要的操作后将控制权返回给应用进程,这种系统调用接口又称为应用编程接口 API。API 是应用程序和操作系统之间的接口。

  4. 试举出常用的几种系统调用的名称,说明它们的用途。
    bind 系统调用:用来指明套接字的本地地址(本地端口号和本地IP 地址);
    listen 系统调用:服务器收听,以便随时接受客户的服务请求;
    accept 系统调用:服务器接受, 以便把远地客户进程发来的连接请求提取出来;
    send 系统调用:客户和服务器都在 TCP 连接上使用send 系统调用传送数据;
    recv 系统调用:客户和服务器都在TCP 连接上使用 recv 系统调用接收数据。

  5. 下图表示了各应用协议在层次中的位置。
    (1)简单讨论一下为什么有的应用层协议要使用 TCP 而有的却要使用 UDP?
    (2)为什么 MIME 画在 SMTP 之上?
    (3)为什么路由选择协议 RIP 放在应用层?

    在这里插入图片描述
    (1)应用层协议根据各自功能的需求,有的需要使用面向连接的 TCP 服务,提供可靠的数据传输服务,如 FTP,HTTP 等;而有的协议使用无连接的 UDP 服务,提供比较灵活的 服务,如 DHCP,SNMP
    (2)MIME协议是扩展了的 SMTP 协议,是基于 SMIP 的,所以要放在 SMTP 上画。
    (3)由于 RIP 协议是基于 UDP 协议而创建的。所以 RIP 协议应该放在 UDP 协议的上一层, 即应用层协议。

  6. 现在流行的 P2P 文件共享应用程序都有哪些特点,存在哪些值得注意的问题?
    (1)P2P 文件共享程序的特点:在 P2P 工作方式下,需要使用集中式的媒体服务器,这就解决了集中式媒体服务器可能出现的瓶颈问题。这种工作方式所有的音频/视频文件都是 在普通的因特网用户间传播。这其实是相当于有径多分散在各地的媒体服务器(由普通用户的 PC 机充当这种服务器)其他用户提供所要下载的音频/视频文件。
    (2)P2P 文件共享程序也面临一些问题:文件的知识产权保护问题;P2P 流量的有效管 理问题;占用大量带宽资源问题;制定流量收费标准问题。

  7. 使用客户-服务器方式进行文件分发一台服务器把一个长度为 F 大文件分发给 N个对等方。假设文件传输的瓶颈是各计算机(包括服务器)的上传速率 u。试计算文件分发到所有对等方的最短时间。
    从服务器端角度考虑,N 台主机共需要从服务器得到的数据总量(比特数)是 NF。如果服务器能够不停地一起上传速率 u 向各主机发送数据,一直到各主机都收到文件 F,就需要时间 N F u \frac{NF}{u} uNF,单位是秒。由此可见,文件分发到所有对等方的最短时间是 N F u \frac{NF}{u} uNF

  8. 重新考虑上题文件分发任务,但采用 P2P 文件分发方式,并且每个对等方只能在接收完整个文件后才能向其他对等方转发。试计算文件分发到所有 N 个对等方的最短时间。
    传送一次文件所需的时间是 F u \frac{F}{u} uF
    第一次只能传送给 1 个对等方,第二次可以传送给 2 个对等方,第三次可以传送给 4 个对等方,到了最后的第 n 次可以传送给 2 n − 1 2^{n-1} 2n1 个对等方。
    因此, 1 + 2 + 2 2 + 2 3 + . . . + 2 n − 1 = N 1+2+2^2+2^3+…+2^{n-1}=N 1+2+22+23+...+2n1=N
    2 n − 1 = N 2^{n}-1=N 2n1=N,解出 n = [ l o g 2 ( N + 1 ) ] n=[log_2(N+1)] n=[log2(N+1)],故得出文件分发到所有 N 个对等方的最短时间为 [ l o g 2 ( N + 1 ) ] F u \frac{[log_2(N+1)]F}{u} u[log2(N+1)]F

  9. 再重新考虑上题文件分发任务,但可以把这个非常大的文件划分为一个个非常小的数据块进行分发,即一个对等方在下载完一个数据块后就能像其他对等方转发,并同时可以下载其他数据块。不考虑分块增加的控制信息,试计算整个大文件分发到所有对等方的最短时间。
    ① 这个很大的文件可以划分为很多很多(例如,N 个,N 是对等方用户的数目)非常小的数据块。服务器把每一个小数据块分别发送给每一个对等方的用户。例如,第 k 个小数据块发送给第 k 个对等方用户。这样,总共用时间 F u \frac{F}{u} uF 就能够把整个大文件发送完毕。请注意,每个小数据块只需要从服务器发送一次,以后不需要再重复发送。
    ② 现在这个大文件已经分散在 N 个对等方了,每个对等方只下载到其中的一个小数据块。所花费的时间是 F / u 1 / N \frac{F/u}{1/N} 1/NF/u,N 是对等方用户的数目。
    ③ 然后,大量对等方用户之间互相传送数据。只要设计很好的传送规则,那么每经过时间 F u \frac{F}{u} uF,所有的对等方用户就都能够把整个大文件下载完毕。例如,我们可以在以后的每一次传送时,令第 k 个对等方,把刚才收到的第 k 个小数据块,传送给第 k-1 个对等方用户。第 1 个对等方则把刚刚收到的小数据块传送给第 N 个对等方用户。
    ④ 可见,整个大文件分发到所有对等方的最短时间是 F u \frac{F}{u} uF

转载自 《计算机网络(第7版)》著者:谢希仁

点我回顶部

Fin.

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/4550.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部