第6章 应用层


6.1 域名系统 DNS

  • 应用层的具体内容是精确定义通信规则:
    1. 应用进程交换的报文类型,如请求报文和响应报文。
    2. 各种报文类型的语法,如报文中的各个字段及其详细描述。
    3. 字段的语义,即包含在字段中的信息的含义。
    4. 进程何时、如何发送报文,以及对报文进行响应的规则。

6.1.1 域名系统概述

  • 域名系统 DNS 是互联网使用的命名系统,把机器名字转换为 IP 地址。
  • 许多应用层软件经常直接使用域名系统 DNS。虽然计算机的用户只是间接使用域名系统,但 DNS 却为互联网的各种网络应用提供了核心服务。
  • 用户与互联网上某台主机通信时,必须要知道对方的 IP 地址。应用层为了便于用户记忆各种网络应用设置了主机名,通过域名系统 DNS 把互联网上的主机名字转换为 IP 地址。
  • 从理论上讲,整个互联网可以只使用一个域名服务器,使它装入互联网上所有的主机名,并回答所有对 IP 地址的查询。但是因为互联网规模很大,这样的域名服务器会因过负荷而无法正常工作,而且一旦域名服务器出现故障,整个互联网就会瘫痪。因此采用层次树状结构的命名方法,并使用分布式的域名系统 DNS。
  • 互联网的域名系统 DNS 被设计成为一个联机分布式数据库系统,并采用客户服务器方式。DNS 使大多数名字都在本地进行解析,仅少量解析需要在互联网上通信,因此 DNS 系统的效率很高。由于 DNS 是分布式系统,即使单个计算机出了故障,也不会妨碍整个 DNS 系统的正常运行。
  • 域名到 IP 地址的解析是由分布在互联网上的许多域名服务器程序共同完成的。域名服务器程序在专设的结点上运行,把运行域名服务器程序的机器称为域名服务器
  • 域名到 IP 地址的解析过程的要点如下:当某一个应用进程需要把主机名解析为 IP 地址时,该应用进程就调用解析程序,成为 DNS 的一个客户,把待解析的域名放在 DNS 请求报文中,以 UDP 用户数据报方式发给本地域名服务器 (使用 UDP 是为了减少开销)。本地域名服务器在查找域名后,把对应的 IP 地址放在回答报文中返回。应用进程获得目的主机的 IP 地址后即可进行通信。

6.1.2 互联网的域名结构

  • DNS 规定,域名中的标号都由英文字母和数字组成,每一个标号不超过 63 个字符 (为了记忆方便,最好不要超过 12 个字符),也不区分大小写字母 (例如,CCTV 或 cctv 在域名中是等效的)。标号中除连字符 (-) 外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。由多个标号组成的完整域名总共不超过 255 个字符。DNS 既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由 ICANN 进行管理。用这种方法可使每一个域名在整个互联网范围内是唯一的,并且也容易设计出一种查找域名的机制。
  • 原先的顶级域名共分为三大类:
    1. 国家顶级域名 nTLD
    2. 通用顶级域名 gTLD
    3. 基础结构域名
  • 我国把二级域名划分为“类别域名”和“行政区域名”两大类。

6.1.3 域名服务器

  • 域名服务器划分为以下四种不同的类型:
    1. 根域名服务器 (root name server):根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析 (即转换为 IP 地址),只要自己无法解析,就首先要求助于根域名服务器。假定所有的根域名服务器都瘫痪了,那么整个互联网中的 DNS 系统就无法工作。
    2. 顶级域名服务器 (即 TLD 服务器):这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答。
    3. 权限域名服务器:当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
    4. 本地域名服务器 (local name server):当一台主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
  • 为了提高域名服务器的可靠性,DNS 域名服务器把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,保证数据的一致性。
  • 域名的解析过程:
    1. 主机向本地域名服务器的查询一般采用递归查询。递归查询是:如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器发出查询请求报文,而不是让该主机自己进行下一步的查询。因此,递归查询返回的查询结果是所要查询的 IP 地址,或报错。
    2. 本地域名服务器向根域名服务器的查询通常采用迭代查询。迭代查询的特点是:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询,而不是替本地域名服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的 IP 地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的 IP 地址,要么告诉本地域名服务器下一步应当向哪一个权限域名服务器进行查询,本地域名服务器就这样进行迭代查询。最后,知道了所要解析的域名的 IP 地址,然后把这个结果返回给发起查询的主机。
  • 为了提高 DNS 查询效率,并减轻根域名服务器的负荷和减少互联网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

6.2 文件传送协议

6.2.1 FTP 概述

  • 文件传送协议 FTP 是互联网上使用得最广泛的文件传送协议。FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。FTP 屏蔽了各计算机系统的细节,适合于在异构网络中任意计算机之间传送文件。
  • 基于 TCP 的 FTP 和基于 UDP 的简单文件传送协议 TFTP 都是文件共享协议中的一大类,即复制整个文件,特点是:若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。
  • 文件共享协议中的另一大类是联机访问。联机访问意味着允许多个程序同时对一个文件进行存取。和数据库系统的不同之处是用户不需要调用一个特殊的客户进程,而是由操作系统提供对远地共享文件进行访问的服务。使用户可以用远地文件作为输入和输出来运行任何应用程序,而操作系统中的文件系统则提供对共享文件的透明存取。透明存取的优点是:将原来用于处理本地文件的应用程序用来处理远地文件时,不需要对该应用程序作明显的改动。属于文件共享协议的有网络文件系统 NFS。

6.2.2 FTP 的基本工作原理

  • 文件传输协议 FTP 只提供文件传输的一些基本的服务,它使用 TCP 可靠的运输服务。FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
  • FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
  • 主进程的工作步骤如下:
    1. 打开熟知端口 (端口号为21),使客户进程能够连接上。
    2. 等待客户进程发出连接请求。
    3. 启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
    4. 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的。
  • 在进行文件传输时,FTP 的客户和服务器之间要建立两个并行的 TCP 连接:“控制连接”和“数据连接”。控制连接在整个会话期间一直保持打开,FTP 客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。由于 FTP 使用了一个分离的控制连接,因此 FTP 的控制信息是带外传送的。
  • 使用两个独立的连接的主要好处是使协议更加简单和更容易实现,同时在传输文件时还可以利用控制连接对文件的传输进行控制。
  • 网络文件系统 NFS 允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据

6.2.3 简单文件传送协议 TFTP

  • TCP/IP 协议族中有一个简单文件传送协议 TFTP,它是一个很小且易于实现的文件传送协议。虽然 TFTP 也使用客户服务器方式,但它使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。TFTP 只支持文件传输而不支持交互。TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
  • TFTP 的主要优点有两个:
    1. TFTP 可用于 UDP 环境。例如,当需要将程序或文件同时向许多机器下载时就往往需要使用 TFTP。
    2. TFTP 代码所占的内存较小。这对较小的计算机或某些特殊用途的设备是很重要的。
  • TFTP 的主要特点是:
    1. 每次传送的数据报文中有 512 字节的数据,但最后一次可不足 512 字节。
    2. 数据报文按序编号,从 1 开始。
    3. 支持 ASCII 码或二进制传送。
    4. 可对文件进行读或写。
    5. 使用很简单的首部。

6.3 远程终端协议 TELNET

  • TELNET 是一个简单的远程终端协议。用户用 TELNET 可在其所在地通过 TCP 连接注册到远地的另一台主机上。TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。因此,TELNET 又称为终端仿真协议
  • TELNET 也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行TELNET 服务器进程。和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。
  • 网络虚拟终端 NVT 的格式定义很简单。所有的通信都使用 8 位一个字节。在运转时,NVT 使用 7 位 ASCII 码传送数据,而当高位置 1 时用作控制命令。ASCII 码共有 95 个可打印字符 (如字母、数字、标点符号) 和 33 个控制字符。所有可打印字符在 NVT 中的意义和在 ASCII 码中一样。但 NVT 只使用了 ASCII 码的控制字符中的几个。

6.4 万维网 WWW

6.4.1 万维网概述

  • 万维网 WWW 并非某种特殊的计算机网络,而是一个大规模的、联机式的信息储藏所,英文简称为 Web。
  • 万维网是一个分布式的超媒体系统,它是超文本系统的扩充。
  • 分布式的和非分布式的超媒体系统有很大区别。在非分布式系统中,各种信息都驻留在单个计算机的磁盘中。由于各种文档都可从本地获得,因此这些文档之间的链接可进行一致性检查。
  • 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档
  • 万维网必须解决以下几个问题:
    1. 怎样标志分布在整个互联网上的万维网文档?——万维网使用统一资源定位符 URL 来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的标识符 URL。
    2. 用什么样的协议来实现万维网上的各种链接?——万维网使用超文本传送协议 HTTP 来实现万维网上的各种链接。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
    3. 怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?——万维网使用超文本标记语言 HTML,使得万维网页面的设计者可以很方便地用链接从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的主机屏幕上将这些页面显示出来。

6.4.2 统一资源定位符 URL

  • URL 的格式
    1. 统一资源定位符 URL 是用来从互联网上得到的资源位置和访问这些资源的方法。
    2. URL 是与互联网相连的机器上的任何可访问对象的一个指针。由于访问不同对象所使用的协议不同,所以 URL 还指出读取某个对象时所使用的协议。URL 的一般形式由以下四个部分组成:<协议>://<主机>:<端口>/<路径>
    3. URL 的第一部分是最左边的<协议>。<协议>是指使用什么协议来获取该万维网文档。现在最常用的协议就是 HTTP,其次是 FTP。在<协议>后面的“://”是规定的格式。它的右边是第二部分<主机>,指出这个万维网文档是在哪一台主机上。<主机>是指该主机在互联网上的域名。再后面是第三和第四部分<端口>和<路径>,有时可省略。
  • 使用 HTTP 的 URL
    1. 对于万维网网点的访问要使用 HTTP 协议。HTTP 的 URL 的一般形式是:http://<主机>:<端口>/<路径>
    2. HTTP 的默认端口号是 80,通常可省略。若再省略文件的<路径>项,则 URL 就指到互联网上的某个主页。主页是个很重要的概念,它可以是以下几种情况之一:
      • 一个 WWW 服务器的最高级别的页面。
      • 某一个组织或部门的一个定制的页面或目录。从这样的页面可链接到互联网上的与本组织或部门有关的其他站点。
      • 由某一个人自己设计的描述他本人情况的 WWW 页面。

6.4.3 超文本传送协议 HTTP

  • HTTP 的操作过程
    1. HTTP 是面向事务的应用层协议是万维网上能够可靠地交换文件的重要基础。
    2. 用户浏览页面的方法有两种:
      • 键入 URL。
      • 用鼠标点击一个可选部分所对应的链接。
    3. HTTP/1.0 的主要缺点是:
      • 每请求一个文档要有两倍 RTT 开销。若一个主页上有很多链接的对象需要依次进行链接,每一次链接下载都导致 2×RTT 的开销。
      • 万维网客户和服务器每一次建立新的 TCP 连接都要分配缓存和变量,特别是万维网服务器往往要同时服务于大量客户的请求,所以这种非持续连接会使万维网服务器的负担很重。
    4. HTTP/1.1 协议使用持续连接较好地解决了这个问题。万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
    5. HTTP/1.1 协议的持续连接有两种工作方式:
      • 非流水线方式
        1. 特点:客户在收到前一个响应后才能发出下一个请求。因此,在 TCP 连接已建立后,客户每访问一次对象都要用去一个往返时间 RTT,这比非持续连接节省了建立 TCP 连接所需的一个 RTT 时间。
        2. 缺点:服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
      • 流水线方式
        1. 特点:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。因此,使用流水线方式时,客户访问所有的对象只需花费一个 RTT 时间。流水线工作方式使 TCP 连接中的空闲时间减少,提高了下载文档效率。
  • 代理服务器
    1. 代理服务器是一种网络实体,又称万维网高速缓存
  • HTTP 的报文结构
    1. HTTP 有两类报文:
      • 请求报文——从客户向服务器发送请求报文,见图 6-12(a)。
      • 响应报文——从服务器到客户的回答,见图 6-12(b)。
    2. 由于 HTTP 是面向文本的,因此在报文中的每一个字段都是一些 ASCII 码串,各个字段的长度都是不确定的。
    3. HTTP 请求报文和响应报文都是由三个部分组成:
      • 开始行,用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行,而在响应报文中的开始行叫做状态行。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。
      • 首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行在结束的地方都要有“回车”和“换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。
      • 实体主体,在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。
    4. 请求报文的第一行“请求行”有三个内容:
      • 方法
      • 请求资源的 URL
      • HTTP 的版本。
      • HTTP 请求报文的一些方法:
    5. HTTP 响应报文的主要特点:
      • 每一个请求报文发出后,都能收到一个响应报文。响应报文的第一行就是状态行。
      • 状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。
      • 状态码都是三位数字的,分为 5 大类,原先有 33 种,后来又增加了几种。这 5 大类的状态码都是以不同的数字开头的。
        1. 1xx 表示通知信息,如请求收到了或正在进行处理。
        2. 2xx 表示成功,如接受或知道了。
        3. 3xx 表示重定向,如要完成请求还必须采取进一步的行动。
        4. 4xx 表示客户的差错,如请求中有错误的语法或不能完成。
        5. 5xx 表示服务器的差错,如服务器失效无法完成请求。
  • 在服务器上存放用户的信息
    1. HTTP 是一个典型的无状态协议。每个 HTTP 请求都是独立的,服务器在处理请求时不会保留关于客户端的状态信息。为了实现会话状态,Web 应用程序通常使用一些机制,如 cookies 或者会话标识符,来跟踪客户端的状态。这些机制在每个请求中传递标识符,存储在用户主机中,以便服务器能够识别和关联相关的状态信息。
    2. “无状态协议”是指协议在处理每个请求时都没有记忆先前请求的状态。具体而言,对于 HTTP 来说,每个请求都是独立的,服务器不会记住之前任何请求的信息。这意味着每个请求都需要包含所有必要的信息,而服务器不能从之前的请求中获取上下文或状态。
    3. 在无状态协议中,服务器不保存客户端的状态信息,而是在每个请求中都从客户端接收到所有必要的信息以完成处理。这有助于简化协议的设计和实现,并使系统更易于扩展和管理。然而,这也意味着如果客户端和服务器之间需要维护会话状态,必须在请求和响应中包含足够的信息来实现这种状态管理。

6.4.4 万维网的文档

  • 超文本标记语言 HTML
    1. 超文本标记语言 HTML 是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍。但 HTML 并不是应用层的协议,它只是万维网浏览器使用的一种语言。
    2. HTML 允许在万维网页面中插入图像。
    3. HTML 规定了链接的设置方法。
    4. XML 是可扩展标记语言,与 HTML 很相似。但 XML 的设计宗旨是传输数据,而不是显示数据 (HTML 是为了在浏览器上显示数据)。更具体些,XML 用于标记电子文件,使其具有结构性的标记语言,可用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML 是一种简单、与平台无关并被广泛采用的标准。XML 相对于 HTML 的优点是它将用户界面与结构化数据分隔开来。
    5. XHTML 是可扩展超文本标记语言,与 HTML 4.01 几乎是相同的。
    6. CSS 是层叠样式表,它是一种样式表语言,用于为 HTML 文档定义布局。CSS 与 HTML 的区别是:HTML 用于结构化内容,而 CSS 则用于格式化结构化的内容。
  • 动态万维网文档
    1. 静态文档的优点是简单。由于 HTML 是一种排版语言,因此静态文档可以由不懂程序设计的人员来创建。但静态文档的缺点是不够灵活。当信息变化时就要由文档的作者手工对文档进行修改。
    2. 动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建的。当浏览器请求到达时,万维网服务器要运行另一个应用程序,并把控制转移到此应用程序。接着,该应用程序对浏览器发来的数据进行处理,并输出 HTTP 格式的文档,万维网服务器把应用程序的输出作为对浏览器的响应。由于对浏览器每次请求的响应都是临时生成的,因此用户通过动态文档所看到的内容是不断变化的。动态文档的主要优点是具有报告当前最新信息的能力。
    3. 动态文档和静态文档之间的主要差别体现在服务器一端,主要是文档内容的生成方法不同。而从浏览器的角度看,这两种文档并没有区别。
    4. 要实现动态文档就必须在以下两个方面对万维网服务器的功能进行扩充:
      • 增加另一个应用程序,处理浏览器发来的数据,并创建动态文档。
      • 增加一个机制,使万维网服务器将浏览器发来的数据传送给这个应用程序,然后万维网服务器能够解释这个应用程序的输出,并向浏览器返回 HTML 文档。
    5. 通用网关接口 CGI 是一种标准,它定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。
  • 活动万维网文档
    1. 有两种技术可用于浏览器屏幕显示的连续更新:
      • 服务器推送,这种技术是将所有的工作都交给服务器。服务器不断地运行与动态文档相关联的应用程序,定期更新信息,并发送更新过的文档。
        1. 缺点:为了满足很多客户的请求,服务器要运行很多服务器推送程序。这将造成过多的服务器开销。服务器推送技术要求服务器为每一个浏览器客户维持一个不释放的 TCP 连接。随着 TCP 连接的数目增加,每一个连接所能分配到的网络带宽就下降,这就导致网络传输时延的增大。
      • 另一种提供屏幕连续更新的技术是活动文档
        1. 这种技术是把所有的工作都转移给浏览器端。每当浏览器请求一个活动文档时,服务器就返回一段活动文档程序副本,使该程序副本在浏览器端运行。这时,活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。只要用户运行活动文档程序,活动文档的内容就可以连续地改变。由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高。

6.4.5 万维网的信息检索系统

  • 全文检索搜索与分类目录搜索
    1. 在万维网中用来进行搜索的工具叫做搜索引擎。搜索引擎的种类很多,但大体上可划分为两大类,
      • 全文检索搜索引擎:全文检索搜索引擎是一种纯技术型的检索工具。
        1. 优点:全文检索可以检索出大量的信息。
        2. 缺点:但缺点是查询结果不够准确,往往是罗列出了海量的信息,使用户无法迅速找到所需的信息。
      • 分类目录搜索引擎:分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。因此,分类目录搜索也叫做分类网站搜索。
        1. 优点:用户可根据网站设计好的目录有针对性地逐级查询所需要的信息,查询时不需要使用关键词,只需要按照分类 (先找大类,再找下面的小类),因而查询的准确性较好。
        2. 缺点:分类目录查询的结果并不是具体的页面,而是被收录网站主页的 URL 地址,因而所得到的内容就比较有限。
    2. 垂直搜索引擎针对某一特定领域、特定人群或某一特定需求提供搜索服务。
    3. 元搜索引擎,把用户提交的检索请求发送到多个独立的搜索引擎上去搜索,并把检索结果集中统一处理,以统一的格式提供给用户,因此是搜索引擎之上的搜索引擎。它的主要精力放在提高搜索速度、智能化处理搜索结果、个性化搜索功能的设置和用户检索界面的友好性上。元搜索引擎的查全率和查准率都比较高。
  • Google 搜索技术的特点

6.4.6 博客与微博

  • 博客
  • 微博

6.4.7 社交网站

6.5 电子邮件

6.5.1 电子邮件概述

  • 电子邮件的两个最重要的标准是:简单邮件传送协议 SMTP 和互联网文本报文格式 
  • 由于互联网的 SMTP 只能传送可打印的 7 位 ASCII 码邮件,因此提出了通用互联网邮件扩充 MIME 。MIME 在其邮件首部中说明了邮件的数据类型。在 MIME 邮件中可同时传送多种类型的数据。
  • 一个电子邮件系统应具有图 6-17 所示的三个主要组成构件,即用户代理、邮件服务器,以及邮件发送协议 (如 SMTP) 和邮件读取协议 (如POP3)。
  • 用户代理 UA 是用户与电子邮件系统的接口,大多数情况下它是运行在用户电脑中的一个程序。因此用户代理又称为电子邮件客户端软件。用户代理向用户提供一个很友好的接口来发送和接收邮件。
  • 用户代理至少应当具有以下四个功能:
    1. 撰写。给用户提供编辑信件的环境。例如,应让用户能创建便于使用的通讯录。回信时不仅能很方便地从来信中提取出对方地址,并自动地将此地址写入到邮件中合适的位置,而且还能方便地对来信提出的问题进行答复。
    2. 显示。能方便地在计算机屏幕上显示出来信。
    3. 处理。处理包括发送邮件和接收邮件。收件人应能根据情况按不同方式对来信进行处理。例如,阅读后删除、存盘、打印、转发等,以及自建目录对来信进行分类保存。有时还可在读取信件之前先查看一下邮件的发件人和长度等,对于不愿收的信件可直接在邮箱中删除。
    4. 通信。发信人在撰写完邮件后,要利用邮件发送协议发送到用户所使用的邮件服务器。收件人在接收邮件时,要使用邮件读取协议从本地邮件服务器接收邮件。
  • 电子邮件由信封和**内容两部分组成。

6.5.2 简单邮件传送协议 SMTP

  • 通过发送方和接收方的邮件服务器之间的 SMTP 通信的三个阶段介绍几个最主要的命令和响应信息:
    1. 连接建立
      • SMTP 不使用中间的邮件服务器
    2. 邮件传送
      • RCPT 命令的作用是:先弄清接收方系统是否已做好接收邮件的准备,然后才发送邮件。这样做是为了避免浪费通信资源,不至于发送了很长的邮件以后才知道地址错误。
    3. 连接释放
      • 邮件发送完毕后,SMTP 客户应发送 QUIT 命令。SMTP 服务器返回的信息是“221 (服务关闭)”,表示 SMTP 同意释放 TCP 连接。邮件传送的全部过程即结束。

6.5.3 电子邮件的信息格式

6.5.4 邮件读取协议 POP3 和 IMAP

  • 现在常用的邮件读取协议有两个:
    1. 邮局协议第 3 个版本 POP3:邮局协议 POP 是一个非常简单、功能有限的邮件读取协议。在传输层使用明文来传输密码,不对密码进行
    2. 网际报文存取协议 IMAP:比 POP3 复杂。IMAP 和 POP 都按客户服务器方式工作,但它们有很大的差别。
      • 用户在自己的计算机上可以操纵邮件服务器的邮箱,就像在本地操纵一样,IMAP 是一个联机协议。当用户计算机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。用户可以根据需要为自己的邮箱创建便于分类管理的层次式的邮箱文件夹,并且能够将存放的邮件从某一个文件夹中移动到另一个文件夹中。用户也可按某种条件对邮件进行查找。在用户未发出删除邮件的命令之前,IMAP 服务器邮箱中的邮件一直保存着。
      • 优点:用户可以在不同的地方使用不同的计算机,随时上网阅读和处理自己在邮件服务器中的邮件,IMAP 还允许收件人只读取邮件中的某一个部分。
      • 缺点:如果用户没有将邮件复制到自己的计算机上,则邮件一直存放在 IMAP 服务器上。要想查阅自己的邮件,必须先上网。
  • 表 6-2 给出了 IMAP 和 POP3 的主要功能的比较。

6.5.5 基于万维网的电子邮件

  • 万维网电子邮件的好处是:不管在什么地方,只要能够找到上网的计算机,在打开任何一种浏览器后,就可以非常方便地收发电子邮件。

6.5.6 通用互联网邮件扩充 MIME

  • MIME 概述
    1. 电子邮件协议 SMTP 有以下缺点:
      • SMTP 不能传送可执行文件或其他的二进制对象。
      • SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字就无法传送。即使在 SMTP 网关将 EBCDIC 码 (即扩充的二/十进制交换码) 转换为 ASCII 码,也会遇到一些麻烦。
      • SMTP 服务器会拒绝超过一定长度的邮件。
      • (SMTP 传送的邮件是明文,不利于保密。)
      • 某些 SMTP 的实现并没有完全按照 SMTP 的互联网标准。常见的问题如下:
        1. 回车、换行的删除和增加;
        2. 超过 76 个字符时的处理:截断或自动换行;
        3. 后面多余空格的删除;
        4. 将制表符 tab 转换为若干个空格。
    2. 通用互联网邮件扩充 MIME 的意图是继续使用原来的邮件格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。也就是说,MIME 邮件可在现有的电子邮件程序和协议下传送。图 6-18 表示 MIME 和 SMTP 的关系。
    3. MIME 主要包括以下三部分内容:
      • 5 个新的邮件首部字段,它们可包含在原来的邮件首部中。这些字段提供了有关邮件主体的信息。
      • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
      • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
    4. MIME 增加的 5 个新的邮件首部的名称及其意义:
      • MIME-Version:标志 MIME 的版本。现在的版本号是 1.0。
      • Content-Description:可读字符串,说明此邮件主体是否是图像、音频或视频。
      • Content-Id:邮件的唯一标识符。
      • Content-Transfer-Encoding:在传送时邮件的主体是如何编码的。
      • Content-Type:说明邮件主体的数据类型和子类型。
  • 内容传送编码
    1. 介绍三种常用的内容传送编码
      • 最简单的编码就是 7 位 ASCII 码,而每行不能超过 1000 个字符。MIME 对这种由 ASCII 码构成的邮件主体不进行任何转换。
      • 另一种编码称为 quoted-printable,这种编码方法适用于所传送的数据中只有少量的非 ASCII 码,例如汉字。
      • 对于任意的二进制文件,可用 base64 编码。
  • 内容类型
    1. MIME 标准规定 Content-Type 说明必须含有两个标识符,即内容类型子类型,中间用“/”分开。
    2. 除了内容类型和子类型,MIME 允许发件人和收件人自己定义专用的内容类型。但为避免可能出现名字冲突,标准要求为专用的内容类型选择的名字要以字符串 X- 开始。
    3. 表 6-3 列出了 MIME 的内容类型、子类型举例及其说明。
    4. MIME 标准为 multipart 定义了四种可能的子类型,每个子类型都提供重要功能。
      • mixed 子类型允许单个报文含有多个相互独立的子报文,每个子报文有自己的类型和编码。mixed 子类型报文使用户能够在单个报文中附上文本、图形和声音,或者用额外数据段发送一个备忘录。在 mixed 后面还要用到一个关键字,即 Boundary=,此关键字定义了分隔报文各部分所用的字符串 (由邮件系统定义),只要在邮件的内容中不会出现这样的字符串即可。当某一行以两个连字符“–”开始,后面紧跟上述的字符串,就表示下面开始了另一个子报文。
      • alternative 子类型允许单个报文含有同一数据的多种表示。当给多个使用不同硬件和软件系统的收件人发送备忘录时,这种类型的 multipart 报文很有用。例如,用户可同时用普通的 ASCII 文本和格式化的形式发送文本,从而允许拥有图形功能的计算机用户在查看图形时选择格式化的形式。
      • parallel 子类型允许单个报文含有可同时显示的各个子部分。
      • digest 子类型允许单个报文含有一组其他报文。

6.6 动态主机配置协议DHCP

  • 连接到互联网的计算机的协议软件需要配置的项目包括:
    1. IP 地址;
    2. 子网掩码;
    3. 默认路由器的 IP 地址;
    4. 域名服务器的 IP 地址。
  • 互联网现在广泛使用的是动态主机配置协议 DHCP,它提供了一种机制,称为即插即用连网。这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。
  • DHCP 对运行客户软件和服务器软件的计算机都适用。当运行客户软件的计算机移至一个新的网络时,就可使用 DHCP 获取其配置信息而不需要手工干预。DHCP 给运行服务器软件而位置固定的计算机指派一个永久地址,而当这计算机重新启动时其地址不改变。
  • DHCP 使用客户服务器方式。需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文 (将目的 IP 地址置为全 1,即 255.255.255.255),这时该主机就成为 DHCP 客户。发送广播报文是因为现在还不知道 DHCP 服务器在什么地方,因此要发现 (DISCOVER) DHCP服务器的 IP 地址。这台主机目前还没有自己的 IP 地址,因此它将 IP 数据报的源 IP 地址设为全 0。这样,在本地网络上的所有主机都能够收到这个广播报文,但只有 DHCP 服务器才对此广播报文进行回答。DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池中取一个地址分配给该计算机。DHCP 服务器的回答报文叫做提供报文,表示“提供”了 IP 地址等配置信息。
  • DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期,但并没有具体规定租用期应取为多长或至少为多长,这个数值应由 DHCP 服务器自己决定。

6.7 简单网络管理协议 SNMP

6.7.1 网络管理的基本概念

  • 网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理常简称为网管。
  • 网络是一个非常复杂的分布式系统。因为网络上有很多不同厂家生产的、运行着多种协议的结点,而这些结点还在相互通信和交换信息。
  • 网络管理的一般模型
    1. 管理站又称为管理器,是整个网络管理系统的核心,它通常是个有着良好图形界面的高性能的工作站,并由网络管理员直接操作和控制。所有向被管设备发送的命令都是从管理站发出的。管理站的所在部门也常称为网络运行中心 NOC。管理站中的关键构件是管理程序 (如图 6-21 中有字母 M 的椭圆形图标所示)。管理程序在运行时就成为管理进程。管理站 (硬件) 或管理程序 (软件) 都可称为管理者管理器,所以这里的 manager 不是指人而是指机器或软件。网络管理员才是指人。大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管理本地网络的设备。
    2. 在被管网络中有很多的被管设备 (包括设备中的软件)。被管设备可以是主机、路由器、打印机、集线器、网桥或调制解调器等。在每一个被管设备中可能有许多被管对象。被管对象可以是被管设备中的某个硬件,也可以是某些硬件或软件 (例如,路由选择协议) 的配置参数的集合。被管设备有时可称为网络元素或简称为网元。在被管设备中也会有一些不能被管的对象
    3. 简单网络管理协议 SNMP 中的管理程序和代理程序按客户服务器方式工作。管理程序运行 SNMP 客户程序,而代理程序运行 SNMP 服务器程序。在被管对象上运行的 SNMP 服务器程序不停地监听来自管理站的 SNMP 客户程序的请求 (或命令)。一旦发现了,就立即返回管理站所需的信息,或执行某个动作。在网管系统中往往是一个 (或少数几个) 客户程序与很多的服务器程序进行交互。
    4. 若要管理某个对象,就必然会给该对象添加一些软件或硬件,但这种“添加”对原有对象的影响必须尽量小些。
  • SNMP 的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP 可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。
  • 若网络元素使用的不是 SNMP 协议而是另一种网络管理协议,那么 SNMP 协议就无法控制该网络元素。这时可使用委托代理,委托代理能提供如协议转换和过滤操作等功能对被管对象进行管理。
  • SNMP 的网络管理由三个部分组成,SNMP 本身、管理信息结构 SMI 和管理信息库 MIB。
    1. SNMP 定义了管理站和代理之间所交换的分组格式。所交换的分组包含各代理中的对象 (变量) 名及其状态 (值)。SNMP 负责读取和改变这些数值。
    2. SMI 定义了命名对象和定义对象类型 (包括范围和长度) 的通用规则,以及把对象和对象的值进行编码的规则。这样做是为了确保网络管理数据的语法和语义无二义性。但从 SMI 的名称并不能看出它的功能。
    3. MIB 在被管理的实体中创建了命名对象,并规定了其类型。

6.7.2 管理信息结构 SMI

  • 管理信息结构 SMI 是 SNMP 的重要组成部分,SMI 的功能应当有三个:
    1. 被管对象应怎样命名;
    2. 用来存储被管对象的数据类型有哪些;
    3. 在网络上传送的管理数据应如何编码。
  • 被管对象的命名
    1. SMI 规定,所有的被管对象都必须处在对象命名树上。图 6-22 给出了对象命名树的一部分。对象命名树的根没有名字,它的下面有三个顶级对象,都是世界上著名的标准制定单位,即 ITU-T,ISO,以及这两个组织的联合体,它们的标号分别是 0 到 2。在 ISO 的下面的一个标号为 3 的节点是 ISO 认同的的组织成员 org。在其下面有一个美国国防部 dod 的子树 (标号为 6),再下面就是 internet (标号为 1)。在 internet 节点下面的标号为 2 的节点是 mgmt。再下面只有一个节点,即管理信息库 mib-2,其对象标识符为 1.3.6.1.2.1。在 mib-2 下面包含了所有被 SNMP 管理的对象。
  • 被管对象的数据类型
    1. SMI 使用基本的抽象语法记法 1 (即 ISO 制定的 ASN.1) 来定义数据类型,但又增加了一些新的定义。因此 SMI 既是 ASN.1 的子集,又是 ASN.1 的超集。ASN.1 的记法很严格,它使得数据的含义不存在任何可能的二义性。
    2. SMI 把数据类型分为两大类:简单类型和结构化类型。简单类型是最基本的、直接使用 ASN.1 定义的类型。表 6-4 给出了最主要的几种简单类型。
    3. SMI 定义了两种结构化数据类型,即 sequence 和 sequence of。
  • 编码方法
    1. SMI 使用 ASN.1 制定的基本编码规则 BER 进行数据的编码。BER 指明了每种数据的类型和值。在发送端用 BER 编码,可把用 ASN.1 所表述的报文转换成唯一的比特序列。在接收端用 BER 进行解码,就可得到该比特序列所表示的 ASN.1 报文。
    2. ASN.1 把所有的数据元素都表示为 T-L-V 三个字段组成的序列 (见图 6-23)。T 字段 (Tag) 定义数据的类型 ,L 字段 (Length) 定义 V 字段的长度 ,而 V 字段 (Value) 定义数据的值
      • T 字段又叫做标记字段 ,占 1 字节。T 字段比较复杂,因为它要定义的数据类型较多。T 字段又再分为以下三个子字段:
        1. 类别 (2 位) 共四种:通用类 (00),即 ASN.1 定义的类型;应用类 (01),即 SMI 定义的类型;上下文类 (10),即上下文所定义的类型;专用类 (11),保留为特定厂商定义的类型。
        2. 格式 (1 位) 共两种,指出数据类型的种类:简单数据类型 (0),结构化数据类型 (1)。
        3. 编号 (5 位) 用来标志不同的数据类型。编号的范围一般为 0~30。当编号大于 30 时,T 字段就要扩展为多个字节。
      • L 字段又叫做长度字段 (单字节或多字节)。当 L 字段为单字节时,其最高位为 0,后面的 7 位定义 V 字段的长度。当 L 字段为多个字节时,其最高位为 1,而后面的 7 位定义后续字节的字节数 (用二进制整数表示)。这时,所有的后续字节并置起来的二进制整数定义 V 字段的长度。
      • V 字段又叫做值字段,用于定义数据元素的值。

6.7.3 管理信息库 MIB

  • 管理信息就是指在互联网的网管框架中被管对象的集合。被管对象必须维持可供管理程序读写的若干控制和状态信息。这些被管对象构成了一个虚拟的信息存储器,所以才称为管理信息库 MIB。管理程序就使用 MIB 中这些信息的对网络进行管理 (如读取或重新设置这些值)。只有在 MIB 中的对象才是 SNMP 所能够管理的。

6.7.4 SNMP 的协议数据单元和报文

  • SNMP 的功能通过探询操作来实现,即 SNMP 管理进程定时向被管理设备周期性地发送探询信息。探询的好处是:
    1. 使系统相对简单
    2. 能限制通过网络所产生的管理信息的通信量。但探询管理协议不够灵活,而且所能管理的设备数目不能太多。探询系统的开销也较大。
  • SNMP 不是完全的探询协议,它允许不经过询问就能发送某些信息。这种信息称为陷阱,表示它能够捕捉“事件”。但这种陷阱信息的参数是受限制的。
  • 当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件 (这就叫做过滤)。这种方法的好处是:
    1. 仅在严重事件发生时才发送陷阱;
    2. 陷阱信息很简单且所需字节数很少。
  • SNMP 使用无连接的 UDP,因此在网络上传送 SNMP 报文的开销较小。但 UDP 是不保证可靠交付的。
  • 和大多数 TCP/IP 协议不一样,SNMP 报文没有固定的字段。它们使用标准 ASN.1 编码。因此,SNMP 报文用人工进行编码和理解时都比较困难。
  • SNMP 的报文格式
    1. 一个SNMP 报文共由四个部分组成,即版本、首部、安全参数和 SNMP 报文的数据部分。首部包括报文标识、最大报文长度、报文标志。报文标志占 1 字节,其中的每一位定义安全类型或其他信息。安全参数用来产生报文摘要。
    2. 在 SNMP PDU 前面还有两个有关加密信息的字段。这是当数据部分需要加密时才使用的两个字段。与网络管理直接相关的是后面的 SNMP PDU 部分。由 PDU 类型、请求 ID、差错状态、差错索引以及变量绑定这几个字段组成。
    3. 简单介绍一下其他字段的作用:
      • 请求标识符 由管理进程设置的 4 字节整数值。代理进程在发送响应报文时也要返回此请求标识符。由于管理进程可同时向许多代理发出请求读取变量值的报文,因此设置了请求标识符可使管理进程能够识别返回的响应是对应于哪一个请求报文。
      • 差错状态 在请求报文中,这个字段是零。当代理进程响应时,就填入 0~18 中的一个数字。例如 0 表示 noError,1 表示 tooBig,2 表示 noSuchName,3 表示badValue。
      • 差错索引 在请求报文中,这个字段是零。当代理进程响应时,若出现 noSuchName,badValue 或 readOnly 的差错,代理进程就设置一个整数,指明有差错的变量在变量列表中的偏移。
      • 变量绑定 指明一个或多个变量的名和对应的值。在请求报文中,变量的值应忽略 (类型是 NULL)。

6.8 应用进程跨越网络的通信

6.8.1 系统调用和应用编程接口

  • 当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。此接口再把控制权传递给计算机的操作系统。操作系统把这个调用转给某个内部过程,并执行所请求的操作。内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程。总之,只要应用进程需要从操作系统获得服务,就要把控制权传递给操作系统,操作系统在执行必要的操作后把控制权返回给应用进程。因此,系统调用接口实际上是应用进程的控制权和操作系统的控制权进行转换的一个接口。由于应用程序在使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口 API。API 从程序设计的角度定义了许多标准的系统调用函数。应用进程只要使用标准的系统调用函数就可得到操作系统的服务。因此从程序设计的角度看,也可以把 API 看成是应用程序和操作系统之间的接口。
  • 在套接字以上的进程是受应用程序控制的,而在套接字以下的运输层协议软件则是受计算机操作系统的控制。因此,只要应用程序使用 TCP/IP 协议进行通信,它就必须通过套接字与操作系统交互 (这就要使用系统调用函数) 并请求其服务。

6.8.2 几种常用的系统调用

  • 连接建立阶段
  • 数据传送阶段
  • 连接释放阶段

6.9 P2P应用

6.9.1 具有集中目录服务器 P2P 工作方式

  • 集中式目录服务器的最大缺点就是可靠性差,而且会成为其性能的瓶颈 (尤其是在用户数非常多的情况下)。

6.9.2 具有全分布式结构的P2P文件共享程序

6.9.3 P2P文件分发的分析

6.9.4 在 P2P 对等方中搜索对象

  • 在 P2P 文件系统中,对等方用户的数量非常多,并且处于一种无序的状态。任何一个对等方可以随时加入进来或随时退出。在这种情况下,怎样有效地找到所需的文件,也就是怎样有效地定位对等方及其资源,是 P2P 系统中重要的问题。
  • 现在广泛使用的索引和查找技术叫做分布式散列表 DHT。DHT 也可译为分布式哈希表,它是由大量对等方共同维护的散列表。
  • 分布式散列表 DHT 利用散列函数,把资源名 K 及其存放的结点 IP 地址 N 都分别映射为资源名标识符 KID 和结点标识符 NID。
  • 为了加速查找,在 Chord 环上可以增加一些指针表,它又称为路由表查找器表

本章的重要概念

  • 应用层协议是为了解决某一类应用问题,而问题的解决又是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层规定了应用进程在通信时所遵循的协议。应用层的许多协议都是基于客户服务器方式的。客户是服务请求方,服务器是服务提供方。

  • 域名系统 DNS 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地址。DNS 是一个联机分布式数据库系统,并采用客户服务器方式。

  • 域名到 IP 地址的解析是由分布在互联网上的许多域名服务器程序 (即域名服务器) 共同完成的。

  • 互联网采用层次树状结构的命名方法,任何一台连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。域名中的点和点分十进制 IP 地址中的点没有关系。

  • 域名服务器分为根域名服务器、顶级域名服务器、权限域名服务器和本地域名服务器。

  • 文件传送协议 FTP 使用 TCP 可靠的运输服务。FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。在进行文件传输时,FTP 的客户和服务器之间要建立两个并行的 TCP 连接:控制连接和数据连接。实际用于传输文件的是数据连接。

  • 万维网 WWW 是一个大规模的、联机式的信息储藏所,可以非常方便地从互联网上的一个站点链接到另一个站点。

  • 万维网的客户程序向互联网中的服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在客户程序主窗口上显示出的万维网文档称为页面。

  • 万维网使用统一资源定位符 URL 来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的标识符 URL。

  • 万维网客户程序与服务器程序之间进行交互所使用的协议是超文本传送协议 HTTP。HTTP 使用 TCP 连接进行可靠的传送。但 HTTP 协议本身是无连接、无状态的。HTTP/1.1 协议使用了持续连接 (分为非流水线方式和流水线方式)。

  • 万维网使用超文本标记语言 HTML 来显示各种万维网页面。

  • 万维网静态文档是指在文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建的。

  • 活动文档技术可以使浏览器屏幕连续更新。活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。

  • 在万维网中用来进行搜索的工具叫做搜索引擎。搜索引擎大体上可划分为全文检索搜索引擎和分类目录搜索引擎两大类。

  • 电子邮件是互联网上使用最多的和最受用户欢迎的一种应用。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取,相当于“电子信箱”。

  • 一个电子邮件系统有三个主要组成构件,即:用户代理、邮件服务器,以及邮件协议 (包括邮件发送协议,如 SMTP,和邮件读取协议,如 POP3 和 IMAP)。用户代理和邮件服务器都要运行这些协议。

  • 电子邮件的用户代理就是用户与电子邮件系统的接口,它向用户提供一个很友好的视窗界面来发送和接收邮件。

  • 从用户代理把邮件传送到邮件服务器,以及在邮件服务器之间的传送,都要使用 SMTP 协议。但用户代理从邮件服务器读取邮件时,则要使用 POP3 (或 IMAP) 协议。

  • 基于万维网的电子邮件使用户能够利用浏览器收发电子邮件。用户浏览器和邮件服务器之间的邮件传送使用 HTTP 协议,而在邮件服务器之间邮件的传送仍然使用 SMTP 协议。

  • 简单网络管理协议 SNMP 由三部分组成:

    1. SNMP 本身,负责读取和改变各代理中的对象名及其状态数值
    2. 管理信息结构 SMI,定义命名对象和定义对象类型 (包括范围和长度) 的通用规则,以及把对象和对象的值进行编码的基本编码规则 BER
    3. 管理信息库 MIB,在被管理的实体中创建了命名对象,并规定了其类型。
  • 系统调用接口是应用进程的控制权和操作系统的控制权进行转换的一个接口,又称为应用编程接口 API。API 是应用程序和操作系统之间的接口。

  • 套接字是应用进程和运输层协议之间的接口,是应用进程为了获得网络通信服务而与操作系统进行交互时使用的一种机制。

  • 目前 P2P 工作方式下的文件共享在互联网流量中已占据最大的份额,比万维网应用所占的比例大得多。

  • BT 是很流行的一种 P2P 应用。BT 采用“最稀有的优先”的技术,可以尽早把最稀有的文件块收集到。此外,凡有当前以最高数据率向某个对等方传送文件块的相邻对等方,该对等方就优先把所请求的文件块传送给这些相邻对等方。这样做的结果是,这些对等方相互之间都能够以令人满意的速率交换文件块。

  • 当对等方的数量很大时,采用 P2P 方式下载大文件,要比传统的客户−服务器方式快得多。

  • 在 P2P 应用中,广泛使用的索引和查找技术是分布式散列表 DHT。

  • 域名系统的主要功能是什么?域名系统中的根域名服务器、顶级域名服务器、权限域名服务器以及本地域名服务器有何区别?

    域名系统 DNS 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地址。
    根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析 (即转换为 IP 地址),只要自己无法解析,就首先要求助于根域名服务器。域名系统 DNS 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地址。在域名系统中使用了层次结构的许多域名服务器。
    顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答 (可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。一个服务器所负责管辖的 (或有权限的) 范围叫做区。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。
    权限域名服务器是负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
    本地域名服务器离用户较近,一般不超过几个路由器的距离。当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。当所要查询的主机也属于同一个本地 ISP 时,该本地域名服务器立即就能将所查询的主机名转换为它的 IP 地址,而不需要再去询问其他的域名服务器。

  • 简单文件传送协议 TFTP 与文件传送协议 FTP 的主要区别是什么?应用在什么场合?

    简单文件传送协议 TFTP 是一个很小且易于实现的文件传送协议。虽然 TFTP 也使用客户服务器方式,但它使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。FTP 使用 TCP 传送数据,因而是很可靠的。但正因如此,FTP 比 TFTP 复杂得多。TFTP 只支持文件传输而不支持交互。TFTP 有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
    TFTP 的主要优点有两个: (1) TFTP 可用于 UDP 环境;(2) TFTP 代码所占的内存较小。
    TFTP 的工作很像停止等待协议。发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。发完数据后在规定时间内收不到确认就要重发数据 PDU。发送确认 PDU 的一方,若在规定时间内收不到下一个文件块,也要重发确认 PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。当我们只需要复制一个文件而不需要 FTP 协议的功能时,就只需要一个能够迅速复制这些文件的协议,TFTP 就是一个很好的选择。
    复杂性:TFTP 是一种非常简单的文件传输协议,功能相对有限。它设计简单,只支持文件的读写操作,没有目录列表、权限管理等高级功能;FTP 是一个功能更为丰富和复杂的协议。它支持文件上传、下载、删除、重命名等操作,同时提供目录列表、权限管理、登录认证等多种功能。
    设计:TFTP 的设计目标是轻量级和简单,它使用 UDP 进行通信,没有建立连接的过程,因此具有低开销但也更容易受到网络中断等问题的影响;FTP 是一个基于 TCP 的协议,它建立连接后进行通信,具有更为可靠的传输机制,但相对来说会有更多的开销。
    安全性:TFTP 在安全性方面较为薄弱,没有提供加密和身份验证机制,传输的数据是明文的,容易受到中间人攻击;FTP 的安全性相对更强,支持加密和登录认证,可以更好地保护数据传输的隐私和完整性。
    TFTP:由于其简单性,TFTP 通常用于一些特定的场景,如在内部网络中进行配置文件的传输、嵌入式设备的固件升级等。
    FTP:FTP 适用于更复杂的文件传输需求,例如,Web 开发中文件上传、下载,或者在服务器之间进行文件的备份和同步等。
    总体来说,TFTP 适用于简单的、对复杂性和安全性要求不高的文件传输场景,而 FTP 适用于更为复杂和安全要求较高的文件传输场景。

  • DHCP 协议用在什么情况下?当一台计算机第一次运行引导程序时,其 ROM 中有没有该主机的 IP 地址、子网掩码,或某个域名服务器的 IP 地址?

    动态主机配置协议 DHCP 提供了即插即用连网机制。这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。因此,每当一台计算机加入到一个新的网络时就需要运行 DHCP 协议来获取这台计算机的 IP 地址。
    当一台计算机第一次运行引导程序时,ROM 中并没有该计算机的 IP 地址、子网掩码或某个域名服务器的 IP 地址的任何一个。

  • SNMP 协议使用 UDP 传送报文,为什么不使用 TCP?

    SNMP 使用无连接的 UDP (要发送数据时不需要有连接建立过程,数据发送完毕后,也不需要连接释放过程),因此在网络上传送 SNMP 报文的开销较小。但 UDP 是不保证可靠交付的,有丢失的可能。好在 SNMP 使用周期性地发送探询报文段的方法,来对网络资源进行实时监视,如果丢失了一个探寻报文,则经过一段时间后,会再发送一个。这样就比使用 TCP 要快速得多。

  • FTP 的一些基础问题:

    控制连接先于数据连接被建立,并晚于数据连接被释放;
    控制连接的端口号是 21;数据连接的端口号是 20;
    匿名 FTP 访问通常使用 anonymous 作为用户名;


文章作者: Chipfron
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chipfron !
  目录