Bootstrap

【计算机网络】应用层

1. 域名系统 DNS

1.1 域名系统概述

域名系统 DNS (Domain Name System) :

  • 互联网使用的命名系统。

  • 用来把人们使用的机器名字(域名)转换为 IP 地址。

  • 为互联网的各种网络应用提供了核心服务。

  • 域名采用层次树状结构的命名方法。

  • DNS 是一个联机分布式数据库系统,采用客户服务器方式。

  • 域名到 IP 地址的解析是由若干个域名服务器程序共同完成。

  • 域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。

1.2 互联网的域名结构

命名方法:层次树状结构方法。

任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名 (domain name)。

域 (domain):

  • 名字空间中一个可被管理的划分。

  • 可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。

域名结构:

  • 层次结构。由标号 (label) 序列组成,各标号之间用点(.)隔开,各标号分别代表不同级别的域名。

域名的分类:

互联网的名字空间是按照机构的组织来划分的,与物理的网络无关,与 IP 地址中的“子网”也没有关系。

1.3 域名服务器

实现域名系统使用分布在各地的域名服务器(DNS 服务器)。

  • 一个服务器所负责管辖的(或有权限的)范围叫做区 (zone)。

  • 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。

  • 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。

DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。

每个域名服务器都只对域名体系中的一部分进行管辖。

域名服务器类型:

  • 根域名服务器。

    最高层次,最为重要。

    所有根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。

    不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。

    若所有的根域名服务器都瘫痪了,整个互联网中的 DNS 系统就无法工作了。

    根域名服务器共有 13 套装置,构成 13 组根域名服务器。

    根域名服务器总共只有 13 个不同 IP 地址的域名,但并非仅由13台机器所组成。

    根域名服务器分布在全世界。

    为了提供更可靠的服务,在每一个地点的根域名服务器往往由多台机器组成。

    根域名服务器采用任播 (anycast) 技术,当DNS 客户向某个根域名服务器发出查询报文时,路由器能找到离这个 DNS 客户最近的一个根域名服务器。

根域名服务器并不直接把域名转换成 IP 地址(根域名服务器也没有存放这种信息),而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

  • 顶级域名服务器。

    顶级域名服务器(即 TLD 服务器)负责管理在该顶级域名服务器注册的所有二级域名。

    当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。

  • 权限域名服务器。

    负责一个区(zone)的域名服务器。

    当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。

  • 本地域名服务器。

    非常重要。

    当一个主机发出 DNS 查询请求时,该查询请求报文就发送给本地域名服务器。

    每一个互联网服务提供者 ISP 或一个大学,都可以拥有一个本地域名服务器。

    当所要查询的主机也属于同一个本地 ISP 时,该本地域名服务器立即就能将所查询的主机名转换为它的 IP 地址,而不需要再去询问其他的域名服务器。

    本地域名服务器有时也称为默认域名服务器。

提高域名服务器可靠性的方法:

  • DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。

  • 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。

  • 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,保证了数据的一致性。

域名的解析过程:

  • 递归查询。

    通常,主机向本地域名服务器查询时使用。

    若不知道,就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

  • 迭代查询。

    本地域名服务器向根域名服务器查询时使用。

    要么给出所要查询的 IP 地址,要么告诉下一个要查询的域名服务器的 IP 地址。

    本地域名服务器继续后续查询。

2. 文件传送协议

2.1 FTP 概述

文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。

  • 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。

  • 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

  • 是文件共享协议的一个大类。

文件共享协议:

文件传送协议:FTP, TFTP 等。

  • 复制整个文件。对文件副本进行访问。

  • 若要存取一个文件,就必须先获得一个本地文件副本。

  • 若要修改文件,只能对文件副本进行修改,然后再将修改后的文件副本传回到原节点。

联机访问 (on-line access) 协议:NFS 等。

  • 允许同时对一个文件进行存取。

  • 远地共享文件访问,如同对本地文件的访问一样。

  • 透明存取,不需要对该应用程序作明显的改动。

  • 由操作系统负责。

2.2 FTP 的基本工作原理

网络环境下复制文件的复杂性:

  • 计算机存储数据的格式不同。

  • 文件的目录结构和文件命名的规定不同。

  • 对于相同的文件存取功能,操作系统使用的命令不同。

  • 访问控制方法不同。

FTP 特点:

  • 只提供文件传送的一些基本服务,它使用 TCP 可靠的运输服务。

  • 主要功能:减少或消除在不同操作系统下处理文件的不兼容性。

  • 使用客户服务器方式。

    一个 FTP 服务器进程可同时为多个客户进程提供服务。

    FTP 的服务器进程由两大部分组成:

    • 一个主进程,负责接受新的请求;

    • 若干个从属进程,负责处理单个请求。

FTP 主进程的工作步骤:

  1. 打开熟知端口(端口号为 21),使客户进程能够连接上。

  2. 等待客户进程发出连接请求。

  3. 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。

  4. 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。

FTP 使用两个不同的端口号:20、21。

NFS 采用的思路:

  • FTP 并非对所有的数据传输都是最佳的:仅能访问副本。

  • NFS 允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。

  • NFS 可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。

  • NFS 在网络上传送的只是少量的修改数据。

2.3 简单文件传送协议 TFTP

TFTP (Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。

  • 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。

  • 只支持文件传输,不支持交互。

  • 没有庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

  • 优点:(1)可用于 UDP 环境;(2)代码所占的内存较小。

TFTP 的主要特点:

  • 每次传送的数据报文中有 512 字节的数据,但最后一次可不足 512 字节。

  • 数据报文按序编号,从 1 开始。

  • 支持 ASCII 码或二进制传送。

  • 可对文件进行读或写。

  • 使用很简单的首部。

TFTP 的工作很像停止等待协议:

  • 发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。

  • 发完数据后在规定时间内收不到确认就要重发数据 PDU。

  • 发送确认 PDU 的一方若在规定时间内未收到下一个文件块,需重发确认 PDU,保证文件的传送不致因某一个数据报的丢失而告失败。

TFTP 的工作过程:

  • 开始工作时,TFTP 客户进程发送一个读请求或写请求报文给 TFTP 服务器进程,其 UDP 熟知端口号码为 69。

  • TFTP 服务器进程选择一个新的端口和 TFTP 客户进程进行通信。

  • 若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报文。

  • 若文件长度不是 512 字节的整数倍,则最后传送数据报文的数据字段一定不满 512 字节,作为文件结束的标志。

3. 远程终端协议 TELNET

TRLNET是一个简单的远程终端协议,是互联网的正式标准。

  • 允许用户在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。

  • 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。

  • 服务是透明的。

  • 又称为终端仿真协议。

TELNET 使用客户 - 服务器方式:

  • 在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。

  • 服务器中的主进程等待新的请求,产生从属进程来处理每一个连接。

  • TELNET 使用网络虚拟终端 NVT 格式。

NVT (Network Virtual Terminal )格式:

NVT有两个字符集:数据,控制。

  • 客户端把用户的击键和命令转换成 NVT 格式,并送交服务器。

  • 服务器端把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。

  • 向客户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式。

4. 万维网 WWW

4.1 万维网概述

万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。

  • 万维网是一个大规模的、联机式的信息储藏所。

  • 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。

  • 这种访问方式称为“链接”。

万维网是分布式超媒体 (hypermedia) 系统。

  • WWW是超文本 (hypertext) 系统的扩充。

  • 超文本:由多个信息源链接成。是万维网的基础。

  • 超媒体与超文本的区别:文档内容不同。

    • 超文本文档仅包含文本信息。

    • 超媒体文档还包含其他信息,如图形、图像、声音、动画,甚至活动视频图像等。

  • 分布式系统。

    • 信息分布在整个互联网上。每台主机上的文档都独立进行管理。

万维网的工作方式:

  • 以客户服务器方式工作。

  • 客户程序:浏览器。

  • 服务器程序:在万维网文档所驻留的主机上运行。这个计算机也称为万维网服务器。

  • 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。

  • 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。

万维网必须解决的问题:

怎样标志分布在整个互联网上的万维网文档?

  • 使用统一资源定位符 URL (Uniform Resource Locator) 。

  • 使每一个文档在整个互联网的范围内具有唯一的标识符 URL。

用什么协议来实现万维网上的各种链接?

  • 使用超文本传送协议 HTTP (HyperText Transfer Protocol)。

  • HTTP 是一个应用层协议,使用 TCP 连接进行可靠的传送。

怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?

  • 使用超文本标记语言 HTML (HyperText Markup Language) 。

怎样使用户能够很方便地找到所需的信息?

  • 使用各种的搜索工具(即搜索引擎)。

4.2 统一资源定位符 URL

URL是对互联网上资源的位置和访问方法的一种简洁表示。

  • 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。

  • 实际上就是在互联网上的资源的地址。

  • 显然,互联网上的所有资源,都有一个唯一确定的URL。

  • 资源:指在互联网上可以被访问的任何对象,包括文件目录、文件、文档、图像、声音等,以及与互联网相连的任何形式的数据。

(1) URL 的格式

由以冒号(:)隔开的两大部分组成,对字符大写或小写没有要求。

  • 一般形式:<协议>://<主机>:<端口>/<路径>

协议:

  • ftp — 文件传送协议 FTP

  • http — 超文本传送协议 HTTP

  • News — USENET 新闻

主机:

  • 存放资源的主机在互联网中的域名,也可以是用点分十进制的 IP 地址。

端口:

  • 端口号。省略时使用默认端口号。

路径:

  • 资源所在目录位置。区分大小写。省略时使用所定义的默认路径。后面可能还有一些选项。

(2) 使用 HTTP 的 URL

4.3 超文本传送协议 HTTP

HTTP 是面向事务的 (transaction-oriented) 应用层协议。

  • 使用 TCP 连接进行可靠的传送。

  • 定义了浏览器与万维网服务器通信的格式和规则。

  • 是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

HTTP 不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本、超文本、声音和图像等。

(1) HTTP 的操作过程

HTTP 规定:在 HTTP 客户与 HTTP 服务器之间的每次交互,都由一个 ASCII 码串构成的请求和一个类似的通用互联网扩充,即“类MIME (MIME-like)”的响应组成。HTTP 报文通常都使用 TCP 连接传送。

用户浏览页面的两种方法:

  1. 在浏览器的地址窗口中键入所要找的页面的 URL。

  2. 在某一个页面中用鼠标点击一个可选部分,这时浏览器会自动在互联网上找到所要链接的页面。

HTTP 的主要特点:

  • HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。

  • HTTP 协议本身也是无连接的。

  • HTTP 是无状态的 (stateless),简化了服务器的设计,使服务器更容易支持大量并发的 HTTP 请求。

请求一个万维网文档所需的时间:

  • 所需的时间 >= RTT(三报文握手建立 TCP 连接) + RTT(请求和接收文档)+ 文档的传输时间 = 2 RTT +文档的传输时间

协议 HTTP/1.0 的主要缺点:

  • 每请求一个文档就要有两倍 RTT 的开销。

  • 客户和服务器每一次建立新的 TCP 连接都要分配缓存和变量。

  • 这种非持续连接使服务器的负担很重。

协议 HTTP/1.1 使用持续连接:

  • 持续连接(persistent connection):服务器在发送响应后仍然在一段时间内保持这条连接(不释放),使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。

  • 只要文档都在同一个服务器上,就可以继续使用该 TCP 连接。

  • 两种工作方式:

    非流水线方式 (without pipelining)

    • 客户在收到响应报文之前就能够接着发送新的请求报文。

    • 连续的多个请求报文到达服务器后,服务器就可连续发回响应报文。

    • 下载效率提高。

    流水线方式 (with pipelining)。

协议 HTTP/2:

  • 协议 HTTP/1.1 的升级版本。

  • 服务器可以并行发回响应(使用同一个 TCP 连接)。

  • 允许客户复用 TCP 连接进行多个请求。

  • 把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率

  • 向后兼容。

(2) 代理服务器

代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache),它代表浏览器发出 HTTP 请求。

  • 使用高速缓存可减少访问互联网服务器的时延。

不使用高速缓存的情况:

  • 这条链路通信量很大,导致时延增加。

使用高速缓存的情况:

  • 浏览器访问互联网的服务器时,先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文。

  • 若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。

  • 若未存放,高速缓存就代表浏览器与互联网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。

  • 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。

  • 高速缓存收到对象后,先复制到本地存储器中(留待以后用),然后将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。

(3) HTTP 的报文结构

两类报文:

  • 请求报文:从客户向服务器的请求。

  • 响应报文:从服务器到客户的回答。

  • 由于 HTTP 是面向正文的 (text-oriented),因此报文中每一个字段的值都是一些 ASCII 码串,每个字段的长度都是不确定的。

三个组成部分:

  • 开始行:用于区分是请求报文还是响应报文。

  • 首部行:说明浏览器、服务器或报文主体的一些信息。可以有多行,也可以不使用。

  • 实体主体:请求报文中一般不用,响应报文中也可能没有该字段。

请求报文:

  • 在请求报文中,开始行是请求行。

  • 方法:对所请求的对象进行的操作,实际上就是一些命令。请求报文的类型是由它所采用的方法决定的。

HTTP 请求报文的一些方法:

  • URL:所请求的资源的 URL。

  • 版本:HTTP 的版本。

HTTP 请求报文举例:

响应报文:

  • 在响应报文中,开始行是状态行。

  • 版本:HTTP 的版本。

  • 状态码:服务器操作完成的状态。短语:解释状态码。

状态码:都是三位数字,分为5大类。

  • 1xx 表示通知信息,如请求收到了或正在进行处理。

  • 2xx 表示成功,如接受或知道了。

  • 3xx 表示重定向,表示要完成请求还必须采取进一步的行动。

  • 4xx 表示客户的差错,如请求中有错误的语法或不能完成。

  • 5xx 表示服务器的差错,如服务器失效无法完成请求。

(4) 在服务器上存放用户的信息

万维网使用 Cookie 跟踪在 HTTP 服务器和客户之间传递的状态信息。

4.4 万维网的文档

在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。

页面制作的标准语言:HTML。

共分为:

  • 静态万维网文档。内容不会改变。简单。

  • 动态万维网文档。文档的内容由应用程序动态创建。

  • 活动万维网文档。由浏览器端改变文档的内容。

(1) 超文本标记语言 HTML

超文本标记语言 HTML (HyperText Markup Language) 是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍,是万维网的重要基础 [RFC 2854]。

最新 HTML 5.0 增加了<audio><video>两个标签,实现对多媒体中的音频、视频使用的支持,增加了能够在移动设备上支持多媒体功能。

注意:HTML 不是应用层的协议,它只是万维网浏览器使用的一种语言。

  • HTML 定义了许多用于排版的命令(即标签)。

  • HTML 把各种标签嵌入到万维网的页面中,构成了所谓的 HTML 文档。

  • HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。

  • HTML 文档的后缀:.html.htm

(2) HTML 文档中标签的用法

<img>:图像标签。

  • 允许在万维网页面中插入图像。

  • 一个页面本身带有的图像称为内含图像 (inline image)。

  • HTML 标准没有规定该图像的格式。

  • 大多数浏览器都支持 GIF 和 JPEG 文件。

<a>:链接标签。

  • 每个链接都有一个起点和终点。

  • 起点:说明在万维网页面中的什么地方可引出一个链接。可以是一个字或几个字,或是一幅图,或是一段文字。例如:

    <a href="http://www.tsinghua.edu.cn">清华大学主页</a>

  • 终点:

    • 可以是其他网站上的页面。这种链接方式叫做远程链接。这时必须指明链接到的网站的 URL。

    • 可以指向本计算机中的某一个文件或本文件中的某处,这种链接方式叫做本地链接。这时必须指明链接的路径。

XML:

可扩展标记语言 XML (Extensible Markup Language) 和 HTML 很相似。

  • 设计宗旨是:传输数据,而不是显示数据。

  • 特点和优点:

    • 可用来标记数据、定义数据类型;

    • 允许用户对自己的标记语言进行自定义,并且是无限制的;

    • 简单,与平台无关;

    • 将用户界面与结构化数据分隔开来;

XHTML:

可扩展超文本标记语言 XHTML (Extensible HTML) 与 HTML 4.01 几乎相同,是更严格的 HTML 版本。

  • 作为一种 XML 应用被重新定义的 HTML,将逐渐取代 HTML。

CSS:

层叠样式表 CSS (Cascading Style Sheets) 是一种样式表语言,用于为 HTML 文档定义布局。

  • CSS 与 HTML 的区别:HTML 用于结构化内容,而 CSS 则用于格式化结构化的内容。

  • 例如:精确规定在浏览器上显示的字体、颜色、边距、高度、宽度、背景图像等。

(3) 动态万维网文档

静态文档:该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。

动态文档:文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。

动态文档和静态文档之间的主要差别体现在服务器端:文档内容的生成方法不同。从浏览器的角度看,这两种文档并没有区别。

万维网服务器功能的扩充:

  • 增加一个应用程序:处理浏览器发来的数据,并创建动态文档。

  • 增加一个机制:使万维网服务器把浏览器发来的数据传送给这个应用程序,然后万维网服务器能够解释这个应用程序的输出,并向浏览器返回 HTML 文档。

扩充了功能的万维网服务器:

CGI:

通用网关接口 CGI (Common Gateway Interface) :定义动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用的一种标准。

  • 通用:CGI 标准所定义的规则对其他任何语言都是通用的。

  • 网关:CGI 程序的作用像网关。

  • 接口:有一些已定义好的变量和调用等可供其他 CGI 程序使用。

CGI 网关程序:

  • 正式名字:CGI 脚本 (script)。

  • 脚本:指的是一个程序,它被另一个程序(解释程序)而不是计算机的处理机来解释或执行。

  • 脚本语言 (script language):如 Perl, JavaScript,Tcl/Tk 等。也可用一些常用的编程语言写出,如 C,C++等。

  • 脚本运行起来要比一般的编译程序要慢。

  • 脚本不一定是一个独立的程序,可以是一个动态装入的库,甚至是服务器的一个子程序。

CGI 程序又称为 cgi-bin 脚本,因为在许多万维网服务器上,将 CGI 程序放在 /cgi-bin 的目录下。

(4) 活动万维网文档

活动文档 (active document) 技术:把屏幕连续更新的工作转移给浏览器端。

  • 每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行。

  • 活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。

  • 由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高。

活动文档在客户端创建:

用 Java 语言创建活动文档:

  • Java 语言是一项用于创建和运行活动文档的技术。

  • 在 Java 技术中使用小应用程序 (applet) 来描述活动文档程序。

  • 用户从万维网服务器下载嵌入了 applet 的 HTML 文档后,可在浏览器的屏幕上点击某个图像,就可看到动画效果,或在下拉式菜单中点击某个项目,就可看到计算结果。

  • Java 技术是活动文档技术的一部分。

4.5 万维网的信息检索系统

使用户能够很方便地找到所需的信息。

在万维网中用来进行搜索的程序叫做搜索引擎 (search engine)。

(1) 全文检索搜索和分类目录搜索

全文检索搜索引擎:

  • 一种纯技术型的检索工具。

  • 通过搜索软件(例如一种叫做“蜘蛛”或“网络机器人”的 Spider 程序)到互联网上的各网站收集信息。

  • 按照一定的规则建立一个很大的在线索引数据库。

  • 用户在查询时只要输入关键词,从已经建立的索引数据库里查询(非实时)。

  • 需要定期更新维护数据库。

分类目录搜索引擎:

  • 不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,输入到分类目录的数据库中,供网上用户查询。

  • 分类目录搜索也叫做分类网站搜索。

  • 查询时只需要按照分类,不需要使用关键词,查询的准确性较好。

  • 查询的结果不是具体的页面,而是被收录网站主页的 URL 地址。

一些著名的搜索引擎:

垂直搜索引擎 (Vertical Search Engine) :

  • 针对某一特定领域、特定人群或某一特定需求提供搜索服务。

  • 也是提供关键字来进行搜索,但被放到一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。

  • 目前热门的垂直搜索行业有:购物、旅游、汽车、求职、房产、交友等。

元搜索引擎 (Meta Search Engine) :

  • 把用户提交的检索请求发送到多个独立的搜索引擎上去搜索,并把检索结果集中统一处理,以统一的格式提供给用户,因此是搜索引擎之上的搜索引擎。

  • 主要精力放在提高搜索速度、智能化处理搜索结果、个性化搜索功能的设置和用户检索界面的友好性上。

  • 其查全率和查准率都比较高。

(2) Google 搜索技术的特点

核心技术:网页排名(PageRank)

  • 对搜索结果按重要性排序。

  • 对链接的数目进行加权统计。来自重要网站的链接,其权重较大。

  • 进行超文本匹配分析,确定哪些网页与正在执行的特定搜索相关。

  • 在综合考虑整体重要性以及与特定查询的相关性之后,Google 就把最相关、最可靠的搜索结果放在首位。

4.6 博客和微博

博客:

  • 万维网日志 (weblog) 的简称。

  • 使网民不仅是互联网上内容的消费者,而且还是互联网上内容的生产者。

微博:

  • 微型博客 (microblog),又称为微博客。

  • 只记录片段、碎语,三言两语,现场记录,发发感慨,晒晒心情,永远只针对一个问题进行回答。

  • 开通的多种 API 使用户可通过手机、网络等方式即时更新自己的信息。

  • 是一种互动及传播性极快的工具。

4.7 社交网站

社交网站 SNS (Social Networking Site) :为一群拥有相同兴趣与活动的人创建在线社区。

  • 功能丰富:如电子邮件、即时传信(在线聊天)、博客撰写、共享相册、上传视频、网页游戏、创建社团、刊登广告等。

5. 电子邮件

5.1 电子邮件概述

电子邮件 (e-mail):指使用电子设备交换的邮件及其方法。

  • 优点:使用方便,传递迅速,费用低廉,可以传送多种类型的信息(包括:文字信息,声音和图像等)。

  • 重要标准:

    • 简单邮件发送协议:SMTP

    • 互联网文本报文格

    • 通用互联网邮件扩充 MIME

  • 邮件读取协议:POP3 和 IMAP

(1) 电子邮件系统组成

电子邮件系统的组成:三个主要构件。即用户代理,邮件服务器,以及邮件发送和读取协议

用户代理 UA (User Agent):

  • 用户与电子邮件系统的接口。又被称为电子邮件客户端软件。

  • 基本功能:撰写、显示、处理、通信。

邮件服务器 (Mail Server):

  • 又被称为邮件传输代理。

  • 功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况。

  • 按照客户服务器方式工作。

邮件发送和读取协议:

  • 邮件发送和读取使用不同的协议。

  • 简单邮件发送协议 SMTP:用于在用户代理向邮件服务器 或 邮件服务器之间发送邮件。

  • 邮局协议 POP3:用于用户代理从邮件服务器读取邮件。

邮件服务器必须能够同时充当客户和服务器。

SMTP 和 POP3(或 IMAP)都使用 TCP 连接可靠地传送邮件。

邮件不会在互联网中的某个中间邮件服务器落地。

(2) 电子邮件的组成

电子邮件由信封 (envelope) 和内容 (content) 两部分组成。

  • 电子邮件的传输程序根据邮件信封上的信息来传送邮件。

  • 用户在从自己的邮箱中读取邮件时才能见到邮件的内容。

(3) 电子邮件地址的格式

在邮件的信封上,最重要的就是收件人的地址。

  • TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:

    收件人邮箱名@邮箱所在主机的域名

5.2 简单邮件传送协议 SMTP

SMTP 规定了在两个相互通信的 SMTP 进程之间交换信息的方法。

  • SMTP 使用客户服务器方式。

  • SMTP 基于 TCP 实现客户与服务器的通信。

  • SMTP 是一个基于文本的 (即 ASCII 码) 的协议。

  • SMTP 客户与服务器之间采用命令-响应方式进行交互。

  • SMTP 基于 TCP 实现客户与服务器之间的通信。

(1) SMTP 通信的三个阶段
  1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器。

  2. 邮件传送。

  3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。

连接建立:

  • SMTP 客户首先使用熟知端口 25 与接收方的 SMTP 服务器建立 TCP 连接。

注意:SMTP 不使用中间的邮件服务器。

  • SMTP 服务器发出服务就绪。

  • SMTP 客户向服务器发送问候 (HELO命令),附上发送方的主机名。

  • SMTP 服务器若有能力接收邮件,则回答:“250 OK”,表示已准备好接收。

邮件传送:

连接释放:

5.3 电子邮件的信息格式

一个电子邮件分为信封和内容两大部分。

  • RFC 5322 只规定了邮件内容中的首部 (header) 格式。

  • 邮件的主体 (body) 部分则让用户自由撰写。

5.4 邮件读取协议 POP3 和 IMAP

两个常用的邮件读取协议:

  1. POP3:邮局协议 (Post Office Protocol) 第3个版本

  2. IMAP:网际报文存取协议 (Internet Message Access Protocol)

(1) POP3 协议
  • POP3 使用客户服务器方式。

  • POP3 基于 TCP 实现客户与服务器的通信。

  • POP3 支持用户鉴别。

  • POP3 服务器删除被用户读取了的邮件。

(2) IMAP 协议
  • IMAP 使用客户服务器方式。

  • IMAP 基于 TCP 实现客户与服务器的通信。

  • IMAP 是一个联机协议。

IMAP 的特点:

  • 连接后只下载邮件首部(部分下载)。

  • 用户直接在 IMAP 服务器上创建和管理文件夹。

  • 用户可以搜索邮件内容。

  • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。

  • 允许收信人只读取邮件中的某一个部分。

  • 缺点:要想查阅邮件,必须先联网。

IMAP 与 POP3 比较:

操作位置操作内容IMAPPOP3
收件箱阅读、标记、移动、删除邮件等客户端与邮箱更新同步仅在客户端内
发件箱保存到已发送客户端与邮箱更新同步仅在客户端内
创建文件夹新建自定义的文件夹客户端与邮箱更新同步仅在客户端内
草稿保存草稿客户端与邮箱更新同步仅在客户端内
垃圾文件夹接收并移入垃圾文件夹的邮件支持不支持
广告邮件接收并移入广告邮件夹的邮支持不支持

使用 POP3读取邮件:

使用 IMAP读取邮件:

邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 完全不同。

发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。

而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。

5.5 基于万维网的电子邮件

用户代理 (UA) 的缺点:

  • 必须在计算机中安装用户代理软件。

  • 收发邮件不方便。

万维网电子邮件优点:

  • 不需要在计算机中再安装用户代理软件。

  • 计算机能联网,就能非常方便地收发电子邮件。

  • 界面非常友好。

发送、接收电子邮件时使用 HTTP 协议。

  • 两个邮件服务器之间传送邮件时使用 SMTP。

  • 使用 HTTP POST 方法提交要发送的邮件。

  • 使用 HTTP GET 方法读取邮件。

5.6 通用互联网邮件扩充 MIME

SMTP 缺点:

  • 不能传送可执行文件或其他的二进制对象。

  • 限于传送 7 位的 ASCII 码,无法传送非 ASCII 编码的信息。

  • 服务器会拒绝超过一定长度的邮件。

  • 某些 SMTP 的实现并没有完全按照 [RFC 821] 的 SMTP 标准。

(1) MIME 概述

通用互联网邮件扩充 MIME 并没有改动 SMTP 或取代它。

  • 意图:继续使用目前的 [RFC 822] 格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。

MIME 主要包括三个部分:

  • 5 个新的邮件首部字段。

  • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

  • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

MIME 增加 5 个新的邮件首部:

内容传送编码(Content-Transfer-Encoding) :

编码方法说明
7bit7 ASCII 编码,每行不能超过 1000 个字符(包括回车和换行**)。默认编码方法。**
8bit8 位非 ASCII 编码,每行不能超过 1000 个字节(包括回车和换行)。
Binary8 位非 ASCII 编码,任意长度的字节串。
Base64将任意长度的字节串转换为用 7 ASCII 编码表示的字符串。可用于二进制和非文本数据的编码。
Quoted-printable将任意长度的字节串转换为 ASCII 编码表示的字符串。可用于二进制和非文本数据的编码。

内容类型:

  • MIME 标准规定:

    Content-Type 说明必须含有两个标识符:内容类型 (type) 和子类型 (subtype),中间用“/”分开。

  • MIME 标准原先定义了 7 个基本内容类型和 15 种子类型。

  • MIME 允许发件人和收件人自己定义专用的内容类型。但为避免可能出现名字冲突,标准要求为专用内容类型选择的名字要以字符串 X-开始。

内容类型子类型举例说明
text(文本)plain, html, xml, css不同格式的文本
image(图像)gif, jpeg, tiff不同格式的静止图像
audio(音频)basic, mpeg, mp4可听见的声音
video(视频)mpeg, mp4, quicktime不同格式的影片
model(模型)vrml3D模型
application(应用)octet-stream, pdf, javascript, zip不同应用程序产生的数据
message(报文)http, rfc822封装的报文
multipart(多部分)mixed, alternative, parallel, digest多种类型的组合

6. 动态主机配置协议 DHCP

在协议软件中,给协议参数赋值的动作叫做协议配置。

  • 一个协议软件在使用之前必须是已正确配置的。

  • 具体的配置信息取决于协议栈。

  • 连接到互联网的计算机的协议软件需要正确配置的参数包括:

    • IP 地址

    • 子网掩码

    • 默认路由器的 IP 地址

    • 域名服务器的 IP 地址

6.1 动态主机配置协议 DHCP

  • 动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制,允许一台计算机加入网络和获取 IP 地址,而不用手工配置。

  • DHCP 给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址。

6.2 DHCP 使用客户服务器方式

  • 需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为 DHCP 客户。

  • 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。

  • DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池 (address pool) 中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER)。

6.3 DHCP 工作方式

  • DHCP 使用客户服务器方式,采用请求/应答方式工作。

  • lDHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。

  • 需要 IP 地址的主机向 DHCP 服务器广播发送发现报文 (DHCPDISCOVER) 。

  • DHCP 服务器回答提供报文 (DHCPOFFER) (单播),提供 IP 地址等配置信息。

DHCP 中继代理 (relay agent)

问题:每个网络上都需要有 DHCP 服务器吗?

  • 答案:不需要,因为会使 DHCP 服务器的数量太多。

问题:若没有 DHCP 服务器,如何自动获得地址?

  • 解决:每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。

DHCP 中继代理以单播方式转发发现报文 。

  • DHCP 中继代理收到主机广播发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。

  • 收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将其发回给主机。

6.4 租用期 (lease period)

DHCP 服务器分配给 DHCP 客户的 IP 地址的临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期。

  • 租用期的数值应由 DHCP 服务器自己决定。

  • DHCP 客户也可在自己发送的报文中(例如,发现报文)提出对租用期的要求。

6.5 DHCP 协议的工作过程

①:DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文。

②:DHCP 客户从 UDP 端口 68 发送 DHCP 发现报文 DHCPDISCOVER。

③:凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文 DHCPOFFER,因此 DHCP 客户可能收到多个 DHCP 提供报文 。

④:DHCP 客户从几个 DHCP 服务器中选择其中的一个,并向所选择的 DHCP 服务器发送 DHCP 请求报文 DHCPREQUEST。

⑤:被选择的 DHCP 服务器发送确认报文 DHCPACK,DHCP 客户可开始使用得到的临时 IP 地址了,进入已绑定状态。

DHCP 客户现在要根据服务器提供的租用期 T 设置两个计时器 T1 和 T2,它们的超时时间分别是 0.5T 和 0.875T。当超时时间到时,就要请求更新租用期。

⑥:租用期过了一半(T1 时间到),DHCP 发送请求报文 DHCPREQUEST,要求更新租用期。

⑦:DHCP 服务器若同意,则发回确认报文 DHCPACK。DHCP 客户得到了新的租用期,重新设置计时器。

⑧:DHCP 服务器若不同意,则发回否认报 DHCPNACK。这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址(回到步骤 ②)。

若 DHCP 服务器不响应步骤 ⑥的请求报文 DHCPREQUEST,则在租用期过了 87.5% 时 (T2 时间到),DHCP 客户必须重新发送请求报文 DHCPREQUEST(重复步骤 ⑥),然后又继续后面的步骤。

⑨:DHCP 客户可随时提前终止服务器所提供的租用期,这时只需向 DHCP 服务器发送释放报文 DHCPRELEASE 即可。

7. 简单网络管理协议 SNMP

7.1 网络管理的基本概念

网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能,服务质量等。

  • 网络管理常简称为网管。

(1) 网络管理

网络管理的五大功能:

  • 故障管理:故障检测、隔离和纠正。

  • 配置管理:初始化网络、并配置网络。

  • 计费管理:记录网络资源的使用。

  • 性能管理:估价系统资源的运行状况及通信效率等。

  • 网络安全管理:对授权机制、访问控制、加密和加密关键字的管理。

网络管理的一般模型:

网络管理模型中的主要构件:

  • 管理站也常称为网络运行中心 NOC (Network Operations Center),是网络管理系统的核心。

  • 管理程序是管理站中的关键构件,在运行时就成为管理进程。

  • 管理站(硬件)或管理程序(软件)都可称为管理者(manager)。Manager 不是指人,而是指机器或软件。

  • 网络管理员 (administrator) 指的是负责网络管理的人员。

  • 大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管理本地网络的设备。

代理 (agent):

  • 在每一个被管设备中都要运行一个程序,以便和管理站中的管理程序进行通信。

  • 这些运行着的程序叫做网络管理代理程序,或简称为代理。

  • 代理程序在管理程序的命令和控制下在被管设备上采取本地的行动。

网络管理协议:

  • 网络管理协议简称为网管协议。

  • 网络管理协议是管理程序和代理程序之间进行通信的规则。

  • 网络管理员利用网络管理协议,通过管理站对网络中的被管设备进行管理。

注意:网管协议本身不管理网络。

(2) 简单网络管理协议

简单网络管理协议 SNMP:

  • 简单网络管理协议 SNMP (Simple Network Management Protocol) 中的管理程序和代理程序按客户服务器方式工作。

  • 管理程序运行 SNMP 客户程序,向某个代理程序发出请求 (或命令)。

  • 代理程序运行 SNMP 服务器程序,返回响应 (或执行某个动作)。

  • 在网管系统中,往往是一个(或少数几个)客户程序与很多的服务器程序进行交互。

网络管理的基本原理:

  • 若要管理某个对象,就必然会给该对象添加一些软件或硬件,但这种“添加”必须对原有对象的影响尽量小些。

SNMP 的基本功能:

  • 最重要的指导思想:尽可能简单。

  • 基本功能:

    • 监视网络性能

    • 检测分析网络差错

    • 配置网络设备

SNMP 的管理站和委托代理:

  • 整个系统必须有一个管理站。

  • 若网络元素使用的不是 SNMP 而是另一种网络管理协议,SNMP 协议就无法控制该网络元素。这时可使用委托代理 (proxy agent)。

  • 委托代理能提供协议转换和过滤操作等功能,对被管对象进行管理。

SNMP 网络管理组成:

SNMP 的网络管理由三个部分组成。

  • SNMP 本身

  • 管理信息结构 SMI (Structure of Management Information)

  • 管理信息库 MIB (Management Information Base)。

SNMP 定义了管理站和代理之间所交换的分组格式。

  • 所交换的分组包含各代理中的对象(变量)名及其状态(值)。

  • SNMP 负责读取和改变这些数值。

(3) 管理信息结构 SMI

SMI 定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则,以确保网络管理数据的语法和语义的无二义性。

  • 但从 SMI 的名称并不能看出它的功能。

  • SMI 并不定义一个实体应管理的对象数目,也不定义被管对象名以及对象名及其值之间的关联。

(4) 管理信息库 MIB

MIB 在被管理的实体中创建了命名对象,并规定了其类型。

  • 管理程序使用 MIB 中的信息,对网络进行管理。

7.2 管理信息结构 SMI

(1) SMI

SMI 的功能:

  • 被管对象应怎样命名;

  • 用来存储被管对象的数据类型有哪些种;

  • 在网络上传送的管理数据应如何编码。

SMI 规定:所有被管对象必须在命名树上

SMI 使用 ASN.1:

  • SMI 标准指明:所有的 MIB 变量必须使用抽象语法记法 1 (ASN.1) 来定义。

  • SMI 既是 ASN.1 的子集,又是 ASN.1 的超集。

  • ASN.1 的记法很严格,使得数据的含义不存在任何可能的二义性。

SMI 数据类型:

  • SMI 把数据类型分为两大类:

    • 简单类型

    • 结构化类型。

ASN.1 部分数据类型:

基本编码规则 BER:

  • ISO 在制订 ASN.1 语言的同时也为它定义了一种标准的编码方案,即基本编码规则 BER (Basic Encoding Rule)。

  • BER 指明了每种数据类型中每个数据的值的表示。

  • SMI 使用 ASN.1 制定的 BER 进行数据的编码。

  • 发送端用 BER 编码,可将用 ASN.1 所表述的报文转换成唯一的比特序列。

  • 接收端用 BER 进行解码,得到该比特序列所表示的 ASN.1 报文。

(2) TLV

用 TLV 方法进行编码:

TLV 中的 T 字段定义数据的类型:

TLV 中的 T 字段定义数据的类型:

数据类型类别格式编号T 字段(二进制)T 字段(十六进制)
INTEGER000000100000001002
OCTET STRING000001000000010004
OBJECT IDENTIFIER000001100000011006
NULL000001010000010105
Sequence, sequence of001100000011000030
IPAddress010000000100000040
Counter010000010100000141
Gauge010000100100001042
TimeTicks010000110100001143
Opaque010001000100010044

TLV 中的 L 字段定义 V 字段的长度:

TLV 中的 V 字段定义数据的值:

类 型大 小说 明
INTEGER4 字节在 –231 到 231 – 1 之间的整数
Interger324 字节和 INTEGER 相同
Unsigned324 字节在 0 到 232 – 1 之间的无符号数
OCTET STRING可变不超过 65535 字节长的字节串
OBJECT IDENTIFIER可变对象标识符
IPAddress4 字节由 4 个整数组成的IP地址
Counter324 字节可从 0 增加到 232 的整数;当它到达最大值时就返回到 0
TimeTicks4 字节记录时间的计数值,以 1/100 秒为单位
BITS比特串
Opaque可变不解释的串

TLV 中的 V 字段可嵌套其他数据元素的 TLV 字段。

7.3 管理信息库 MIB

被管对象必须维持可供管理程序读写的若干控制和状态信息。这些信息总称为管理信息库 MIB (Management Information Base) 。

  • 管理程序使用 MIB 中这些信息的值对网络进行管理(如读取或重新设置这些值)。

  • 只有在 MIB 中的对象才是 SNMP 所能够管理的。

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

SNMP 的操作只有两种基本的管理功能:

  • “读”操作,用 get 报文来检测各被管对象的状况;

  • “写”操作,用 set 报文来改变各被管对象的状况。

  • SNMP 的这些功能通过探询操作来实现。

SNMP 的探询操作:

SNMP 管理进程定时向被管理设备周期性地发送探询信息。

  • 好处:

    1. 可使系统相对简单。

    2. 能限制通过网络所产生的管理信息的通信量。

  • 缺点:

    1. 不够灵活,而且所能管理的设备数目不能太多。

    2. 开销也较大。

陷阱 (trap):

  • SNMP 允许不经过询问就能发送某些信息。这种信息称为陷阱,表示它能够捕捉“事件”。

  • 当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(即过滤)。

  • 过滤的好处:

    • 仅在严重事件发生时才发送陷阱;

    • 陷阱信息很简单且所需字节数很少。

SNMP 是有效的网络管理协议:

  • 使用探询(至少是周期性地)以维持对网络资源的实时监视。

  • 同时也采用陷阱机制报告特殊事件,使得 SNMP 成为一种有效的网络管理协议。

SNMP 使用无连接的 UDP:

  • 运行代理程序的服务器端用 UDP 熟知端口 161 接收 get 或 set 报文,发送响应报文。与熟知端口通信的客户端使用临时端口。

  • 运行管理程序的客户端则使用 UDP 熟知端口 162 来接收来自各代理的 trap 报文。

SNMP 的报文格式:

8. 应用进程跨越网络的通信

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

大多数操作系统使用系统调用 (system call ) 的机制在应用程序和操作系统之间传递控制权。

对程序员来说,每一个系统调用和一般程序设计中的函数调用非常相似,只是系统调用是将控制权传递给了操作系统。

多个应用进程使用系统调用的机制:

(1) 应用编程接口 API

系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口。

  • 使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口 API (Application Programming Interface) 。

几种应用编程接口 API:

  • Berkeley UNIX 操作系统定义了一种 API,它又称为套接字接口 (socket interface)。

  • 微软公司在其操作系统中采用了套接字接口 API,形成了一个稍有不同的 API,并称之为 Windows Socket。

  • AT&T 为其 UNIX 系统 V 定义了一种 API,简写为 TLI (Transport Layer Interface)。

(2) 应用进程通过套接字接入到网络

套接字的作用:

  • 当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建套接字,以便把网络通信所需要的系统资源分配给该应用进程。

  • 操作系统为这些资源的总和用一个套接字描述符的号码来表示。

  • 应用进程所进行的网络操作都必须使用这个套接字描述符。

  • 通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该套接字描述符相关的所有资源。

调用 socket 创建套接字:

8.2 几种常用的系统调用

当应用进程需要使用网络进行通信时,就发出系统调用。

  • 使用 TCP/IP 应用编程接口 API,就可以编写基于互联网的网络应用程序了。

  • 调用 API 时,用户可以使用 TCP 服务,也可以使用 UDP 等其他服务。

  • TCP 提供面向连接的服务。

  • 使用 TCP 服务需要经历 3 个阶段:

    • 连接建立阶段

    • 数据传送阶段

    • 连接释放阶段

连接建立阶段:

  • 通信之前,客户和服务器先创建套接字。

  • 服务器端调用 bind,把熟知端口号和本地 IP 地址填写到已创建的套接字中。

  • 服务器端调用 listen(收听),把套接字设置为被动方式,以便随时接受客户的服务请求。UDP 服务器不使用 listen 系统调用。

  • 服务器端调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。UDP 服务器不使用 accept 系统调用。

调用 accept 要完成的动作较多。这是因为一个服务器必须能够同时处理多个连接。这样的服务器常称为并发方式 (concurrent) 工作的服务器。

  • 客户进程调用 connect,以便和远地服务器建立连接(这就是主动打开)。

传送阶段:

  • 客户和服务器在 TCP 连接上使用 send 传送数据,使用 recv 接收数据。

连接释放阶段:

  • 客户或服务器通信结束,调用 close 释放连接和撤销套接字。

9. P2P 应用

在 P2P 工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输。

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

Napster 最早使用 P2P 技术,提供免费下载 MP3 音乐。

  • Napster 将所有音乐文件的索引信息都集中存放在 Napster 目录服务器中。

  • 使用者只要查找目录服务器,就可知道应从何处下载所要的 MP3 文件。

  • 用户要及时向 Napster 的目录服务器报告自己存有的音乐文件。

  • Napster 的文件传输是分散的,文件的定位则是集中的。

Napster 的工作过程:

①:用户 X 向 Napster 目录服务器查询(采用客户服务器方式)谁有音乐文件 MP3#。

②:Napster 目录服务器回答 X:有三个地点有文件 MP3#,即 A, B 和 C(给出了这三个地点的 IP 地址)。于是用户 X 得知所需的文件 MP3# 的三个下载地点。

③:用户 X 可以随机地选择三个地点中的任一个。假定 X 向 A 发送下载文件 MP3# 的请求报文。双方都使用 P2P 方式通信。

④:对等方 A(现在作为服务器)把文件 MP3# 发送给 X。

集中式目录服务器的缺点:

  • 可靠性差。

  • 会成为性能的瓶颈。

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

Gnutella 是第二代 P2P 文件共享程序,采用全分布方法定位内容的 P2P 文件共享应用程序。

  • Gnutella 与 Napster 最大的区别:不使用集中式的目录服务器,而是使用洪泛法在大量 Gnutella 用户之间进行查询。

  • 为了不使查询的通信量过大,Gnutella 设计了一种有限范围的洪泛查询,减少了倾注到互联网的查询流量,但也影响到查询定位的准确性。

  • 第三代 P2P 文件共享程序采用分散定位和分散传输技术。例如 KaZaA,电骡 eMule,比特洪流 BT (Bit Torrent) 等。

使用 P2P 的比特洪流 BT 主要特点:

  • BitTorrent 所有对等方集合称为一个洪流 (torrent)。

  • 下载文件的数据单元为长度固定的文件块 (chunk)。

  • 基础设施结点,叫做追踪器 (tracker)。

  • A 和对等方建立了 TCP 连接。所有与 A 建立了 TCP 连接的对等方为相邻对等方(neighboring peers)。

  • 相邻关系是逻辑的,对等方的数目是动态变化的。

  • 对等方之间互相传送文件数据块。

BT 协议:

问题:哪些文件块是首先需要向其相邻对等方请求的?

  • 方法:A 使用最稀有的优先 (rarest first) 的技术,首先向其相邻对等方请求对应的文件块。

  • 稀有:如果 A 所缺少的文件块在相邻对等方中的副本很少,那就是“很稀有的”。

问题:在很多向 A 请求文件块的相邻对等方中,A 应当向哪些相邻对等方发送所请求的文件块?

  • 方法:凡当前以最高数据率向 A 传送文件块的某相邻对等方,A 就优先把所请求的文件块传送给该相邻对等方。

9.3 P2P 文件分发的分析

从互联网传送数据到主机,叫做下载 (download), 从主机向互联网传送,则称为上传 (upload) 或上载。

N 台主机从服务器下载一个大文件,其长度为 F bit。

假定主机与互联网连接的链路的上传速率和下载速率分别为 ui 和 di ,单位都是 bit/s。

客户-服务器方式下分发的最短时间分析:

  • 从服务器端考虑,所有主机分发完毕的最短时间 Tcs 不可能小于 NF/us ;

  • 下载速率最慢的主机的下载速率为 dmin,则 Tcs 不可能小于 F/dmin 。

  • 由此可得出所有主机都下载完文件 F 的最少时间是:Tcs=max( NF/us,F/dmin )

P2P 方式下分发的最短时间分析:

  • 初始服务器文件分发的最少时间不可能小于 F/us ;

  • 下载文件分发的最少时间不可能小于 F/dmin ;

  • 上载文件分发的最少时间不可能小于 NF/uT ,其中是 uT 是上传速率之和。

  • 所有主机都下载完文件 F 的最少时间的下限是:Tp2p >= max( F/us , F/dmin, NF/uT )

时间比较:

  • 设所有的对等方的上传速率都是 u,并且 F/u = 1 小时。

  • 设服务器的上传速率 us = 10u。

N = 30 时,P2P 方式:最少时间的下限是 0.75 小时 < 1 小时(不管 N 多大)。

客户服务器方式:最少时间是 3 小时。

9.4 在 P2P 对等方中搜索对象

Napster 在一个集中式目录服务器中构建查找数据库,简单,但性能上有瓶颈。

Gnutella 是一种采用全分布方法定位内容的 P2P 文件共享应用程序,它解决了集中式目录服务器所造成的瓶颈问题。但 Gnutella 是在非结构化的覆盖网络中采用查询洪泛的方法进行查找,因此查找的效率较低。

  • 现在广泛使用的索引和查找技术叫做分布式散列表 DHT (Distributed Hash Table)。

  • DHT 也可译为分布式哈希表,由大量对等方共同维护。

  • 广泛使用的 Chord 算法是美国麻省理工大学于 2001 年提出的。

基于 DHT 的 Chord 环:

  • 分布式散列表 DHT 利用散列函数,把资源名 K 及其存放的结点 IP 地址 N 都分别映射为资源名标识符 KID 和结点标识符 NID。

  • Chord 把结点按标识符数值从小到大沿顺时针排列成一个环形覆盖网络。

  • 每个资源由 Chord 环上与其标识符值最接近的下一个结点提供服务。

为了加速查找,在 Chord 环上可以增加一些指针表(finger table),又称为路由表或查找器表。

10. 补充

  • 互联网的域名结构是怎样的?它与目前的电话网的号码结构有何异同之处?

    互联网的域名结构与目前的电话网的号码结构都是重要的寻址系统,二者既存在相似之处,也有明显的不同。以下是对这两个结构的详细分析:

    互联网的域名结构

    1. 层次树状结构:互联网的域名结构采用了层次树状结构的命名方法,就像全球邮政系统那样。采用这种命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。域还可以划分为子域,子域还可继续划分为子域的子域,这样就形成了顶级域(TLD)、二级域(SLD)、三级域等。

    2. 域名组成:从语法上讲,每一个域名都是由标号序列组成的,而各标号之间用点隔开。域名由多个部分组成,每个部分用点(.)分隔,从右到左分别是顶级域名、二级域名、三级域名等。

    3. 域名分类:域名分为国际域名(如.com、.org、.net等)和国内域名(如.cn、.com.cn等)。

    4. DNS系统:域名系统DNS(Domain Name System)被设计成为一个联机分布式数据库系统,并采用客户服务器方式。DNS的层次结构与域名的层次结构相对应,也采用树状结构,最顶层是根域,下面是顶级域、二级域等。DNS由递归查询、迭代查询和权威解析三个部分组成。

    电话网的号码结构

    1. 层次型结构:电话号码是典型的层次型结构地址,由一系列的字段组成,这些字段将地址分为不相交的分区。

    2. 编号计划:电话网的号码结构遵循特定的编号计划,如ITU-T的E.164编号体制。这种编号体制是十进制的,长度可变,并且已经成功地应用于PSTN、ISDN及移动网(GSM和CDMA)网络中。

    3. 号码组成:电话号码通常由国家码、地区码和用户号码等组成。例如,中国的PSTN号码由国家码(86)、目的地码(如10,代表北京)和用户号码(8位数字)组成。

    异同之处

    1. 相同点

      • 树状结构:互联网的域名结构和电话网的号码结构都采用了树状结构,具有层次性。

      • 唯一性:每一个域名和每一个电话号码在系统中都是唯一的,用于唯一标识一个特定的目标。

    2. 不同点

      • 解析方式:在互联网中,域名需要经过域名系统(DNS)进行从域名到IP地址的转换(这个过程称为解析)才能进行通信。而电话网的号码则可以直接用于呼叫,无需额外的解析过程。

      • 地理位置信息:固定电话号码可以反映出地理位置信息,例如中国的固定电话号码可以反映出所在的省份和城市。但域名与地理位置并无直接的对应关系,例如一个以.com结尾的域名可能位于世界上任何一个国家。

      • 应用领域:域名主要应用于互联网领域,用于标识网站、服务器等网络资源。而电话号码则主要应用于电话通信领域,用于实现人与人之间的语音通话。

    综上所述,互联网的域名结构和电话网的号码结构在层次树状结构和唯一性方面具有相似之处,但在解析方式、地理位置信息和应用领域等方面存在明显的不同。

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

    域名系统的主要功能

    域名系统(DNS)是因特网使用的命名系统,主要功能是将便于人们使用的机器名字(即域名)转换为IP地址,实现用户访问网站时只用输入域名即可访问的功能,能够使人更方便地访问互联网。

    域名系统中各类服务器的区别

    在域名系统中,本地域名服务器、根域名服务器、顶级域名服务器以及权限域名服务器各自承担不同的职责,它们之间的主要区别如下:

    1. 本地域名服务器

      • 定义:本地域名服务器是用户所在网络所配置的域名服务器,也称为默认域名服务器。例如,公司、大学都可以在公司网络或校园网内拥有一台或多台自行管理的本地域名服务器。

      • 功能:负责完成本网络内主机域名的解析,即解析本公司或学校内部各应用服务器的域名。当一台主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

    2. 根域名服务器

      • 定义:根域名服务器是域名的最高一级,位于DNS层次结构的最顶层。

      • 功能:

        • 管理顶级域:负责管理顶级域(如.com、.org、.net等),并将这些顶级域分配给相应的管理机构,如互联网名称与数字地址分配机构(ICANN)。

        • 解析顶级域:当用户输入一个域名时,DNS解析器首先查询根域名服务器,以获取该顶级域的权威DNS服务器地址。

        • 提供DNS缓存服务:当根域名服务器收到来自客户端的查询请求时,它会检查自己的缓存,看是否已经有与查询相关的信息。如果有,根域名服务器可以直接返回缓存中的信息,从而加快查询速度。

        • 维护互联网稳定性:根域名服务器在维护互联网的稳定性和安全性方面也发挥着重要作用,例如对恶意域名进行监控和阻止,以及协助处理DNS污染等问题。

    3. 顶级域名服务器(TLD服务器)

      • 定义:顶级域名服务器是互联网域名系统(DNS)中的一级服务器,存储了所有顶级域名的DNS记录。

      • 功能:负责管理在该顶级域名服务器注册的所有二级域名。当一个计算机或设备试图访问一个域名时,如果本地域名服务器找不到相应的记录,它会向根域名服务器发送查询请求。根域名服务器会指导本地域名服务器向相应的顶级域名服务器发送查询请求。顶级域名服务器会检查请求中包含的顶级域名,并返回该域名的DNS记录,包括该域名下的所有子域名和其对应的IP地址。

    4. 权限域名服务器(Authoritative Name Server)

      • 定义:权限域名服务器是负责存储、管理和解析特定域的DNS记录的服务器。

      • 功能:

        • 转换域名为IP地址:当用户在浏览器输入一个网站地址时,权限域名服务器会接收到来自本地DNS服务器的查询请求,并返回对应的IP地址,使得用户可以访问到指定的网站。

        • 处理权威问题:权限域名服务器是解答特定域名权威问题的源头,例如确定一个邮件服务器的地址或验证域名的存在等。

        • 维护DNS记录:权限域名服务器存储了其管理范围内的所有域名的DNS记录,包括A记录、AAAA记录(IPv6地址)、MX记录(邮件服务器)等。

        • 更新和管理记录:域名所有者可以在权限域名服务器上更新或修改其DNS记录,从而控制网站或服务的指向。

        • 优化响应速度:由于权限域名服务器通常由域名所有者或注册商直接运维,它们能够更快地响应DNS解析请求,改善访问速度。

        • 保障服务稳定:权限域名服务器的运维团队可以确保服务器的稳定性,减少因DNS问题引起的网站访问故障。

        • 防止DNS劫持:权限域名服务器可以通过安全措施来预防DNS劫持,保护用户访问正确的网络资源。

    综上所述,域名系统中的各类服务器各自承担不同的职责,共同协作完成域名的解析和管理工作。这些服务器在维护互联网的稳定性和安全性方面发挥着重要作用。

  • 举例说明域名转换的过程。域名服务器中的高速缓存的作用是什么?

    域名转换的过程

    域名转换的过程,即将域名转换为IP地址的过程,通常称为DNS解析。以下是一个具体的例子来说明这个过程:

    假设有一个域名为“m.xyz.com”的主机,它想知道另一个主机“y.abc.com”的IP地址。以下是详细的解析过程:

    1. 本地查询:主机“m.xyz.com”首先向其配置的本地域名服务器(例如dns.xyz.com)发送查询请求,询问“y.abc.com”的IP地址。

    2. 迭代查询

      • 本地域名服务器(dns.xyz.com)采用迭代查询方式,首先向一个根域名服务器发送查询请求。

      • 根域名服务器返回给本地域名服务器一个或多个顶级域名服务器的IP地址。

      • 本地域名服务器接着向这些顶级域名服务器中的一个(例如dns.com)发送查询请求。

      • 顶级域名服务器返回给本地域名服务器一个或多个权限域名服务器的IP地址。

    3. 权限查询

      • 本地域名服务器向这些权限域名服务器中的一个(例如dns.abc.com)发送查询请求。

      • 权限域名服务器返回给本地域名服务器所查询的主机“y.abc.com”的IP地址。

    4. 结果返回:最后,本地域名服务器将查询到的IP地址返回给主机“m.xyz.com”。

    这样,主机“m.xyz.com”就知道了“y.abc.com”的IP地址,并可以与之进行通信。

    域名服务器中的高速缓存的作用

    域名服务器中的高速缓存(DNS cache)是一种用于存储域名解析结果的临时存储设备。它的主要作用包括:

    1. 提高解析速度:当用户首次访问一个网站时,域名服务器需要花费时间将域名解析为IP地址。然而,如果这个解析结果被存储在高速缓存中,当用户再次访问该网站时,域名服务器就可以直接从高速缓存中读取解析结果,而无需再次进行解析。这样可以显著提高域名解析的速度,从而加快网页的加载速度。

    2. 减轻DNS服务器负载:通过缓存解析结果,域名服务器可以减少对外部DNS服务器的请求次数。这不仅可以减轻外部DNS服务器的负载,还可以降低网络带宽的消耗。

    3. 提升用户体验:高速缓存的存在使得用户可以更快地访问他们经常访问的网站,从而提升了用户的上网体验。

    然而,高速缓存也存在一些潜在的问题,如缓存中毒、缓存污染等。为了解决这些问题,域名服务器通常会设置缓存的存活时间(TTL),并在TTL过期后重新查询外部DNS服务器以获取最新的解析结果。此外,管理员还可以对高速缓存进行配置和管理,以确保其准确性和及时性。

    综上所述,域名服务器中的高速缓存是一种重要的技术,它可以提高域名解析的速度、减轻DNS服务器负载并提升用户体验。

  • 设想有一天整个互联网的DNS系统都瘫痪了(这种情况不大会出现),试问还有可能给朋友发送电子邮件吗?

    如果整个互联网的DNS系统都瘫痪了,虽然这种情况在现实中极为罕见且不太可能完全发生(因为DNS系统具有高度的冗余和分布式特性),但我们可以设想其影响来探讨这个问题。

    DNS(域名系统)的主要功能是将人类可读的域名(如example.com)转换为机器可读的IP地址(如192.0.2.1)。这是互联网通信的基础之一,因为大多数网络通信,包括电子邮件的发送和接收,都是基于IP地址进行的。

    如果DNS系统完全瘫痪,那么将发生以下情况:

    1. 无法解析域名:用户将无法将电子邮件地址中的域名部分(如@example.com)解析为对应的邮件服务器IP地址。

    2. 邮件服务器无法通信:邮件服务器之间也无法通过域名相互解析,因此它们无法建立连接来传输邮件。

    3. 依赖DNS的服务中断:许多电子邮件服务还依赖DNS来验证发件人身份(如SPF、DKIM和DMARC等安全策略),这些服务也将无法正常工作。

    4. 手动配置困难:虽然理论上可以通过手动配置IP地址来绕过DNS系统,但这对于普通用户来说几乎是不可能的,因为大多数用户不知道如何查找和配置邮件服务器的IP地址,而且这些信息通常也是动态变化的。

    5. 网络基础设施受损:DNS系统的瘫痪还可能影响到其他网络基础设施,如网页浏览、远程登录等,这些服务的中断也可能间接影响到电子邮件的使用。

    综上所述,如果整个互联网的DNS系统都瘫痪了,那么普通用户几乎不可能继续发送或接收电子邮件。然而,对于高度专业化的环境(如大型企业或研究机构),他们可能拥有备用系统或手动配置的能力来应对这种情况,但这些方法通常不适用于普通用户。

    在现实中,DNS系统的健壮性和冗余性设计使其能够应对许多潜在的故障点,因此完全瘫痪的情况几乎不可能发生。此外,即使发生局部故障,也有多种备用机制(如二级DNS服务器、CDN缓存等)来确保服务的连续性。

  • 文件传送协议FTP的主要工作过程是怎样的?为什么说FTP是带外传送控制信息的?

    文件传送协议(FTP)的主要工作过程以及它被称为带外传送控制信息的原因,可以详细解释如下:

    FTP的主要工作过程

    FTP使用客户服务器方式,其主要工作过程涉及以下步骤:

    1. 建立连接:客户端(通常是用户计算机)通过TCP连接与服务器建立通信。FTP使用两个TCP连接:一个是控制连接,用于传输FTP命令和响应;另一个是数据连接,用于传输文件和数据。

    2. 用户认证:在控制连接上,客户端发送登录请求,包括用户名和密码,服务器进行验证。

    3. 发送命令:一旦认证成功,客户端就可以发送FTP命令来请求文件传输操作,如列出目录内容、下载文件或上传文件等。

    4. 处理请求:服务器接收到客户端的命令后,会创建相应的数据传送进程和数据连接(如果需要的话),并处理该请求。例如,如果客户端请求下载一个文件,服务器会找到该文件并通过数据连接发送给客户端。

    5. 关闭连接:文件传输完成后,数据连接会被关闭。如果客户端完成了所有操作并断开连接,控制连接也会被关闭。

    FTP是带外传送控制信息的原因

    FTP被称为带外传送控制信息,主要是因为以下原因:

    1. 控制连接与数据连接分离:在FTP中,控制连接和数据连接是分离的。控制连接用于传输FTP命令和响应,而数据连接则用于传输文件和数据。这种分离使得控制信息(即FTP命令和响应)和文件数据可以在不同的连接上独立传输,互不影响。

    2. 带宽需求不同:控制连接通常只需要较小的带宽,因为它们只传输简短的命令和响应。而数据连接则需要更大的带宽来传输文件和数据。通过将控制信息和文件数据分开传输,FTP可以更有效地利用网络资源。

    3. 提高传输效率:由于控制连接和数据连接是独立的,FTP可以同时处理多个文件传输请求。例如,当一个文件正在通过数据连接传输时,客户端可以发送另一个FTP命令来请求另一个文件的传输,而这个命令会通过控制连接立即发送给服务器进行处理。这种并行处理的方式提高了文件传输的效率。

    综上所述,FTP的主要工作过程涉及建立连接、用户认证、发送命令、处理请求和关闭连接等步骤。而FTP之所以被称为带外传送控制信息,是因为它采用了控制连接和数据连接分离的方式,使得控制信息和文件数据可以在不同的连接上独立传输,从而提高了文件传输的效率和网络资源的利用率。

  • 主进程和从属进程各起什么作用?

    主进程和从属进程在计算机系统中各自扮演着重要的角色,它们的作用可以根据不同的应用场景有所不同,但通常可以归纳为以下几点:

    主进程的作用

    1. 系统资源管理:

      • 主进程负责管理系统的物理硬件资源,如处理器、内存、硬盘等。

      • 它进行资源的分配和调度,以确保各个进程能够有序、高效地运行。

    2. 进程管理:

      • 主进程通过创建和终止进程来管理服务器上的各个任务。

      • 它监控各个子进程(包括从属进程)的状态,根据需要分配系统资源。

      • 主进程还控制进程的执行顺序和优先级,以确保系统的稳定性和安全性。

    3. 进程间通信:

      • 主进程负责建立并管理进程间的通信机制,以实现进程之间的数据交换和协作。

      • 常用的进程间通信方式包括共享内存、消息队列、管道等,主进程需要管理这些通信方式的创建、关闭和传输等操作。

    4. 错误处理和日志记录:

      • 主进程负责监测系统的运行情况,及时发现错误和异常情况,并采取相应的措施进行处理。

      • 它还负责记录和保存系统的日志信息,方便故障排查和系统维护。

    5. 接收客户端请求:

      • 在服务器环境中,主进程通常负责监听服务器的网络端口,接收来自客户端的请求。

      • 根据请求的内容和类型,主进程将任务分配给合适的子进程(包括从属进程)处理。

    从属进程的作用

    1. 处理单个请求:

      • 从属进程通常是由主进程创建的,用于处理特定的客户端请求或任务。

      • 例如,在FTP服务器中,从属进程负责处理客户端的文件传输请求。

    2. 并发处理能力:

      • 通过创建多个从属进程,服务器可以同时处理多个客户端请求,提高并发处理能力。

      • 这使得服务器能够更有效地利用系统资源,提供更快速、更可靠的服务。

    3. 任务隔离:

      • 从属进程的运行是独立的,它们之间不会相互干扰。

      • 这有助于确保系统的稳定性和安全性,即使一个从属进程出现问题,也不会影响到其他进程或整个系统的运行。

    4. 资源利用:

      • 从属进程可以根据需要动态地分配和释放资源,以提高资源利用率。

      • 例如,在文件传输过程中,从属进程可以根据文件的大小和传输速度来调整资源的使用情况。

    综上所述,主进程和从属进程在计算机系统中各自承担着不同的角色和责任。主进程负责管理系统资源、进程和进程间通信,以确保服务器的稳定性和高效性运行;而从属进程则负责处理特定的客户端请求或任务,提高并发处理能力和资源利用率。这种分工合作的方式使得计算机系统能够更高效地处理各种任务和服务。

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

    简单文件传送协议(TFTP)与文件传送协议(FTP)之间存在一些关键的区别,这些区别影响了它们的应用场合。以下是它们的主要区别以及各自的应用场景:

    主要区别

    1. 协议基础:

      • TFTP基于UDP(用户数据报协议)实现,而FTP则基于TCP(传输控制协议)实现。这意味着TFTP是无连接的,而FTP是面向连接的。

    2. 传输可靠性:

      • 由于UDP的无连接特性,TFTP的传输速度通常更快,但可靠性较低。它依赖于应用程序自身来处理错误和重传。

      • FTP则使用TCP提供的可靠传输服务,因此传输速度可能较慢,但可靠性更高。

    3. 功能复杂性:

      • TFTP是一种轻量级的文件传输协议,功能相对简单,不支持用户身份验证、目录列表等复杂操作。

      • FTP则提供了更丰富的功能,包括用户身份验证、目录操作、文件权限管理等。

    4. 应用场景:

      • TFTP更适用于传输少量数据或在需要快速传输而不需要复杂安全性的场景中使用,如无盘工作站引导、固件升级等。

      • FTP则更适用于传输大量数据或在需要高度可靠性和安全性的场景中使用,如网站管理、文件共享、数据备份等。

    应用场合

    1. TFTP的应用场合:

      • 无盘工作站引导:加载操作系统到无盘工作站或网络设备。

      • 固件升级:将固件传输到路由器、交换机等网络设备以进行固件更新。

      • 配置文件传输:管理网络设备的配置文件,如传输配置文件到网络设备以进行配置更新。

    2. FTP的应用场合:

      • 网站管理:网站管理员使用FTP上传网页、图片、视频和其他文件到服务器。

      • 文件共享:团队成员之间共享项目文件,如设计图纸、文档等。

      • 数据备份:定期将重要数据从一台计算机传输到另一台计算机或服务器上进行备份。

      • 远程服务器管理:远程访问服务器进行文件更新和维护。

    综上所述,TFTP和FTP在协议基础、传输可靠性、功能复杂性和应用场景等方面存在显著差异。选择哪种协议取决于具体的需求和场景。

  • 远程登录 TELNET 的主要特点是什么?什么叫作虚拟终端NVT?

    远程登录TELNET的主要特点以及虚拟终端NVT的定义如下:

    远程登录 TELNET 的主要特点

    1. 远程访问能力:

      • 用户可以在本地计算机上使用TELNET客户端,通过TCP连接远程登录到另一台计算机(称为远地主机),并使用该远程计算机上的资源和服务。

    2. 透明性:

      • TELNET服务是透明的,用户在使用时感觉就像直接操作远程计算机的键盘和显示器一样。用户的击键被传送到远程主机,远程主机的输出也被返回并显示在用户的屏幕上。

    3. 客户服务器模式:

      • TELNET采用客户服务器模式进行工作。本地计算机运行TELNET客户端进程,而远程主机运行TELNET服务器进程。服务器中的主进程等待新的连接请求,并为每个连接生成从属进程来处理。

    4. 协议灵活性:

      • TELNET协议允许客户和服务器之间协商许多选项,如字符集、响应模式等。这增加了协议的灵活性和适应性。

    5. 跨平台性:

      • TELNET协议可以工作在任何主机(如不同操作系统)或任何终端之间,这使得它成为一种广泛使用的远程访问工具。

    虚拟终端 NVT

    1. 定义:

      • 虚拟终端NVT(Network Virtual Terminal)是TELNET协议规范定义的一种标准键盘格式。它是为了适应异构环境而设计的,用于将不同类型的终端设备转换为标准的ASCII码字节流。

    2. 工作原理:

      • 在发送数据前,客户机软件将来自用户终端的按键和命令序列转换为NVT格式,并发送到服务器。服务器软件将收到的数据和命令从NVT格式转换为远程系统所需的格式。

      • 向用户返回数据时,服务器将远地系统的格式转换为NVT格式,然后本地客户再从NVT格式转换到本地系统所需的格式。

    3. 作用:

      • NVT的作用在于消除了“服务器”和“客户机”需要了解对方机器终端的特点的必要性。通过NVT,不同类型的终端设备可以通过TELNET协议进行通信,而不需要考虑它们之间的差异。

    综上所述,远程登录TELNET具有远程访问能力、透明性、客户服务器模式、协议灵活性和跨平台性等特点。而虚拟终端NVT则是TELNET协议中的一个重要概念,它用于将不同类型的终端设备转换为标准的ASCII码字节流,从而实现了不同终端之间的通信。

  • 解释以下名词。各英文缩写词的原文是什么?

    WWW, URL,HTTP,HTML,CGI 浏览器,超文本,超媒体,超链,页面,活动文档搜索引擎。

    以下是您提到的名词及其对应的英文缩写词的原文解释:

    1. WWW

      • 英文全称:World Wide Web

      • 中文解释:万维网,是一个大规模的、联机式的信息储藏所,也称为Web或全球文件服务器。它基于超文本和HTTP协议,为用户提供便捷的信息获取和交互手段。

    2. URL

      • 英文全称:Uniform Resource Locator

      • 中文解释:统一资源定位符,用于在互联网上定位资源。它是互联网上资源的唯一标识符,通常由协议、域名、端口号、路径等组成。

    3. HTTP

      • 英文全称:Hypertext Transfer Protocol

      • 中文解释:超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是整个Web的数据通信的基础,用于在Web客户程序与Web服务器程序之间进行数据传输。

    4. HTML

      • 英文全称:HyperText Markup Language

      • 中文解释:超文本标记语言,是一种用于创建网页和其他超文本文档的标准语言。它使用标签来描述网页的结构和内容,使网页具有更丰富的展示效果和交互性。

    5. CGI

      • 英文全称有两种解释:

        • Common Gateway Interface:公共网关接口,是一种用于在服务器上执行程序的标准接口。它允许Web服务器与外部程序进行交互,以实现动态内容的生成和传输。

        • Computer-generated imagery:计算机生成图像,这种解释主要用于影视、游戏等领域,通过电脑图形技术来创建或增强图像效果。但在Web技术中,CGI通常指公共网关接口。

      • (注:根据上下文,此处在解释与Web技术相关的名词时,CGI应解释为公共网关接口。)

    6. 浏览器

      • 英文全称:Browser

      • 中文解释:是一种用于查看网页和其他互联网资源的应用程序。它提供了用户与Web服务器进行交互的界面,使用户能够浏览、搜索、下载和上传互联网上的各种资源。

    7. 超文本

      • 英文全称:Hypertext

      • 中文解释:是一种可以包含超链接的文本形式。通过超链接,用户可以方便地跳转到其他文档或页面,从而实现信息的快速获取和浏览。

    8. 超媒体

      • 英文全称:Hypermedia(Hypertext and multimedia)

      • 中文解释:是一种可以包含文本、图片、音频、视频等不同媒体内容的超链接形式。它扩展了超文本的概念,将多种媒体元素整合在一起,为用户提供更丰富的信息展示和交互体验。

    9. 超链

      • 英文全称:Hyperlink

      • 中文解释:是一种用于将不同网页或其他资源连接在一起的链接。通过点击超链,用户可以跳转到其他文档或页面,实现信息的快速导航和获取。

    10. 页面

      • 英文全称:Web page

      • 中文解释:是一个包含文本、图像、音频、视频等元素的网页。它是Web上的基本文档单位,通常由HTML或其他标记语言编写,并通过Web服务器传输给客户端浏览器进行显示。

    11. 活动文档

      • 英文全称:Active document

      • 中文解释:是一种具有交互性和实时性的超文本文档。它允许用户在浏览文档的同时进行交互操作,如填写表单、提交数据等。活动文档通常使用脚本语言(如JavaScript)来实现交互功能。

    12. 搜索引擎

      • 英文全称:Search engine

      • 中文解释:是一种用于在互联网上搜索信息的程序。它使用特定的算法和技术来索引和检索互联网上的信息,并根据用户的查询请求返回相关的结果。搜索引擎是用户获取互联网信息的重要途径之一。

    综上所述,这些名词及其对应的英文缩写词在Web技术和互联网领域具有广泛的应用和重要的意义。

  • 假定一个超链从一个万维网文档链接到另一个万维网文档时,由于万维网文档上出现了差错而使得超链指向一个无效的计算机名字。这时浏览器将向用户报告什么?

    假定一个超链从一个万维网文档链接到另一个万维网文档时,如果由于万维网文档上出现了差错而使得超链指向一个无效的计算机名字,这时浏览器通常会向用户报告“404 Not Found”错误。

    404 Not Found是一种HTTP状态码,表示客户端请求的资源(如网页或文件)在服务器上不存在或无法找到。当用户点击一个指向无效计算机名字的超链时,浏览器会尝试访问该地址,但无法找到对应的资源,因此会返回404 Not Found错误。

    不同的浏览器可能会以不同的方式显示这个错误,但通常都会包含“404”这个数字和“Not Found”这个短语。有些浏览器还会提供一些额外的信息或建议,如检查URL是否正确、尝试返回上一页或搜索相关页面等。

    因此,当用户遇到这种情况时,应该检查超链的URL是否正确,或者尝试通过其他方式找到所需的信息。

  • 假定要从已知的 URL 获得一个万维网文档。若该万维网服务器的I地址开始时并不知道。试问:除HTTP外,还需要什么应用层协议和运输层协议?

    在要从已知的URL获得一个万维网文档,但不知道万维网服务器的IP地址的情况下,除了HTTP协议外,还需要DNS应用层协议以及TCP和UDP运输层协议。以下是详细的解释:

    应用层协议

    1. HTTP(HyperText Transfer Protocol):

      • 这是用于浏览器和服务器之间传输超文本(如HTML文档)的应用层协议。

      • 它规定了请求和响应的格式,使得浏览器能够请求服务器上的资源,并接收服务器返回的资源。

    2. DNS(Domain Name System):

      • DNS用于将域名解析为IP地址。

      • 在浏览器尝试通过HTTP协议访问一个URL时,它首先需要知道该URL对应的服务器的IP地址。由于URL通常包含域名而不是IP地址,因此浏览器需要使用DNS协议将域名解析为IP地址。

    运输层协议

    1. TCP(Transmission Control Protocol):

      • TCP是一种面向连接的、可靠的、基于字节流的运输层协议。

      • 在HTTP协议中,浏览器和服务器之间的数据传输通常是通过TCP连接进行的。TCP确保数据的可靠传输,包括错误检测、数据重传和流量控制等功能。

    2. UDP(User Datagram Protocol):

      • UDP是一种无连接的、不可靠的、基于报文的运输层协议。

      • 虽然HTTP协议本身不使用UDP,但在DNS协议中,UDP常用于将域名解析请求发送到DNS服务器。UDP的无连接特性使得DNS查询可以更快地得到响应,但牺牲了一定的可靠性。然而,由于DNS查询通常较短且对实时性要求较高,因此UDP在这种情况下是一个合适的选择。

    综上所述,要从已知的URL获得一个万维网文档,但不知道万维网服务器的IP地址时,除了HTTP协议外,还需要DNS应用层协议以及TCP和UDP运输层协议。这些协议共同工作,使得浏览器能够解析URL中的域名、建立与服务器的连接,并接收服务器返回的万维网文档。

  • 什么是动态文档?试举出万维网使用动态文档的一些例子。

    动态文档是指文档的内容是在浏览器访问万维网服务器时,才由应用程序动态创建的。当浏览器请求到达时,万维网服务器会运行相应的应用程序,并将控制转移到该应用程序。接着,该应用程序会对浏览器发来的数据进行处理,并输出HTTP格式的文档。万维网服务器将应用程序的输出作为对浏览器的响应。由于每次对浏览器的响应都是临时生成的,因此用户通过动态文档所看到的内容是不断变化的。

    动态文档的主要优点是具有报告当前最新信息的能力。以下是一些万维网使用动态文档的例子:

    1. 股市行情:动态文档可以用来实时报告股市的行情,包括股票的价格、涨跌幅、交易量等信息。这些信息是实时更新的,因此用户通过动态文档可以看到最新的股市动态。

    2. 天气预报:动态文档也可以用来提供实时的天气预报信息,包括温度、湿度、风速、降水概率等。这些信息会根据气象数据实时更新,使得用户能够获取到最新的天气情况。

    3. 民航售票:在民航售票网站上,动态文档可以用来显示航班信息、座位情况、票价等。当用户输入出发地、目的地和日期等信息后,网站会根据这些信息生成符合用户需求的航班表。这个航班表是动态生成的,会根据航班的实际情况(如座位是否售罄)进行更新。

    4. 在线购物:在电子商务网站上,动态文档可以用来显示商品信息、库存情况、价格等。当用户浏览商品时,网站会根据用户的浏览历史和偏好等信息,动态生成符合用户需求的商品推荐列表。

    5. 社交媒体:在社交媒体平台上,动态文档可以用来显示用户的动态、评论、点赞等信息。这些信息是实时更新的,使得用户能够获取到最新的社交信息。

    总的来说,动态文档在万维网上的应用非常广泛,它们能够为用户提供实时、准确的信息,提高用户的浏览体验和满意度。

  • 浏览器同时打开多个 TCP 连接进行浏览的优缺点如何?请说明理由。

    浏览器同时打开多个TCP连接进行浏览的优缺点分析如下:

    优点

    1. 提高下载速度:

      • 浏览器通过同时打开多个TCP连接,可以同时下载多个对象(如文件、图片等)。这种方式可以显著提高网页的加载速度,因为浏览器可以并行处理多个请求,而不是依次处理。

    2. 有效利用服务器资源:

      • 多个TCP连接可以更有效地利用服务器的带宽和计算能力。当服务器接收到多个并行请求时,它可以同时处理这些请求,从而提高了服务器的利用率和响应速度。

    3. 减少TCP空闲状态:

      • 通过同时打开多个TCP连接,浏览器可以减少TCP连接的空闲时间。这是因为当一个连接正在传输数据时,其他连接可以处于准备状态,以便在需要时立即开始传输数据。

    缺点

    1. 资源消耗增加:

      • 同时打开多个TCP连接会消耗更多的系统资源,包括内存、CPU和带宽等。这可能导致浏览器的性能下降,尤其是在资源受限的设备(如智能手机或平板电脑)上。

    2. 网络拥塞风险:

      • 当多个TCP连接同时传输数据时,可能会增加网络拥塞的风险。这可能导致数据传输速度下降,甚至导致连接中断。

    3. 稳定性问题:

      • 同时打开多个TCP连接可能会增加浏览器的崩溃风险。当某个连接出现问题时,可能会影响到其他连接的稳定性。此外,如果浏览器或操作系统的资源管理不当,还可能导致系统死机。

    4. 带宽分配不均:

      • 在多个TCP连接同时传输数据的情况下,带宽的分配可能变得不均匀。这可能导致某些连接的数据传输速度较慢,而其他连接的数据传输速度较快。

    综上所述,浏览器同时打开多个TCP连接进行浏览具有提高下载速度、有效利用服务器资源和减少TCP空闲状态等优点。然而,这种方法也存在资源消耗增加、网络拥塞风险、稳定性问题和带宽分配不均等缺点。因此,在实际应用中,需要根据具体情况权衡利弊,选择合适的TCP连接策略。

  • 请判断以下论述的正误,并简述理由。

    (1)用户点击某网页,该网页有1个文本文件和3张图片。此用户可以发送一个请求就可以收到4个响应报文。

    判断:错误

    理由:当用户点击一个包含1个文本文件和3张图片的网页时,由于HTTP的无状态性和每个资源(文本文件、图片等)都是独立寻址的,因此浏览器需要对每个资源分别发送一个HTTP请求。所以,用户需要发送4个请求(1个文本文件和3张图片各1个),并会相应地收到4个响应报文。

    (2)有以下两个不同的网页:www.abe.com/m1.htmlwww.abc.comvm2.html。用户可以使用同一个HTTP/1.1持续连接传送对这两个网页的请求和响应。

    判断:错误

    理由:HTTP/1.1持续连接(也称为持久连接或长连接)允许在同一个TCP连接上发送和接收多个HTTP请求和响应。然而,这种持续连接通常仅限于同一个域(或主机)内的请求。对于www.abe.comwww.abc.com这两个不同的域,浏览器通常会建立两个不同的TCP连接,分别用于这两个域的请求和响应。因此,不能使用同一个HTTP/1.1持续连接来传送对这两个不同网页的请求和响应。

    (3)在客户与服务器之间进行非持续连接,只需要用一个TCP报文段就能够装入两个不同的 HTTP 请求报文。

    判断:错误

    理由:在非持续连接中,每次发送一个HTTP请求和接收一个HTTP响应后,TCP连接都会关闭。这意味着每个HTTP请求和响应都需要一个独立的TCP连接(或至少一个独立的TCP报文段序列,考虑到TCP连接的建立和关闭过程)。因此,两个不同的HTTP请求报文通常不能装入同一个TCP报文段中,而是需要分别使用不同的TCP连接(或报文段序列)进行传输。

    (4)在HTTP响应报文中的主体实体部分永远不会是空的。

    理由:HTTP响应报文中的主体实体部分可以包含服务器返回给客户端的数据(如HTML文档、图片等)。然而,在某些情况下,如对于某些HTTP状态码(如204 No Content),响应报文中不包含主体实体部分,即主体部分是空的。此外,对于某些HEAD请求的响应,虽然状态行和头部字段会包含有用的信息,但主体实体部分也通常是空的,因为HEAD请求的目的是获取头部信息而不是实际的内容。

  • 在浏览器中应当有几个可选解释程序。试给出一些可选解释程序的名称。

    在浏览器中,解释程序的数量并没有明确的规定,但通常会包含一些基本的和可选的解释程序。这些解释程序用于处理和解析不同类型的文档和内容,以便在浏览器中正确显示。

    基本解释程序

    • HTML解释程序:这是浏览器中最基本的解释程序,用于解析和显示HTML文档。HTML是万维网的基础语言,用于创建网页的结构和内容。

    可选解释程序

    除了HTML解释程序外,浏览器还可以包含以下一些可选的解释程序:

    • Java解释程序:用于运行Java小程序(Applet),这些小程序可以嵌入在HTML页面中。然而,需要注意的是,随着Web技术的发展,Java小程序在现代Web应用中的使用已经逐渐减少。

    • JavaScript解释程序:这是现代浏览器中非常重要的一个解释程序,用于执行嵌入在HTML页面中的JavaScript代码。JavaScript用于实现网页的动态效果和交互性。

    • CSS解释程序:用于解析和应用CSS样式表,CSS用于控制网页的布局和样式。虽然CSS本身不是一种编程语言,但浏览器需要一种机制来解析和应用CSS规则。

    • 图像解释程序:用于解析和显示图像文件,如JPEG、PNG和GIF等。这些图像文件通常嵌入在HTML页面中,用于提供视觉内容。

    • 视频和音频解释程序:用于解析和播放嵌入在网页中的视频和音频文件,如MP4、WebM和MP3等格式。

    此外,还有一些其他的可选解释程序,如用于解析XML文档的XML解释程序、用于处理PDF文件的PDF解释程序等。这些解释程序的存在使得浏览器能够处理和解析更多种类的文档和内容。

    总的来说,浏览器中的解释程序数量取决于其设计目标和功能需求。随着Web技术的不断发展,新的解释程序可能会被引入以支持新的文档类型和内容格式。

  • 搜索引擎可分为哪两种类型?各有什么特点?

    搜索引擎主要可以分为通用搜索引擎(综合搜索引擎)和垂直搜索引擎(专业搜索引擎)两种类型。以下是它们各自的特点:

    通用搜索引擎(综合搜索引擎)

    1. 信息覆盖广泛:通用搜索引擎旨在索引和检索互联网上的大量信息,包括网页、图片、视频、新闻等,以满足用户的多样化需求。

    2. 用户群体广泛:由于信息覆盖广泛,通用搜索引擎适用于各种用户群体,无论是普通网民还是专业人士,都可以从中找到所需的信息。

    3. 技术复杂:通用搜索引擎需要处理海量的数据和复杂的算法,以确保检索结果的准确性和相关性。这包括网络爬虫技术、中文分词技术、大数据处理技术等。

    4. 检索方式多样:通用搜索引擎通常提供多种检索方式,如关键词检索、高级检索、图片检索等,以满足用户的不同需求。

    垂直搜索引擎(专业搜索引擎)

    1. 信息覆盖特定领域:垂直搜索引擎专注于某一特定领域或行业的信息检索,如学术、购物、旅游、音乐等。这使得它们能够提供更加专业和深入的信息。

    2. 检索结果精准:由于垂直搜索引擎专注于特定领域,它们通常能够提供更精准的检索结果。这有助于用户更快地找到所需的信息,提高检索效率。

    3. 用户群体特定:垂直搜索引擎的用户群体通常是对某一领域感兴趣或从事该领域工作的专业人士。这使得它们能够提供更加符合用户需求的信息和服务。

    4. 技术特点:垂直搜索引擎在处理特定领域的信息时,通常会采用更加专业的技术和算法。例如,学术搜索引擎可能会采用引文分析、学术评价等技术来评估文献的质量和相关性。

    综上所述,通用搜索引擎和垂直搜索引擎各有其特点和优势。用户可以根据自己的需求和兴趣选择合适的搜索引擎来获取所需的信息。

  • 试述电子邮件的最主要的组成部件。用户代理UA的作用是什么?没有UA行不行?

    电子邮件系统主要由三个核心组成部件构成:用户代理、邮件服务器,以及邮件发送协议(如SMTP)和邮件读取协议(如POP3)。这些组件共同协作,确保电子邮件的有效发送和接收。

    用户代理(UA)

    用户代理(User Agent,简称UA)是电子邮件系统中的关键组件,它充当了用户与电子邮件系统之间的接口。在大多数情况下,用户代理就是运行在用户个人电脑(PC)中的一个程序,因此也被称为电子邮件客户端软件。

    用户代理的主要作用包括:

    1. 撰写:为用户提供编辑信件的环境,使用户能够方便地创建和编辑电子邮件。

    2. 显示:在计算机屏幕上清晰、直观地显示来信和已发送的邮件,方便用户查看和管理。

    3. 处理:包括发送邮件和接收邮件的功能。用户可以通过用户代理将邮件发送到指定的收件人,并从邮件服务器接收来自其他用户的邮件。

    4. 通信:在撰写完邮件后,用户代理利用邮件发送协议(如SMTP)将邮件发送到用户所使用的邮件服务器。同时,在接收邮件时,用户代理使用邮件读取协议(如POP3或IMAP)从本地邮件服务器接收邮件。

    没有UA的可行性

    没有用户代理,电子邮件系统的使用将变得极为不便。这是因为用户将无法直接通过友好的界面来发送和接收邮件。具体来说:

    1. 缺乏友好的界面:没有用户代理,用户将需要直接编写邮件的源代码,并通过命令行或其他非直观的方式与邮件服务器进行通信。这显然对大多数用户来说是不切实际的。

    2. 编程要求:如果用户不具备编程能力,他们将无法有效地使用电子邮件系统。即使具备编程能力,用户也需要花费大量的时间和精力来编写和维护与邮件服务器通信的代码。

    3. 效率低下:没有用户代理的电子邮件系统将极大地降低用户的工作效率。用户需要花费更多的时间和精力来处理邮件的发送和接收,而不是专注于他们的工作或学习任务。

    因此,用户代理对于电子邮件用户来说是必不可少的。它为用户提供了一个友好、直观且高效的界面来发送和接收邮件,从而极大地提高了电子邮件系统的可用性和用户体验。

  • 电子邮件的信封和内容在邮件的传送过程中起什么作用?和用户的关系如何?

    电子邮件的信封和内容在邮件的传送过程中起着至关重要的作用,它们各自承担着不同的职责,并与用户有着密切的关系。

    信封的作用

    1. 传递信息:电子邮件的信封主要包含了邮件的传输信息,如收件人的地址、发件人的地址等。这些信息确保了邮件能够准确地从发件人的邮件服务器传递到收件人的邮件服务器。

    2. 保护内容:信封在邮件的传输过程中起到了保护邮件内容的作用。邮件内容在传输过程中是不暴露出来的,信封就像是一个包裹,将邮件内容安全地封装起来,防止在传输过程中被非法用户拦截或篡改。

    内容的作用

    1. 信息载体:邮件内容是用户希望传递给收件人的具体信息,它可以是文本、图片、音频、视频等多种形式。邮件内容承载着用户想要表达的信息,是电子邮件的核心部分。

    2. 与用户互动:邮件内容是与用户直接互动的部分。用户通过邮件内容来传达信息、表达观点、分享资源等,而收件人则通过阅读邮件内容来获取这些信息并与发件人进行互动。

    与用户的关系

    1. 用户撰写和阅读邮件内容:用户在撰写电子邮件时,会关注邮件内容的编写,确保信息的准确性和完整性。同时,在接收邮件时,用户也会仔细阅读邮件内容,以获取发件人想要传达的信息。

    2. 用户关心邮件的准确传递:虽然用户通常不会直接关注信封的编写,但他们非常关心邮件是否能够准确、安全地传递到收件人手中。信封上的信息确保了邮件的准确传递,因此间接地影响着用户的邮件使用体验。

    3. 用户需要保护邮件内容的安全:随着网络安全问题的日益严峻,用户越来越关注邮件内容的安全问题。他们希望邮件内容在传输过程中能够得到充分的保护,防止被非法用户拦截或篡改。因此,一些用户会选择使用加密邮件等安全措施来保护邮件内容的安全。

    综上所述,电子邮件的信封和内容在邮件的传送过程中各自承担着不同的职责,它们共同确保了邮件的准确传递和内容的安全。同时,它们也与用户有着密切的关系,影响着用户的邮件使用体验和信息传递效率。

  • 电子邮件的地址格式是怎样的?请说明各部分的意思。

    电子邮件的地址格式通常由用户名、@符号、域名(可能包括子域名)和顶级域名组成。下面是对各部分意思的详细说明:

    1. 用户名:

      • 用户名是电子邮件地址中的第一部分,位于@符号之前。

      • 它可以是字母、数字、下划线、点号等字符的组合,但应避免使用特殊字符(如!、@、#、$、%等)和空格,以免造成识别困难。

      • 用户名通常由6~20个字符组成,可以自定义,但应简洁明了,便于他人记忆和拼写。

      • 例如,在电子邮件地址[email protected]中,“johndoe”就是用户名。

    2. @符号:

      • @符号用于分隔用户名和域名,是电子邮件地址中必不可少的部分。

      • 它表示电子邮件地址的主体部分,即用户名和域名的结合。

    3. 域名:

      • 域名是电子邮件地址的后缀部分,位于@符号之后。

      • 它通常由多个字母和数字组成,可能包括子域名,用于表示邮件发送者的机构、公司或网站。

      • 例如,在电子邮件地址[email protected]中,“example.com”就是域名。

    4. 顶级域名:

      • 顶级域名(TLD)是域名的最外层部分,位于域名的最后。

      • 它用于进一步细分域名类别,便于用户识别和记忆。

      • 常见的顶级域名包括.com、.cn、.org、.net等。

      • 例如,在电子邮件地址[email protected]中,“.com”就是顶级域名。

    此外,在电子邮件地址中还有一些需要注意的规范:

    • 电子邮件地址中的字母应区分大小写。例如,[email protected][email protected]被认为是两个不同的地址。

    • 在设置电子邮件地址时,应避免使用相同或过于简单的地址,以免给人留下不专业的印象。

    • 企业或组织可以考虑使用公司域名下的子域名作为员工的电子邮件地址,以增强组织形象并方便管理。

    总的来说,电子邮件地址的格式规范有助于确保邮件的准确传递和接收,同时也体现了用户的个人或企业形象。因此,在编写和设置电子邮件地址时,应遵循上述格式规范和建议。

  • 试简述 SMTP 通信的三个阶段的过程。

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP通信的过程可以分为以下三个阶段:

    一、连接建立

    1. 当发件人的邮件送到发送方邮件服务器的邮件缓存后,SMTP客户(即负责发送邮件的SMTP进程)会每隔一定时间(如30分钟)对邮件缓存扫描一次。

    2. 如发现有邮件需要发送,SMTP客户会使用SMTP的熟知端口号码(25)与接收方邮件服务器的SMTP服务器建立TCP连接。

    3. 一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。

    二、邮件传送

    1. 邮件的传送从MAIL命令开始。MAIL命令后面会附上发件人的地址。

    2. 接着是一个或多个RCPT命令,取决于是否将同一个邮件发送给一个或多个收件人。RCPT命令的作用是确认接收方系统是否已做好接收邮件的准备,以避免浪费通信资源。

    3. 然后是DATA命令,表示要开始传送邮件的内容。此时,SMTP客户会将邮件的源地址、目的地址和邮件的具体内容传递给SMTP服务器。

    4. SMTP服务器会进行相应的响应并接收邮件。

    三、连接释放

    1. 邮件发送完毕后,SMTP客户会发送QUIT命令来请求释放TCP连接。

    2. SMTP服务器如同意释放连接,会返回相应的信息(如“221”),表示同意释放TCP连接。

    3. 此时,邮件传送的全部过程即结束。

    总的来说,SMTP通信的这三个阶段确保了邮件能够准确、有效地从发送方传输到接收方。

  • 试述邮局协议POP的工作过程。在电子邮件中,为什么需要使用POP和SMTP这两个协议?IMAP与POP有何区别?

    邮局协议POP的工作过程

    POP(Post Office Protocol)是一种用于从远程服务器下载电子邮件的协议。POP协议的工作流程大致如下:

    1. 邮件客户端(如Outlook、Thunderbird等)向邮件服务器发送连接请求。

    2. 服务器验证客户端的身份和权限。

    3. 验证通过后,服务器开始发送邮件列表给客户端。

    4. 客户端选择需要下载的邮件。

    5. 客户端发送下载请求给服务器。

    6. 服务器将选择的邮件发送给客户端。

    7. 客户端可以查看、管理和处理下载的邮件。

    POP协议支持“离线”邮件处理,即用户可以在不连接网络的情况下阅读和管理已经下载到本地计算机的邮件。此外,POP协议还允许用户通过删除邮件、标记为已读或未读、移动邮件到其他文件夹等操作来管理邮件。

    在电子邮件中使用POP和SMTP协议的原因

    在电子邮件系统中,SMTP协议和POP协议是两个必不可少的组成部分。它们各自承担着不同的职责,共同确保了电子邮件的顺利发送和接收。

    1. SMTP协议:SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则。SMTP协议主要用于发送邮件,它将邮件从发送方的邮件服务器传输到接收方的邮件服务器。通过使用SMTP协议,用户可以确保邮件能够准确地发送到指定的收件人手中。

    2. POP协议:如前所述,POP协议主要用于接收邮件。它允许用户通过邮件客户端应用程序从邮件服务器上获取邮件,并可以将邮件下载到本地计算机进行查看和管理。POP协议的出现使得用户可以在不连接网络的情况下阅读和管理邮件,提高了邮件处理的灵活性和便捷性。

    IMAP与POP的区别

    IMAP(Internet Mail Access Protocol)即互联网邮件访问协议,它与POP都是用于接收电子邮件的协议,但两者之间存在一些显著的区别:

    1. 邮件存储位置:IMAP协议下,邮件保存在服务器上,用户可以从多个设备访问同一份邮件。而POP协议下,邮件通常下载到本地设备,然后从服务器删除。因此,使用IMAP协议的用户可以在不同设备上同步查看和管理邮件,而使用POP协议的用户则需要在每个设备上分别管理邮件。

    2. 同步性:IMAP协议支持邮件状态的同步更新,即用户在一个设备上对邮件进行的操作(如删除、标记为已读等)会同步反映到其他设备上。而POP协议则不支持这种同步功能,每个设备上的邮件状态都是独立的。

    3. 网络连接:IMAP协议需要持续的网络连接来访问邮件,因为邮件是保存在服务器上的。而POP协议则只需在下载邮件时连接网络,下载完成后即可离线查看邮件。

    4. 服务器空间:由于IMAP协议下邮件保存在服务器上,因此需要更多的服务器存储空间。而POP协议下邮件下载到本地后从服务器删除,因此服务器存储需求较少。

    5. 适用场景:IMAP协议适合多设备用户和需要随时访问所有邮件的人。而POP协议则更适合主要在单一设备上查看邮件的用户。

    综上所述,SMTP协议、POP协议和IMAP协议在电子邮件系统中各自扮演着重要的角色。SMTP协议负责邮件的发送,POP协议和IMAP协议则负责邮件的接收和管理。用户可以根据自己的需求和场景选择合适的协议来确保邮件的顺利发送和接收。

  • MIME与SMTP的关系是怎样的?什么是 quoted-printable 编码和 base64 编码?

    MIME与SMTP的关系,以及quoted-printable编码和base64编码的详细解释如下:

    MIME与SMTP的关系

    1. SMTP的局限性

      • SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,主要用于电子邮件的传输。

      • 原始的SMTP协议只能传输ASCII文件(即纯文本邮件),无法传输包含多媒体数据(如图片、音频、视频等)的电子邮件。

    2. MIME的引入

      • MIME(Multipurpose Internet Mail Extensions)即多用途互联网邮件扩展,它是对SMTP协议的一个扩展,用于支持非ASCII数据的传输。

      • MIME并没有取代或改变SMTP协议,而是定义了新的报文结构和编码规则,使得邮件可以传送任意二进制文件。

    3. MIME与SMTP的协作

      • 通过MIME,含有多媒体数据的电子邮件可以被编码成一种标准格式,然后利用SMTP协议进行传输。

      • 在接收端,邮件客户端会识别MIME格式,并对邮件内容进行相应的解码处理,以恢复原始的多媒体数据。

    因此,MIME协议可以被视为SMTP协议的补充协议或相伴协议,两者共同协作以实现电子邮件的多样化传输。

    quoted-printable编码

    quoted-printable编码是一种字符编码方案,主要用于将8位数据编码为7位数据,以便在只允许7位数据传输的媒介(如某些电子邮件系统)中安全传输。

    1. 工作原理

      • 该编码方案通过使用可打印的ASCII字符(主要是33到126之间的字符,即排除空格和ASCII控制字符)来表示8位数据。

      • 同时,它引入了一些特定的转义序列来表示不能直接传输的字符。

    2. 应用场景

      • quoted-printable编码在电子邮件传输中尤为常见,因为早期的电子邮件系统通常只支持7位ASCII字符集。

      • 通过这种编码方式,可以确保数据在传输过程中的完整性和兼容性。

    base64编码

    base64编码是网络上最常见的用于传输8Bit字节码的编码方式之一。

    1. 工作原理

      • base64编码使用64个字符(包括小写字母a-z、大写字母A-Z、数字0-9、符号"+"和"/")来表示二进制数据。

      • 它将每三个8Bit的字节转换为四个6Bit的字节(3×8=4×6=24),然后将6Bit再添两位高位0,组成四个8Bit的字节。

      • 因此,转换后的字符串理论上将要比原来的长1/3。

    2. 应用场景

      • base64编码在电子邮件、网页传输等领域有广泛应用。

      • 它可以将二进制数据编码为可打印的ASCII字符,从而方便在文本传输协议中传输。

    综上所述,MIME与SMTP是电子邮件传输中的重要协议,它们共同协作以实现电子邮件的多样化传输。而quoted-printable编码和base64编码则是用于确保数据在传输过程中的完整性和兼容性的重要编码方式。

  • 电子邮件系统需要将人们的电子邮件地址编成目录以便于查找。要建立这种目录应将人名划分为几个标准部分(例如,姓、名)。若要形成一个国际标准,那么必须解决哪些问题?

    在电子邮件系统中,将人们的电子邮件地址编成目录以便于查找是一个实用且常见的需求。为了建立一个国际标准的电子邮件地址目录,并将人名划分为标准部分(如姓、名),需要解决以下几个关键问题:

    一、命名规则的统一

    1. 字符集的选择:

      • 应确定一个国际通用的字符集,以支持不同语言和文化的姓名表示。这包括英文字母、数字以及可能的特殊字符(如点号、下划线等),但需避免使用易混淆的字符(如大写的“I”与小写的“l”、数字“0”与字母“o”等)。

    2. 命名结构的标准化:

      • 对于人名,应明确划分姓和名的界限,并考虑如何处理复姓、双名或带有中间名的情况。

      • 可以参考各国或地区的命名习惯,制定一个包容性的命名结构标准。

    二、数据源的整合与验证

    1. 数据源的多样性:

      • 电子邮件地址目录可能来自多个数据源,包括社交媒体、在线注册信息、企业数据库等。

      • 需要整合这些数据源,并确保数据的准确性和一致性。

    2. 数据验证与清洗:

      • 对收集到的电子邮件地址进行验证,确保它们是有效的、可访问的。

      • 清洗数据中的重复项、无效项和错误项,以提高目录的准确性和可靠性。

    三、隐私保护与合规性

    1. 隐私政策:

      • 制定明确的隐私政策,告知用户其个人信息(包括电子邮件地址)将如何被收集、使用和存储。

      • 确保用户同意并授权其个人信息的使用。

    2. 合规性要求:

      • 遵守各国或地区的法律法规,特别是与数据保护和隐私相关的法律。

      • 确保电子邮件地址目录的建立和使用符合相关合规性要求。

    四、国际化与本地化

    1. 国际化支持:

      • 电子邮件地址目录应支持多种语言和字符集,以适应不同国家和地区的用户需求。

      • 提供多语言界面和搜索功能,方便用户查找和使用。

    2. 本地化定制:

      • 根据不同地区的文化习惯和用户需求,对目录进行本地化定制。

      • 包括命名结构的调整、搜索结果的排序和展示方式等。

    五、技术实现与维护

    1. 技术架构:

      • 设计一个高效、可扩展的技术架构,以支持大规模电子邮件地址目录的存储、检索和更新。

      • 考虑使用分布式存储、索引和搜索技术,以提高目录的访问速度和准确性。

    2. 维护与更新:

      • 定期对目录进行维护和更新,包括数据清理、更新和备份。

      • 监控目录的使用情况和性能,及时优化和调整技术架构。

    综上所述,建立一个国际标准的电子邮件地址目录需要解决命名规则的统一、数据源的整合与验证、隐私保护与合规性、国际化与本地化以及技术实现与维护等多个问题。通过综合考虑这些因素并制定相应的解决方案,可以建立一个高效、准确、可靠的电子邮件地址目录系统。

  • 电子邮件系统使用TCP传送邮件。为什么有时我们会遇到邮件发送失败的情况?为什么有时对方会收不到我们发送的邮件?

    在电子邮件系统中,使用TCP(传输控制协议)传送邮件可以确保数据的可靠传输。然而,有时我们仍然会遇到邮件发送失败或对方收不到邮件的情况。以下是对这些问题的详细分析:

    邮件发送失败的原因

    1. 网络故障:

      • 网络连接不稳定或中断可能导致邮件发送失败。TCP协议虽然能够确保数据的可靠传输,但在网络不稳定的情况下,连接可能会中断,从而导致邮件无法成功发送。

    2. 邮件服务器问题:

      • 发送邮件的邮件服务器可能遇到故障或超负荷运行,导致邮件发送失败。例如,服务器可能由于硬件故障、软件错误或维护而暂时无法处理发送请求。

    3. 认证问题:

      • 如果使用的邮件服务器需要认证,但提供的用户名或密码不正确,邮件发送也会失败。正确的认证信息是建立与邮件服务器连接并成功发送邮件的前提。

    4. 邮件内容问题:

      • 邮件内容可能包含被服务器视为违规或敏感的信息,如垃圾邮件特征、恶意软件等,这可能导致邮件被拦截或拒绝发送。

    5. 地址错误:

      • 如果邮件地址输入错误或不存在,邮件将无法成功发送。邮件系统需要正确的收件人地址来确保邮件能够到达目标服务器。

    对方收不到邮件的原因

    1. 垃圾邮件过滤:

      • 收件方的电子邮件客户端或服务器可能将邮件识别为垃圾邮件并放入垃圾邮件文件夹。这通常是由于邮件内容、发件人地址或邮件主题等特征触发了垃圾邮件过滤规则。

    2. 收件方服务器问题:

      • 收件方的邮件服务器可能出现故障或配置问题,导致无法接收邮件。例如,服务器可能由于硬件故障、软件错误、网络问题或维护而暂时无法处理接收请求。

    3. 电子邮件地址错误:

      • 如果邮件地址输入有误,邮件将无法送达正确的收件人。这可能是由于输入错误、拼写错误或使用了过时的邮件地址。

    4. 邮件被退回:

      • 邮件可能因为各种原因被退回给发件人,如收件人邮箱已满、邮件大小超过限制、邮件格式错误等。

    5. 邮件被拦截:

      • 收件方的防火墙或安全软件可能将邮件拦截并阻止其到达收件人的邮箱。这通常是由于邮件内容或附件包含敏感信息或潜在威胁。

    综上所述,邮件发送失败和对方收不到邮件的原因多种多样,涉及网络、服务器、认证、邮件内容、地址错误等多个方面。为了避免这些问题,建议用户在发送邮件前仔细检查网络连接、邮件服务器状态、认证信息、邮件内容和收件人地址等关键要素,并确保遵守邮件系统的相关规定和限制。同时,也可以尝试使用不同的邮件客户端或服务器进行测试,以排除特定环境或配置导致的问题。

  • 基于万维网的电子邮件系统有什么特点?在传送邮件时使用什么协议?

    基于万维网的电子邮件系统具有以下特点:

    1. 便捷性:用户无论身处何地,只要能上网,打开万维网浏览器后就可以收发电子邮件。这种便捷性使得用户无需依赖特定的电子邮件客户端软件,只要拥有浏览器即可进行邮件操作。

    2. 用户代理的通用性:在基于万维网的电子邮件系统中,邮件系统中的用户代理就是普通的万维网浏览器,如IE浏览器、Chrome浏览器等。这使得用户无需安装额外的邮件客户端软件,降低了使用门槛。

    3. 跨平台性:由于使用浏览器作为用户代理,基于万维网的电子邮件系统可以在不同的操作系统和平台上运行,实现了跨平台的邮件收发功能。

    在传送邮件时,基于万维网的电子邮件系统主要使用以下协议:

    1. HTTP协议:当用户通过浏览器发送邮件时,邮件从用户的浏览器发送到邮件服务器不是使用SMTP协议,而是使用HTTP协议。同样地,当收件人用浏览器从邮件服务器读取邮件时,也是使用HTTP协议,而不是使用POP3或IMAP协议。HTTP协议在这里起到了桥梁的作用,使得用户可以通过浏览器与邮件服务器进行通信。

    2. SMTP协议:虽然用户与邮件服务器之间的通信使用HTTP协议,但邮件在邮件服务器之间的传送仍然使用SMTP协议。SMTP协议是一种可靠的、基于文本的邮件传输协议,它规定了邮件服务器之间如何交换邮件信息。

    综上所述,基于万维网的电子邮件系统以其便捷性、用户代理的通用性和跨平台性等特点而备受用户青睐。在传送邮件时,该系统主要使用HTTP协议和SMTP协议来确保邮件的可靠传输。

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

    DHCP(动态主机配置协议)主要用于以下情况:

    1. 自动分配IP地址:在大型网络中,当有大量新设备需要接入网络时,手动配置每个设备的IP地址会非常繁琐且容易出错。DHCP协议可以自动为这些设备分配IP地址,从而大大简化了网络管理的复杂性。

    2. 动态管理IP地址:在设备频繁连接和断开网络的环境中,如企业网络、校园网络或公共场所的无线网络,IP地址的分配和回收需要高效管理。DHCP协议通过地址租约的机制,允许设备在获得IP地址后,在租约期内使用该地址,并在租约到期后重新请求新的IP地址或续租。这种机制使得网络中的IP地址能够得到有效利用。

    3. 简化网络配置:除了分配IP地址外,DHCP还可以提供其他重要的网络配置参数,如子网掩码、默认网关和DNS服务器地址。这些参数的自动配置进一步简化了设备的网络设置过程。

    当一台计算机第一次运行引导程序时,其ROM(只读存储器)中通常没有存储该主机的IP地址、子网掩码或某台域名服务器的IP地址。这是因为这些网络配置信息通常是在计算机连接到网络后,通过DHCP协议或其他网络配置方法动态获取的。因此,在计算机首次启动时,它需要运行DHCP协议或其他相关协议来从网络中的DHCP服务器或其他配置服务器获取这些必要的网络配置信息。

    总的来说,DHCP协议在需要自动分配和管理IP地址以及简化网络配置的环境中非常有用。它极大地提高了网络管理的效率和灵活性,降低了网络配置的复杂性。

  • 什么是网络管理?为什么说网络管理是当今网络领域中的热门课题?

    网络管理是指对网络上的硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,从而以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理常简称为网管。

    网络管理成为当今网络领域中的热门课题,主要基于以下几个原因:

    1. 网络规模的扩大:随着互联网的快速发展,网络规模不断扩大,网络结构也日益复杂。传统的依靠人工管理网络的方式已经无法满足现代网络的需求,因此网络管理成为了一个必不可少的课题。

    2. 网络故障处理的及时性:网络管理的一个重要功能是故障管理,包括故障检测、隔离和纠正。当网络出现故障时,网络管理系统能够迅速发现并处理故障,确保网络的正常运行。这对于保证网络的稳定性和可靠性至关重要。

    3. 网络资源的有效利用:网络管理通过对网络资源的监视、配置和控制,可以确保网络资源得到更加有效的利用。这不仅可以提高网络的性能,还可以降低网络成本,为企业和个人带来更多的效益。

    4. 网络安全性的保障:随着网络攻击和威胁的不断增多,网络安全问题日益突出。网络管理可以通过安全管理功能,对网络进行实时监控和防护,确保网络的安全性。

    5. 网络服务的优化:网络管理还可以对网络服务进行优化,提高网络的服务质量和用户体验。例如,通过性能管理功能,网络管理系统可以实时监测网络的性能指标,并根据需要进行调整和优化。

    综上所述,网络管理在当今网络领域中具有非常重要的地位和作用。随着网络技术的不断发展和网络规模的持续扩大,网络管理将成为一个越来越重要的课题。

  • 解释下列术语:网络元素、被管对象、管理进程、代理进程。

    以下是网络管理相关术语的解释:

    网络元素

    网络元素也被称为被管设备。它是网络中的基础组成部分,可以包括各种硬件设备,如路由器、交换机、服务器等,以及相关的软件组件。这些设备共同构成了网络的物理和逻辑基础,支持着网络中的数据传输和通信。

    被管对象

    被管对象是指在网络元素中需要被管理和监控的实体。这些实体可以是网络元素中的某个硬件组件,例如网络接口卡(NIC),也可以是某些硬件或软件的配置参数的集合,例如路由选择协议的配置参数。被管对象是网络管理中的重要概念,因为它们代表了网络中需要被监控、配置和优化的具体对象。

    管理进程

    管理进程是运行在管理站上的程序,它负责执行网络管理的各项任务。管理站通常是一个高性能的工作站,由网络管理员直接操作和控制。管理进程通过与被管对象进行通信,收集网络的状态信息,执行配置命令,以及进行故障检测和处理。它是网络管理系统的核心部分,负责协调和控制整个网络的管理活动。

    代理进程

    代理进程是运行在每个被管设备上的程序,它负责与管理站中的管理进程进行通信。代理进程可以接收来自管理进程的查询和配置命令,并将这些命令转换为被管设备可以理解的格式,然后执行相应的操作。同时,代理进程还可以将被管设备的状态信息和事件报告给管理进程,以便网络管理员能够及时了解网络的运行状况。代理进程的存在使得管理进程能够与被管设备进行远程通信和管理,从而提高了网络管理的效率和灵活性。

    综上所述,网络元素、被管对象、管理进程和代理进程是网络管理中的关键术语,它们共同构成了网络管理系统的基本框架和运行机制。

  • SNMP 使用 UDP 传送报文。为什么不使用TCP?

    SNMP(简单网络管理协议)选择使用UDP(用户数据报协议)而不是TCP(传输控制协议)来传送报文,主要基于以下几个原因:

    1. 提高传输效率:

      • UDP是一种无连接的协议,不需要像TCP那样建立连接、维护状态和确认数据包的接收。这减少了网络开销和延迟,使得SNMP能够更快速地传输数据。

    2. 降低网络负载:

      • SNMP的报文通常是短小的,而且是在MIB(管理信息库)中具有层次结构的。因此,可以通过多个小的UDP数据包来传输整个报文,而不需要TCP那样的面向字节流的传输方式。这降低了网络上的带宽占用,减少了网络负载。

    3. 适应SNMP的通信机制:

      • SNMP的通信机制是基于简单的请求/响应模型,其中客户端向服务器发送一个请求,服务器立即响应该请求。UDP协议的开销比TCP协议小,能够更快地传输数据,更好地满足SNMP对实时性的要求。

    4. 局域网内通信的可靠性:

      • SNMP通常是在局域网内进行通信,网络传输质量较好。因此,UDP协议的不可靠性(不保证报文的可靠性和顺序性)在这个场景下对SNMP的应用影响较小。而且,SNMP本身具有重试机制,可以处理一些丢失或错误的数据。

    综上所述,SNMP选择使用UDP传送报文是为了提高传输效率、降低网络负载、适应其通信机制以及在局域网内提供足够的可靠性。这些特点使得UDP成为SNMP传输报文的一个合适选择。

  • 为什么SNMP的管理进程使用探询掌握全网状态属于正常情况,而代理进程用陷阱向管理进程报告属于较少发生的异常情况?

    SNMP(简单网络管理协议)的管理进程使用探询(Poll)掌握全网状态属于正常情况,而代理进程用陷阱(Trap)向管理进程报告属于较少发生的异常情况,这主要基于SNMP的设计理念和网络管理的实际需求。

    管理进程使用探询掌握全网状态

    1. 主动管理:

      • 管理进程通过定期或按需向代理进程发送请求(如GetRequest、GetNextRequest等),主动获取网络设备的状态信息。这种方式可以确保管理进程能够及时了解网络设备的最新状态。

    2. 全面监控:

      • 探询机制允许管理进程对网络中的每个设备进行逐一查询,从而获取全面的网络状态信息。这有助于管理进程对网络进行整体监控和管理。

    3. 可靠性:

      • 由于SNMP使用UDP协议进行通信,而UDP协议不保证可靠交付,因此管理进程通过探询机制可以确保数据的准确性和完整性。如果代理进程没有响应或响应不正确,管理进程可以重新发送请求或采取其他措施。

    代理进程用陷阱向管理进程报告异常情况

    1. 异步通知:

      • 当网络设备发生异常情况或状态改变时(如设备重新启动、接口故障等),代理进程会主动向管理进程发送陷阱报文(Trap)。这种方式允许代理进程在不需要管理进程请求的情况下,异步地通知管理进程有关设备状态的重大变化。

    2. 减少网络流量:

      • 陷阱报文通常只在设备状态发生重大变化时发送,因此相对于管理进程的探询请求来说,陷阱报文的数量较少。这有助于减少网络流量和降低网络负载。

    3. 紧急响应:

      • 陷阱机制允许管理进程在设备发生故障或异常情况时立即获得通知,从而能够迅速采取措施进行故障排查和恢复。这对于确保网络的稳定性和可靠性至关重要。

    综上所述,SNMP的管理进程使用探询机制来掌握全网状态属于正常情况,这有助于实现全面监控和主动管理;而代理进程使用陷阱机制向管理进程报告异常情况,则有助于在设备发生故障或异常时及时通知管理进程进行紧急响应。这两种机制共同构成了SNMP网络管理协议的核心部分,为网络管理员提供了有效的网络管理手段。

  • SNMP使用哪几种操作?SNMP在Get报文中设置了请求标识符字段,为什么?

    SNMP(简单网络管理协议)定义了多种操作,以下是SNMP使用的几种主要操作:

    1. GetRequest(get-request)操作:主要用于从代理进程处提取一个或多个参数值。SNMP管理站使用GetRequest消息从拥有SNMP代理的网络设备中检索信息。

    2. GetNextRequest(get-next-request)操作:用于从代理进程处提取一个或多个参数的下一个参数值。GetNextRequest操作通常与GetRequest操作组合使用,以查询特定的表对象中的列元素。

    3. GetResponse(get-response)操作:由代理进程发出,用于返回一个或多个参数值,作为对GetRequest或GetNextRequest操作的响应。

    4. SetRequest(set-request)操作:用于设置代理进程的一个或多个参数值。SNMP管理站使用SetRequest可以对网络设备进行远程配置,包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等。

    5. Trap操作:由代理进程主动发出的报文,用于通知管理进程有某些事情发生。SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生,如设备故障或状态变化。

    此外,根据SNMP版本的不同,还可能包括其他操作,如SNMPv2中新增的GetBulkRequest操作,以及SNMPv3中引入的Inform操作(用于管理者之间的通信)。

    关于SNMP在Get报文中设置请求标识符字段的原因,主要是出于以下考虑:

    • 区分不同请求:在网络环境中,管理进程可能会同时向多个代理进程发送Get请求。由于网络传输的不确定性,这些请求的响应可能会以不同的顺序到达管理进程。通过在Get报文中设置请求标识符字段,管理进程可以区分不同的响应报文对应于哪一个请求报文,从而正确地处理这些响应。

    • 确保数据准确性:请求标识符字段还可以帮助管理进程确保数据的准确性。如果管理进程在一段时间内没有收到某个请求的响应,它可以根据请求标识符重新发送请求或采取其他措施。这有助于提高网络管理的可靠性和稳定性。

    综上所述,SNMP通过定义多种操作来实现对网络设备的全面管理和监控,并在Get报文中设置请求标识符字段来确保不同请求的响应能够被正确区分和处理。

  • 什么是管理信息库 MIB?为什么要使用 MIB?

    管理信息库(MIB,Management Information Base)是网络管理领域中的一个核心概念。以下是对MIB的详细解释以及使用MIB的原因:

    一、管理信息库(MIB)的定义

    MIB定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义。简单来说,管理系统可访问的受管设备的控制和状态信息等数据变量都保存在MIB中。这些信息包括但不限于设备的配置、性能参数、故障状态等。MIB使得网络管理员能够通过标准化的手段来查询和设置网络设备的各种属性,从而实现对网络的全面监控和管理。

    二、使用MIB的原因

    1. 标准化管理

      • MIB为网络设备的管理提供了一个标准化的数据结构,使得不同厂商的设备可以通过统一的方式进行管理。

      • 网络管理员无需了解每种设备的特定管理接口或命令,只需通过MIB即可访问和管理这些设备。

    2. 提高管理效率

      • MIB允许网络管理员通过统一的接口查询和设置网络设备的状态和信息,从而提高了管理效率。

      • 管理员可以快速地获取设备的状态信息,及时发现和解决潜在问题。

    3. 扩展性和兼容性

      • MIB的通用化格式支持对每一个新的被管理设备定义其特定的MIB组,因此厂家可以采用标准的方法定义其专用的管理对象。

      • 这使得MIB能够管理许多新协议和设备,具有很好的扩展性。

      • 同时,由于MIB与具体的网络管理协议(如SNMP)无关,因此具有很好的兼容性。

    4. 支持复杂网络管理

      • MIB能够存储和管理网络设备的大量信息,包括设备的类型、状态、功能、网络拓扑结构等。

      • 这使得MIB能够支持复杂的网络管理任务,如故障管理、性能管理、配置管理和安全管理等。

    5. 促进网络管理协议的发展

      • MIB作为网络管理协议(如SNMP)的重要组成部分,推动了网络管理协议的发展和完善。

      • 通过MIB,网络管理协议能够更好地适应不同设备和网络环境的需求。

    综上所述,MIB在网络管理中起着至关重要的作用。它提供了一种标准化的数据结构来存储和管理网络设备的信息,使得网络管理员能够高效地查询和设置设备的属性,实现对网络的全面监控和管理。同时,MIB还具有很好的扩展性和兼容性,能够支持新协议和设备的管理需求。

  • 什么是管理信息结构SMI?它的作用是什么?

    管理信息结构(SMI,Structure of Management Information)是简单网络管理协议(SNMP)的一个重要组成部分。它是一种语言或规则集,旨在确保网络管理数据的语法和语义明确且无二义性。以下是对SMI的详细解释及其作用:

    一、SMI的定义

    SMI定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则。它是定义被管理网络实体中特定数据的语言,规定了被管对象应怎样命名、用来存储被管对象的数据类型有哪些种、在网络上传送的管理数据应如何编码等。

    二、SMI的作用

    1. 确保数据的一致性和准确性

      • SMI通过定义统一的命名规则和对象类型,确保了网络管理数据的一致性和准确性。这有助于防止因数据格式不一致或命名冲突而导致的错误。

    2. 简化管理操作

      • SMI提供了一种标准化的方式来描述和管理网络设备的信息。这使得网络管理员能够更容易地理解和操作网络设备,降低了管理复杂度。

    3. 支持跨平台管理

      • SMI与具体的网络管理协议(如SNMP)无关,因此具有很好的兼容性。这使得SMI能够支持跨平台管理,即不同厂商的设备可以通过统一的方式进行管理。

    4. 促进网络管理协议的发展

      • SMI作为SNMP的重要组成部分,推动了网络管理协议的发展和完善。通过SMI,网络管理协议能够更好地适应不同设备和网络环境的需求。

    5. 提高网络管理的效率

      • SMI通过定义标准化的数据结构和编码规则,使得网络管理数据能够更高效地传输和处理。这有助于提高网络管理的效率,使得网络管理员能够更快地获取和处理网络设备的状态信息。

    综上所述,SMI在网络管理中起着至关重要的作用。它提供了一种标准化的方式来描述和管理网络设备的信息,确保了数据的一致性和准确性,简化了管理操作,支持跨平台管理,并促进了网络管理协议的发展。

  • 对象tcp的OBJECT IDENTIFIER 是什么?

    对象TCP(Transmission Control Protocol,传输控制协议)的OBJECT IDENTIFIER是{1.3.6.1.2.1.6}

    OBJECT IDENTIFIER,即对象标识符,是一种数据类型,用于指明一种“授权”命名的对象。这里的“授权”意味着这些标识不是随便分配的,而是由一些权威机构进行管理和分配的。对象标识符通常是一个整数序列,以点(.)分隔,这些整数构成一个树型结构,类似于DNS(域名系统)或Unix的文件系统。

    在SNMP(简单网络管理协议)等网络管理协议中,对象标识符用于唯一标识网络中的被管理对象,如TCP连接、网络接口等。通过对象标识符,网络管理系统可以查询和设置这些对象的属性,从而实现对网络的全面监控和管理。

    因此,对象TCP的OBJECT IDENTIFIER {1.3.6.1.2.1.6}在网络管理中具有重要的作用,它使得网络管理系统能够准确地识别和管理TCP相关的对象和属性。

  • 什么是应用编程接口AP?它是应用程序和谁的接口?

    应用编程接口(AP,但更常见的称呼是API,即Application Programming Interface)是一组预定义的函数或者协议,主要用于构建和集成软件应用。以下是对应用编程接口AP(API)的详细解释:

    一、API的定义

    API,即应用程序编程接口,可以看作是一组规则和定义,它允许不同的软件应用程序之间进行通信和交互。这些规则和定义涵盖了数据格式、传输协议、请求和响应的格式等,使得应用程序能够理解和处理来自其他应用程序的数据和请求。

    二、API的作用

    1. 简化编程:API提供了一套标准的编程构建块,开发者可以使用这些构建块来实现特定的功能,而不必从头创建。这大大简化了编程过程,提高了开发效率。

    2. 数据共享:通过API,不同的软件系统可以交换数据和功能,增强了不同平台和服务之间的互操作性。这使得数据在不同应用程序之间的共享变得更为容易和高效。

    3. 功能扩展:API允许开发者在现有应用程序的基础上添加新的功能和服务,而无需对原有代码进行大规模修改。这有助于实现功能的快速迭代和升级。

    三、API是应用程序和谁的接口

    从程序设计的角度看,API可以看作是应用程序和操作系统之间的接口。应用进程通过调用API中的函数或协议,可以与操作系统进行交互,获取操作系统的服务。此外,API也可以看作是应用程序之间的接口,通过API,不同的应用程序可以进行数据交换和通信。

    在现代软件开发中,API的使用非常广泛。例如,在Web开发中,开发者可以通过调用第三方API(如社交媒体API、地图API等)来集成和使用这些服务。这些API通常提供了丰富的功能和数据,使得开发者能够快速构建出功能强大的应用程序。

    综上所述,应用编程接口AP(API)是一种用于构建和集成软件应用的强大工具。它简化了编程过程,提高了开发效率,并促进了不同平台和服务之间的互操作性。从程序设计的角度看,API是应用程序和操作系统之间以及应用程序之间的接口。

  • 试举出常用的几种系统调用的名称,说明它们的用途。

    系统调用是操作系统提供给用户程序调用的一组功能接口,它允许用户程序请求操作系统执行一些特定的操作或服务。以下是常用的几种系统调用及其用途:

    1. open()

      • 用途:打开文件或设备。

      • 说明:通过指定文件名或设备路径以及访问模式(如只读、只写、读写等),系统调用open()可以打开相应的文件或设备,并返回一个文件描述符,用于后续的文件操作。

    2. close()

      • 用途:关闭文件描述符。

      • 说明:使用close()系统调用可以关闭之前通过open()打开的文件或设备,并释放相关资源。

    3. read()

      • 用途:从文件或设备读取数据。

      • 说明:通过指定文件描述符、缓冲区以及读取的字节数,read()系统调用可以从文件或设备中读取数据,并将其存储在提供的缓冲区中。

    4. write()

      • 用途:向文件或设备写入数据。

      • 说明:write()系统调用允许用户程序将缓冲区中的数据写入到指定的文件或设备中。

    5. lseek()

      • 用途:重新定位文件读写指针。

      • 说明:lseek()系统调用可以移动文件描述符的读写指针到文件的指定位置,从而实现对文件的随机访问。

    6. bind()

      • 用途:绑定套接字到本地地址。

      • 说明:在网络编程中,bind()系统调用用于将套接字(socket)绑定到指定的本地地址(包括IP地址和端口号),以便服务器可以接受来自客户端的连接请求。

    7. listen()

      • 用途:监听连接请求。

      • 说明:listen()系统调用将套接字设置为被动模式,以便它可以接受来自客户端的连接请求。

    8. accept()

      • 用途:接受连接请求。

      • 说明:在服务器程序中,accept()系统调用用于从已完成连接队列中提取一个连接请求,并创建一个新的套接字与该连接相关联。

    9. connect()

      • 用途:连接到远程主机。

      • 说明:在客户端程序中,connect()系统调用用于发起与远程主机的连接请求,并等待连接建立。

    10. send()

      • 用途:向套接字发送数据。

      • 说明:send()系统调用允许用户程序将数据发送到已连接的套接字上。

    11. recv()

      • 用途:从套接字接收数据。

      • 说明:recv()系统调用用于从已连接的套接字上接收数据,并将其存储在提供的缓冲区中。

    12. fork()

      • 用途:创建子进程。

      • 说明:fork()系统调用用于创建一个与当前进程几乎完全相同的子进程。子进程会继承父进程的几乎所有属性,包括文件描述符、内存空间等。

    13. execve()

      • 用途:执行新程序。

      • 说明:execve()系统调用用于在当前进程的地址空间中执行一个新的程序。新程序将替换当前进程的代码和数据段,但保留当前进程的进程ID。

    14. wait()

      • 用途:等待子进程终止。

      • 说明:wait()系统调用用于使父进程等待其任一子进程终止。当子进程终止时,wait()将返回子进程的终止状态。

    15. exit()

      • 用途:终止进程并返回状态给父进程。

      • 说明:exit()系统调用用于终止当前进程,并向父进程返回进程的终止状态。

    这些系统调用是操作系统内核提供的接口,它们使得用户程序能够安全、高效地利用系统资源,执行各种复杂的任务。

  • 现在流行的 P2P 文件共享应用程序都有哪些特点?存在哪些值得注意的问题?

    现在流行的P2P(Peer-to-Peer)文件共享应用程序的特点及存在的问题可以归纳如下:

    特点

    1. 去中心化:

      • P2P文件共享应用程序采用去中心化的架构,每个节点(即用户设备)既可以作为客户端请求文件,也可以作为服务器提供文件。

      • 这种架构避免了传统文件共享方式中中央服务器的瓶颈问题,提高了文件共享的效率。

    2. 高效分发:

      • 在P2P网络中,文件资源分散在多个节点上,用户可以从多个节点同时下载文件,提高了下载速度。

      • 随着用户的增加,网络中的资源也相应增加,从而进一步提升了文件分发的效率。

    3. 资源利用率高:

      • P2P文件共享应用程序充分利用了用户设备的计算和存储能力,实现了资源的高效利用。

      • 用户可以在不占用自己设备资源的情况下,通过共享自己的文件来为他人提供服务。

    4. 隐私保护:

      • 在P2P网络中,信息的传输分散在各节点之间进行,无需经过某个集中环节,降低了用户隐私信息被窃听和泄漏的风险。

      • 同时,P2P网络中的节点可以提供中继转发的功能,提高了匿名通讯的灵活性和可靠性。

    5. 可扩展性强:

      • P2P网络具有强大的可扩展性,随着用户的加入,网络整体的资源和服务能力也在同步扩充。

      • 这种可扩展性使得P2P文件共享应用程序能够应对大规模用户的使用需求。

    存在的问题

    1. 知识产权问题:

      • P2P文件共享应用程序的普及使得非法盗版和不健康的音频、视频文件得以广泛传播。

      • 这对知识产权的保护构成了挑战,需要采取有效的技术手段和法律措施来加以解决。

    2. 网络安全问题:

      • 由于P2P网络的分布式特性,网络安全问题更加复杂。

      • 恶意节点可能会进行恶意行为,如数据篡改、恶意攻击等,对网络的稳定性和用户的数据安全构成威胁。

    3. 带宽消耗:

      • P2P文件共享应用程序的大量使用消耗了因特网主干网上大部分的带宽资源。

      • 这对网络运营商的盈利模式和带宽管理提出了挑战,需要制定合理的收费标准和带宽管理策略。

    4. 法律和监管问题:

      • 在P2P网络中,用户可以直接进行资源共享和交流,这可能会涉及到版权、隐私等法律问题。

      • 如何合理制定法律和监管政策,保护用户权益和隐私,是P2P技术面临的另一个重要挑战。

    综上所述,P2P文件共享应用程序具有去中心化、高效分发、资源利用率高、隐私保护和可扩展性强等特点,但同时也存在知识产权、网络安全、带宽消耗和法律监管等问题。为了解决这些问题,需要采取有效的技术手段和法律措施来加以应对。

;