计算机网络之应用层

先讨论许多应用协议都要使用的域名系统。在介绍了文件传送协议和远程登录协议后,就重点介绍万维网的工作原理及其主要协议。接着讨论用户最常用的 因特网电子邮件。最后,介绍有关网络管理方面的问题以及有关网络编程的概念。

一、域名系统DNS(domain name system)

1.域名系统概述

背景——ARPANET时代,整个网络上只有数百台计算机,那时使用一个叫作hosts的文件,列出所有主机名字和相应的IP地址。只要用户输入一个主机名字,计算机就可很快地把这个主机名字转换成机器能够识别的二进制IP地址。

为什么机器在处理IP数据报时要使用IP地址而不使用域名呢?——IP地址的长度是固定的32位,而域名的长度并不是固定的,机器处理起来比较困难。

整个因特网为什么不只使用一个域名服务器?——会因过负荷而无法正常工作。↓

因特网域名系统DNS被设计成为一个联机分布式数据库系统,并采用客户服务器方式。DNS使大多名字都在本地解析,仅少量解析需要在因特网上通信,因此DNS系统的效率很高。由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个DNS系统的正常运行。

域名到IP地址的解析是由分布在因特网上的许多域名服务器程序(可简称为域名服务器)共同完成的。域名服务器程序在专设的结点上运行,运行域名服务器程序的机器叫作域名服务器

怎么解析——当某一个应用进程需要把主机名解析为IP地址时,该应用进程就要调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。

若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。(查找过程后续还要讨论)

2.因特网的域名结构

层次树状结构的命名方法

命名规则——域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符(为记忆方便,规定12个字符),也不区分大小写字母。标号中的除连字符(-)外不能使用其他的标点符号。级别低的写在左边,高的写在右边。由多个标号组成的完整域名总共不超过255个字符。

域名是一个逻辑概念——并不代表物理地点。域名中的“点”和点分十进制IP地址中的“点”并无一一对应的关系,点分十进制IP地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。

顶级域名TLD(top level domain)分为三类——①国家顶级域名nTLD,如cn中国、us美国、uk英国。②通用顶级域名gTLD,如com公司企业、net政府机构、org非营利性的组织、int国际组织、edu美国专用教育机构、gov美国的政府机构、mil美国的军事部门。③基础结构域名。

二级域名分为——①类别域名:ac科研机构、com工、商、金融等企业、edu中国的教育机构、gov中国的政府机构、mil中国的国防机构、net提供互连网络服务的机构、org非营利性的组织。②行政区域名:适用于我国的各省、自治区、直辖市,bj北京。

3.域名服务器

区——一个服务器所负责管辖的范围。在一个区中的所有结点必须是能够连通的,每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射(是部分)。区是域的子集。

Ⅰ、分类

(1)根域名服务器(root name sever)

所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析(即转换为IP地址),只要自己无法解析,就首先要求助于根域名服务器。

因特网上共有13个不同IP地址的根域名服务器,它们名字是用一个英文字母命名,从a一直到m(前13个字母),分别是a.rootsevers.net,...,m.rootsevers.net。不是指13个机器,而是13套装置,运营组织在美国,但分布在世界各地,使世界上大部分DNS域名服务器都能就近找到一个根域名服务器。由于根域名服务器采用了任播(anycast)技术,因此当DNS客户向某个根域名服务器进行查询时(用这个根域名服务器的IP地址),因特网上的路由器就能找到离这个DNS客户最近的一个根域名服务器,这样加快了DNS的查询过程,也更加合理利用了因特网的资源。

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

(2)顶级域名服务器(TLD服务器)

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

(3)权限域名服务器

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

(4)本地域名服务器

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

为了提高域名服务器的可靠性,DNS域名服务器就把数据复制到几个域名服务器来保存,其中的一个是主域名服务器(master name sever),其他的是辅助域名服务器(secondary name sever)。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

Ⅱ、两种查询

域名解析过程注意:

①主机向本地域名服务器的查询一般都是采用递归查询(recursive query)。如果主机所询问的本地域名服务器不知道被查询域名的IP地址,本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

②本地域名服务器向根域名服务器的查询通常是采用迭代查询(iterative query)。根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应当向哪一个域名服务器进行查询,然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么高速本地域名服务器下一步应当向哪一个权限域名服务器进行查询。本地域名服务器就这样进行迭代查询。最后,知道了所要解析的域名的IP地址,然后把这个结果返回给发起查询的主机。当然,本地域名服务器也可以采用递归查询,这取决于最初的查询请求报文的设置是要求使用哪一种查询方式。

Ⅲ、高速缓存

为了提高DNS查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存(有时也成为高速缓存域名服务器)。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并处理超过合理时间的项(例如,每个项目只存放两天)。当域名服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新到授权管理该项的域名服务器获取绑定信息。当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。

主机也有高速缓存。

二、文件传送协议

1.FTP概述

文件传送协议FTP(file transfer protocol),提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,屏蔽了各计算机系统的细节。

文件共享协议中的一大类——FTP和TFTP,即复制整个文件。特点是:若要存取一个文件,就必须先获得一个本地文件的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。

文件共享协议中的另一大类——联机访问(on-line access)。允许多个程序同时对一个文件进行存取。和数据库系统不同之处是用户不需要调用一个特殊的客户进程,而是由操作系统提供对远地共享文件进行访问的服务,就如同对本地文件的访问一样。这就使用户可以用远地文件作为输入和输出来运行任何应用程序,而操作系统中的文件系统则提供对共享文件的透明存取。透明存储优点是:将原来用于处理本地文件的应用程序用来处理远地文件时,不需要对该应用程序作明显的改动。属于文件共享协议的有网络文件系统NFS(network file system)。

2.FTP的基本工作原理

两个主机传送应用很难,因为计算机存储数据格式不同、文件的目录结构和文件命名的规定不同、相同文件存取功能的,操作系统使用的命令不同、访问控制方法不同。

文件传送协议FTP只提供传送的一些基本的服务,它使用TCP可靠的运输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干个从属进程,负责处理单个请求。

主进程工作步骤如下:①打开熟知端口(端口号为21),使客户进程能够连接上;②等待客户进程发出连接请求;③启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程;④回到等待状态,继续接受其他客户进程发来的请求,主进程与从属进程的处理是并发地进行。

FTP并非对所有的数据传输都是最佳的。例如,计算机A上运行的应用程序要在远地计算机B的一个很大的文件末尾添加一行信息。若使用FTP,则应先将此文件从计算机B传送到计算机A,添加上这一行信息后,再用FTP将此文件传送到计算机B,来回传送这样大的文件很花时间。实际上这种传送是不必要的,因为计算机A并没有使用该文件的内容。

然而网络文件系统NFS则采用另一种思路。NFS允许应用进程打开一个远地文件,并能在该文件的某一特定的位置上开始读写数据。这样,NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。对于上述例子 ,A的NFS客户软件,将要添加的数据和在文件后面写数据的请求一起发送到远地计算机B中的NFS服务器,NFS服务器更新文件后返回应答信息。在网络上传送的只是少量修改数据。

3.简单文件传送协议TFTP

(trivial file transfer protocol),是很小且易于实现的文件传送协议。虽然TFTP也使用客户服务器方式,但它使用UDP数据报,因此TFTP需要有自己的差错改正措施。TFTP只支持文件传输而不支持交互,没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

TFTP主要优点:①可用于UDP环境,例如当需要将程序或文件同时向许多机器下载时就往往需要使用TFTP。②TFTP代码所占的内存小,这对较小的计算机或某些特殊用途的设备是很重要的。这些设备不需要硬盘,只需要固化了TFTP、UDP、IP的小容量只读存储器即可。

TFTP主要特点:

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

②数据报文按序编号,从1开始;

③支持ASCII码或二进制传送;

④可对文件进行读或写;

⑤使用很简单的首部。

它的工作很像停止等待协议。发送完一个文加块后就等待对方的确认,确认时应指明所确认的块编号。发完数据后在规定时间内收不到确认就要重发数据PDU。发送确认PDU的一方若在规定时间内收不到下一个文件块,也要重发确认PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。

在一开始工作时。TFTP客户进程发送一个读请求报文或写请求报文给TFTP服务器进程,其熟知端口号码为69。TFTP服务器进程要选择一个新的端口和TFTP客户进程进行通信。若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报文。若文件长度不是512字节的整数倍,则最后传送数据报文中的数据字段一定不满512字节,这正好可作为文件结束的标志。

三、远程终端协议TELNET

用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一个主机上(使用主机名或IP地址),这种服务是透明的,所以也叫终端仿真协议。

使用客户服务器方式。能适应许多计算机和操作系统的差异,因为它定义了数据和命令怎样通过因特网,这些定义就是网络虚拟终端NVT(network virtual terminal)。

NVT的格式定义很简单,所有通信都使用8位一个字节。在运转时,NVT使用7位ASCII码传送数据,但当高位置1时用作控制命令。TELNET的选择协商(option negotiation)使TELNET客户和TELNET服务器可商定使用更多的终端功能,协商的双方是平等的。

四、万维网WWW

1.万维网概述

world wide web,它用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。

万维网是一个分布式的超媒体(hypermedia),它是超文本(hypertext)系统的扩充。所谓超文本是包含指向其他文档的链接的文本,是万维网的基础。超媒体与超文本的区别是文档内容不同,超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画、活动视频图像。

非分布式的超媒体系统中,各种信息都驻留在单个计算机的磁盘中。由于各种文档都可以从本地获得,因此这些文档之间的链接可进行一致性检查。所以,一个非分布式超媒体系统能够保证所有的链接都是有效的和一致的。

万维网把大量信息分布在整个因特网上。每台主机上的文档都独立进行管理。对这些文档的增加、修改、删除或重新命名都不需要(实际上也不可能)通知到因特网上成千上万的节点。这样,万维网文档之间的链接就经常会不一致。

万维网以客户服务器方法工作。万维网文档所驻留的主机则运行服务器程序,因此这个主机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面

于是,万维网需解决以下问题:

①怎样标志分布在整个因特网上的万维网上的文档?

——使用统一的定位符URL(uniform resource locator)来标志万维网上的各种文档,并使每一个文档在整个因特网的范围内具有唯一的标识符URL。

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

——万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,这就是超文本协议HTTP(hypertext transfer protocol)。HTTP是应用层协议,使用TCP连接进行可靠的传送。

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

——万维网使用超文本标记语言HTML(hypertext market language),使得万维网页面的设计者可以很方便地用连接从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的主机屏幕上将这些页面显示出来。

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

——用户可以使用搜索工具在万维网上方便地查找所需的信息。

2.统一资源定位符URL

Ⅰ、URL的格式

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

URL相当于一个文件名在网络范围的扩展。它是与因特网相连的机器上的任何可访问对象的一个指针。由于访问不同对象所使用的协议不同,所以URL还指出读取某个对象时所使用的协议。URL的一般形式:

<协议>://<主机>:<端口>/<路径>

<协议>指出使用什么协议来获取该万维网文档,如HTTP、ftp。<主机>指出万维网文档是在哪一个主机上,就是指该主机在因特网上的域名。<端口>和<路径>可省略。

Ⅱ、使用HTTP的URL

HTTP的URL的一般形式:http://<主机>:<端口>/<路径>

HTTP的默认端口号是80,通常可省略。若再省略<路径>,则URL就指到因特网上的某个主页(home page)。如http://www.tsinghua.edu.cn。虽然URL里面的字母不分大小写,但有的页面为了读者看起来方便,故意用了一些大写字母,实际上这对使用windows的PC机用户是没有关系的。

用户使用URL并非仅仅能够访问万维网的页面,还能通过URL使用其他的因特网应用程序,如FTP或USENET新闻组等。更重要的是,用户在使用这些应用程序时,只使用一个程序,即浏览器。这显然方便。

3.超文本传送协议HTTP

Ⅰ、HTTP的操作过程

HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给服务器。从层次角度看,HTTP是面向事务(事务指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,即要么所有的信息交换完成,要么一次交换都不进行)的应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器(即万维网客户)向它发出连接建立请求。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则,这些格式和规则就是超文本传送协议HTTP

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

用户浏览页面的方式有两种,一种是在浏览器的地址窗口中键入所要找的页面的URL,另一种是在某一个页面中用鼠标点击一个可选部分,这时浏览器会自动在因特网上找到所要链接的页面。

假定,用户用鼠标点击了屏幕上的一个可选部分,他使用的链接指向了“清华大学院系设置”的页面,其URL是http://www.tsinghua.edu.cn/chn/yxsz/index.htm。用户点击鼠标后,发生的事件(以HTTP1.0为例):

①浏览器分析链接指向页面的URL;

②浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址;

③域名系统DNS解析出清华大学服务器的IP地址为166.111.4.100;

④浏览器与服务器建立TCP连接(在服务器端IP地址是166.111.4.100,端口是80);

⑤浏览器发出取文件命令:GET/chn/yxsz/index.htm;

⑥服务器www.tsinghua.edu.cn给出响应,把文件index.htm发送给浏览器;

⑦释放TCP连接;

⑧浏览器显示“清华大学院系设置”文件index.htm中的所有文本。

HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传。但是,HTTP协议本身是无连接的。这就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接。

HTTP协议是无状态的。也就是说,同一个用户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同(假定现在服务器还没有把该页面更新),因为服务器不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。

从上图看出,请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT。HTTP/1.0的缺点是每请求一个文档就要有两倍RTT的开销,另外万维网客户和服务器为每一次建立新的TCP连接都要分配缓存和变量。特别是万维网服务器往往要同时服务于大量客户的请求,这样会使万维网服务器的负担很重,好在浏览器提供了能够打开5-10个并行的TCP连接,而每一个TCP连接处理客户的一个请求,因此使用并行TCP连接能够缩短响应时间。

HTTP/1.1协议较好解决了这个问题。它使用了持续连接,即万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。

持续连接有两种工作方式,即非流水线方式和流水线方式

非流水线方式,是客户在收到前一个响应后才能发出下一个请求。因此,在TCP连接已建立后,客户每访问一次对象都要用去一个往返时间RTT。这比非持续连接的两倍RTT的开销节省了建立TCP连接所需的一个RTT时间。但非流水线方式还是有缺点的,因为服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。

流水线方式,是客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可持续发回响应报文。因此,使用流水线方式时,客户访问所有的对象只需花费一个RTT时间。流水线工作方式使TCP连接中的空闲时间减少,提高了下载文档效率。

Ⅱ、代理服务器(proxy sever)

作用——把最近的一些请求和响应暂存在本地磁盘中

工作地——客户端、服务端、中间系统

过程——PC浏览器→代理服务器→源点服务器

解释:PC机中的浏览器先向因特网的服务器请求服务时,就先和代理服务器建立TCP链接,并向代理服务器发出HTTP请求报文。若代理服务器存放了所请求对象,就把它放入HTTP响应报文中返回给PC机的浏览器。否则,就与因特网上的源点服务器建立TCP连接,并发送HTTP请求报文。代理服务器收到这个对象后,先复制在自己的本地磁盘中(留待以后用),再把这个对象放在HTTP响应报文中,通过已建立的TCP链接,返回给请求该对象的浏览器。

Ⅲ、HTTP的报文结构

两类报文:①请求报文。从客户向服务端发送请求报文。②响应报文。从服务端到客户端。

HTTP是面向文本的,因此在报文中的每一个字段都是ASCII码串,因而各个字段的长度都是不确定的。

各行结构:

开始行——用于区分是请求报文(叫请求行)还是响应报文(叫状态行)。

首部行——用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。最后还要有空行来和后面的实体主体分开。

实体主体——在请求报文中一般不用这个字段,而在响应报文中也可能没有这个字段。

请求报文的请求行:

请求行有三个内容:方法、请求资源的URL、HTTP的版本

方法:面向对象技术中使用的专有名词。方法是对所请求的对象进行的操作,这些方法实际上也就是一些命令。所以请求报文的类型是由它所采用的方法决定的。

例如:

在请求行使用了相对URL(即省略了主机的域名)是因为下面的首部行(第2行)给出了主机的域名。第3行是告诉服务器不使用持续连接,表示浏览器希望服务器在传送完所请求的对象后即关闭TCP连接。这个请求报文没有实体主体。

HTTP响应报文的主要特点:

每一个请求报文发出后,都能收到一个响应报文,响应报文的第一行就是状态行。状态行包括:HTTP的版本、状态码、解释状态码的简单短语。

Ⅳ、在服务器上存放用户的信息

上面讲过,HTTP是无状态的,这样做虽简化了服务器的设计,但实际工作中,一些万维网站点却常常希望能够识别用户。比如,购物车,推荐商品等。

可在HTTP中使用Coolie。当某用户浏览某个使用Coolie的网站时,该网站的服务器就为用户产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目,接着再给用户的HTTP响应报文中添加一个叫做Set-cookie的首部行,后面的值是识别码。于是网站跟踪用户的活动。

4.万维网的文档

Ⅰ、超文本标记语言HTML

作用——页面制作的标准化,消除不同计算机之间信息交流的障碍

HTML定义了许多用于排版的命令,即“标签”。例如,表示后面开始用斜体字排版,表示斜体字排版到此结束。HTML就把各种标签嵌入到万维网的页面中,这样就构成了所谓的HTML文档。是一种可以用任何文本编辑器(例如windows的记事本Notepad)创建的ASCII码文件。

.html、.htm为后缀时,浏览器解释;.txt为后缀时,不解释,只能看见原来的文本文件。

特点:①允许在万维网页面中插入图像。一个页面本身带有的图像称为内含图像,HTML标准并没有规定该图像的格式。实际上,大多数浏览器支持GIF和JEPG文件,但存储空间大,但改为经压缩的.gif格式则减少了存储空间。

②规定了链接的设置办法。每个链接有一个起点和终点。起点说明在万维网页面中的什么地方可引出一个链接。容易识别(一般文字用黑色字时,链接起点用蓝色字,有时还加上上下划线)。终点可以是其他网络上的页面(远程链接),也可以是本计算机中的某一个文件或本文件中的某处(本地链接)。

Ⅱ、动态万维网文档

背景——静态文档是指在文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变,因此用户对静态文档的每次读取所得到的返回结果都是相同的。

优点是简单,可由不懂程序设计的人员来创建,缺点是不够灵活,信息变化时就要由文档的作者手工对文档进行修改。

定义——是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。当浏览器请求到达时,万维网服务器要运行另一个程序,并把控制转移到此应用程序。接着,该应用程序对浏览器发来的数据进行处理,并输出HTTP格式的文档,万维网服务器就把应用程序的输出作为对浏览器的响应。例子:天气预报、股市行情。

与静态文档差别——服务器一端,文档内容的生成方法不同。

要实现动态文档应在以下两方面对万维网服务器的功能进行扩充:

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

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

举例——

新增机制是通用网关接口CGI(common gateway interface),是一种标准,定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。

新增应用程序是CGI程序。取这个名字是因为万维网服务器与CGI的通信遵循CGI标准。“通用”是说这个标准定义的规则对其他任何语言是通用的;“网关”是说CGI程序可能要访问其他的服务器资源,如数据库或图形软件包;“接口”是说有一些已定义好的变量和调用等可供其他CGI程序使用。CGI程序的正式名字是CGI脚本(script),“脚本”是指一个程序,它是被另一个程序(解释程序)而不是计算机的处理机来解释或执行,可更容易地更快地进行编码,但运行起来比一般的编译程序要慢,因为它每一条指令要被另一个程序来处理,而不是直接被指令处理器来处理。

Ⅲ、活动万维网文档

背景——动态文档一旦建立,它所包含的信息内容也就固定下来而无法及时刷新屏幕。另外像动画之类的显示效果,动态文档也无法提供。

用于浏览器屏幕显示的连续更新的有两种技术:

①服务器推送

这种技术是将所有的工作都交给服务器,服务器不断地运行与动态文档相关联的应用功能程序,定期更新信息,并发送更新过的文档。

缺点:(1)为满足很多用户请求,服务器要运行很多的服务器推送程序。这造成服务器开销。(2)服务器推送技术要求服务器为每一个浏览器客户维持一个不释放的TCP连接,随着TCP连接的数目增加,每一个连接所能分配到的网络带宽就下降,导致网络传输时延增大。

②活动文档技术

这种技术是把所有的工作都转移给浏览器端。每当浏览器请求一个活动文档时,服务器就返回一段活动文档程序副本,使该程序副本在浏览器端运行。这时,活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。只要用户运行活动文档程序,活动文档的内容就可以连续地改变。由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高。

从传送角度看,浏览器和服务器都把活动文档看成是静态文档。在服务器上的活动文档的内容是不变的,这点和动态文档是不同的。浏览器可在本地缓存一份活动文档的副本。活动文档还可处理成压缩形式,便于存储和传送。另一点要注意的是,活动文档本身并不包括其运行所需的全部软件,大部分的支持软件是事先存放在浏览器中。

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

小应用程序(applet):描述活动文档程序。

Java技术共有三个主要组成部分:程序设计语言、运行环境、类库。

程序设计语言——

从C++派生,省去了复杂的、很少用的语言特点。但和C、C++不兼容。Java的编译程序将源程序转换成Java字节码,这是一种与机器无关的二进制代码。计算机程序调用解释程序读取字节码,并解释执行。

设计成与机器无关的原因:可使任何在计算机上运行的浏览器程序能够下载并运行活动文档;可保证活动文档在所有的浏览器上产生同样的正确输出;可大大降低活动文档的创建和测试费用,因此不必为每一种计算机都制作一个副本。

运行环境——可允许小应用程序操纵用户的显示

类库——包含提供高级图形接口的软件

运行环境和类库——抽象窗口工具箱AWT(abstract window toolkit)执行。出现原因:使用小应用程序主要是为了复杂的显示,只要静态显示不能满足要求时就要使用小应用程序;一个控制图形现实的程序还必须指明很多的细节。

运行JAVA的浏览器需要两个解释程序——HTML解释程序和JAVA小应用程序解释程序

解释程序——核心是一个模仿计算机的简单循环。作用:①维持一个指令指针,在初始化时指在小应用程序的开始处,每一次循环操作,就在指令指针指向的地址读取字节码,然后解释程序对字节码进行解码,完成指明的操作。②支持JAVA运行环境。即一个JAVA解释程序必须能够在屏幕上显示图形,接入到因特网,以及执行I/O操作。③必须设计成使得小应用程序能够利用浏览器的设施来读取和显示静态和动态文档。因此,在浏览器中的JAVA解释程序必须能够与浏览器中的HTTP客户以及HTML解释程序进行通信。

Ⅳ、浏览器的结构

缓存缺点:要占用磁盘大量的空间;浏览器性能改善只有在用户再次查看缓存中的页面时才有帮助;要耗费时间吧文件不必要地存储在磁盘上,这反而降低了浏览器的效率。

为了改善,浏览器允许用户调整缓存策略。如设置时间限制,到期后删除这些文件。

5.万维网的信息检索系统

Ⅰ、全文检索搜索与分类目录搜索

全文检索搜索——

工作原理:通过搜索软件到因特网各网站收集信息→像蜘蛛爬行一样,按一定规则建立很大的在线数据库供查询→输入关键词即可查询

缺点:查询到的信息有些过时,必须定期维护

例如百度、谷歌

分类目录搜索——

工作原理:利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述的信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。

优点:用户可根据网站设计好的目录有针对性地逐级查询所需要的信息,查询时不需要使用关键词,只需要按照分类(先找大类,再找下面的小类),因而查询的准确性好。

缺点:查询结果不是具体页面,而是被收录网站主页的URL地址,因而所得到的内容就比较有限。

例如雅虎中国、新浪

垂直搜索引擎——

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

元搜索引擎——

把用户提交的检索请求发送到多个独立的搜索引擎上去搜索,并把检索结果集中统一处理,以统一的格式提供给用户,因此是搜索引擎之上的搜索引擎。主要精力放在提高搜索速度、智能化处理搜索结果、个性化搜索功能的设置和用户检索界面的友好性上。查全率和准确率高。

Ⅱ、Google搜索技术的特点

以往大多数搜索引擎是使用少量大型服务器,在访问高峰期,搜索速度减慢。而Google则利用在因特网上相互链接的PC机来快速查找每个搜索的答案,并且成功地缩短了查找的响应时间。Google的搜索软件可同时进行许多运算,它的核心技术是PageRank,译为网页排名。

PageRank对搜索结果按重要性进行排序。它把整个互联网当作了一个整体对待,检查整个网络链接的结构,并确定哪些网页重要性最高。更具体些,就是如果有很多网站上的链接都指向页面A,那么页面A比较重要。

还要进行超文本匹配分析,以确定哪些网页与正在执行的特定搜索相关。Google把最相关、最可靠的搜索结果放在首位。

 

 

2.几种常用的系统调用

 

五、电子邮件

1.电子邮件概述

一个电子邮件系统应具有三个主要组成构件:用户代理、邮件服务器、邮件发送协议(如SMTP,simple mail transfer protocol)和邮件读取协议(POP3,post office protocol的版本3)。

用户代理UA(User Agent)——

就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户PC机中的一个程序,因此用户代理又称为电子邮件客户端软件。它向用户提供一个很友好的接口(目前主要是窗口界面)来发送和接收邮件。

包括以下四个功能

①撰写:给用户提供编辑信息的环境。例如通信录。

②显示:能方便地在计算机屏幕上显示出来信。

③处理:包括发送邮件和接收邮件,收件人应能根据情况按不同方式对来信进行处理,如阅读后删除、存盘、打印、转发。

④通信

邮件服务器——

24小时不间断工作。功能是发送和接收邮件,同时还要向发件人报告邮件传送的结果(已交付、被拒绝、丢失等)。按照客户服务器方式工作,需要使用两种不同协议:用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP协议;用于用户代理从邮件服务器读取邮件,如邮局协议POP3。它要同时充当客户和服务器。

两种不同通信方式——①“推”,SMTP客户把邮件“推”给SMTP服务器。②“拉”,POP3客户把邮件从POP3服务器“拉”过来。

为什么邮件服务器程序不能在发送方和接收方的PC机中运行?——有些计算机可能没有足够的存储器来运行允许程序在后台运行的操作系统,或是可能没有足够的CPU能力来运行邮件服务器程序。PC机也不是24小时开着。

电子邮件由信封和内容组成。TCP/IP体系的电子邮件系统规定电子邮件地址的格式为:收件人邮箱名@邮箱所在主机的域名。

2.简单邮件传送协议SMTP

主要特点:规定了在两个相互通信的SMTP进程之间应如何交换信息。邮件内部格式、如何存储未规定。

下面介绍通信三个阶段的命令和相应信息。

Ⅰ、连接建立

发件人的邮件送到发送方邮件服务器的邮件缓存后,SMTTP客户就每隔一定时间(例如30分钟)对邮件缓存扫描一次。如发现有邮件,就使用SMTP的熟知端口号码(25)与接收方邮件服务器的SMTP服务器建立TCP连接。在连接建立后,接收方SMTP服务器要发出“220 Sever ready”(服务就绪)。然后SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名。SMTP服务器有能力接收,则回答“250 OK”,表示已准备好接收。不可用则回答“421 Sever not available”(服务不可用)。一定时间内发送不了邮件,则把这个情况通知发件人。

SMTP不使用中间的邮件服务器。不管发送方和接收方的邮件服务器相隔多远,都用发送方和接收方两个邮件服务器之间直接建立。当出现故障时,发送方服务器等一段时间后再尝试建立TCP连接,而不能先找一个中间的邮件服务器建立TCP连接。

Ⅱ、邮件传送

开始:MAIL命令mail命令后面有发件人的地址。如:MAIL FROM:。若SMTP服务器已准备好接收邮件,则回答“250 OK”。否则,返回一个代码,指出原因。如:451(处理时出错)、452(存储空间不够)、500(命令无法识别)等。

然后:RCPT命令取决于把同一个邮件发送给一个或多个收件人,其格式为RCPT TO:<收件人地址>。RCPT是recipient(收件人)缩写。每发送一个RCPT命令,都应当有相应的信息从SMTP服务器返回。如:“250 OK”,表明指明的邮箱在接收方的系统中,或“550 No such user here”(无此用户),即不存在此邮箱。作用:先弄清接收方系统是否已做好接收邮件的准备,然后才发送邮件,这样做是为了避免浪费通信资源,不致于发送很长邮件后才知道是因地址错误。

最后:DATA命令表示要开始传送邮件的内容了。SMTP服务器返回的信息是:“354 Start mail input;end with.”。不接收邮件,则返回421(服务器不可用等)。接着SMTP客户就发送邮件的内容,发送完毕后,则发送.(两个回车换行中间用一个点隔开)表示邮件内容结束。实际上在服务器端看到的可打印字符只是一个英文的句点。若邮件收到了,则SMTP服务器返回信息“250 OK”,或返回差错代码。

注意:

虽然SMTP使用TCP连接试图使邮件的传送可靠,但它不能保证不丢失邮件。接收方的邮件服务器也许会出故障,使收到的邮件全部丢失(在收件人读取信息之前),然而基于SMTP的电子邮件都通常被认为是可靠的。

Ⅲ、连接释放

邮件发送完毕后,SMTP客户发送QUIT命令。SMTP服务器返回的信息是“221(服务关闭)”,表示SMTP同意释放TCP连接。

用户看不见以上过程,全被电子邮件的用户代理屏蔽了。

3.电子邮件的信息格式

分为信封和内容。内容有首部和主体。首部有很多关键字:

To:后面接一个或多个收件人的电子邮件地址

Subject:主题,反映了邮件的主要内容,便于用户查找邮件

抄送Cc:carborn copy,意思是留下一个“复写副本”

Bcc:盲复写副本,使发件人能将邮件的副本送给某某人,但不希望此事为收件人知道,又叫“暗送”

From、Date:发件人的电子邮件地址和发信日期,由邮件系统自动填入

Reply-To:即对方回信所用的地址,这个地址可与发件人发信时所用的地址不同

4.邮件读取协议POP3和IMAP

Ⅰ、邮件读取协议POP3

工作原理:是一个非常简单、但功能有限的邮件读取协议。使用客户服务器方式,在接收邮件的用户PC机中的用户代理必须运行POP客户程序,而在收件人所连接的ISP的邮件服务器中则运行POP服务器程序。当然,这个ISP的邮件服务器还必须运行SMTP服务器程序,以便接收发送方邮件服务器的SMTP客户程序发来的邮件。POP服务器只有在用户输入鉴别信息(用户名和口令)后,才允许对邮箱进行读取。

特点:只要用户从POP服务器读取了邮件,POP服务器就把该邮件删除。这样很不方便,所以POP3进行了一些功能扩充,如让用户事先设置邮件读取后仍在POP服务器中存放的时间。

Ⅱ、网际报文存取协议IMAP

工作原理:用户的PC机运行IMAP客户程序,然后与接收方的邮件服务器上的IMAP服务器程序建立TCP连接。用户在自己的PC机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样,因此IMAP是一个联机协议。当用户PC机上的IMAP客户程序打开IMAP服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。用户未发出删除邮件的命令之前,IMAP服务器邮箱中的邮件一直保存着。

好处:①用户可在不同地方使用不同的计算机;②允许收件人只读取邮件中的某一部分。

缺点:如果用户没有将邮件复制到自己的PC机上,则邮件一直是存放在IMAP服务器上。因此,用户需要经常与IMAP服务器建立连接(因为许多用户要考虑所花费的上网费)。

Ⅲ、POP、IMAP与SMTP不同

POP和IMAP是用户代理从接收方邮件服务器上读取邮件所使用的协议

SMTP协议是用于:发件人的用户代理向发送方邮件服务器发送邮件,以及发送方邮件服务器向接收方邮件服务器发送邮件。

5.基于万维网的电子邮件

6.通用因特网邮件扩充MIME

Ⅰ、MIME概述

(1)SMTP缺点

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

②限于传送7位的ASCII码,许多其他非英语国家的文字无法传送,即使在SMTP网关将EBCDIC码(即扩充的二/十进制交换码转换为ASCII码)时也会遇到一些麻烦;

③SMTP服务器会拒绝超过一定长度的邮件;

④某些SMTP的实现并没有完全按照SMTP的因特网标准,问题有如回车换行的删除和增加、后面多余空格的删除等。

(2)通用因特网邮件扩充MIME

增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。

包含三部分内容:

①5个新的邮件首部字段

1.MIME-Version:标志MIME的版本,现在版本号是1.0,如无此行,则为英文版本;

2.Content-Description:可读字符串,说明邮件主体是否是图像、音频或视频;

3.Content-Id:邮件的唯一标识符

4.Content-Transfer-Encoding:在传送时邮件的主体是如何编码的

5.Content-Type:说明邮件主体的数据类型和子类型

下面对后两项介绍

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

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

Ⅱ、内容传送编码

有三种。

(1)7位ASCII码

每行不超过1000个字符,MIME对这种由ASCII码构成的邮件主体不进行任何转换

(2)quoted-printable

适用:传送的数据中只有少量的非ASCII码,如汉字

要点:对于所有可打印的ASCII码,除特殊字符等号“=”外,都不改变。等号和不可打印的ASCII码以及非ASCII码的数据的编码方法是:先将每个字节的二进制代码用两个十六进制数字表示,然后在前面再加上一个等号“=”。

“=”的二进制代码为00111101,即十六进制的3D,因此等号的quoted-printable编码为“=3D”

(3)base64编码

做法:先将二进制代码划分为一个个24位长的单元,然后把每一个24位单元划分为4个6位组。每一个6位组按以下方法转换成ASCII码。6位的二进制代码共有64种不同的值,从0到63。用A表示0,用B表示1,等等。26个大写字母排列完毕后,接下去再排26个小写字母,再后面是10个数字,最后用+表示62,用/表示63。再用“==”和“=”分别表示最后一组的代码只有8位或16位。回车和换行都忽略,它们可在任何地方插入。

Ⅲ、内容类型

MIME标准规定内容类型必须含有两个标识符,即内容类型和子类型,中间用/分开。MIME允许发件人和收件人自己定义专用的内容类型,但为避免可能出现名字冲突,标准要求为专用的内容类型选择的名字要以字符串X-开始。

六、动态主机配置协议DHCP

背景:为了把协议软件做成通用的和便于移植,协议软件的编写者不会把所有细节都固定在源代码中,而是把协议软件参数化,使得在很多台计算机上有可能使用同一个经过编译的二进制代码。计算机之间的区别可通过一些不同参数来实现,在协议软件运行前,要给每一个参数赋值。

协议配置:在协议软件中给参数赋值。协议软件在使用前已正确配置,具体配置信息有哪些取决于协议栈。连接到因特网的计算机的协议软件需要配置的项目包括:IP地址、子网掩码、默认路由器的IP地址、域名服务器的IP地址。

DHCP:提供了一种机制,叫即插即用连网,允许一台计算机加入新的网络和获取IP地址而不用手工参与。

适用范围:对客户软件和服务软件都适用,当运行客户软件的计算机移至一个新的网络时,就可使用DHCP获取其配置信息而不需要手工干预;DHCP给运行服务器软件而位置固定的计算机指派一个永久地址,而当这计算机重新启动时其地址不改变。

工作原理:采用客户服务器方式,需要IP地址的主机在启动时向DHCP服务器广播发送发现报文(DHCPDISCOVER)(将目的IP地址置为全1,即255.255.255.255),这时该主机就成为DHCP客户。发送广播报文是因为还不知道DHCP服务器在什么地方,因此要发现DHCP服务器的IP地址。这个主机目前还没有自己的IP地址,因此它将IP数据报的源IP地址设为全0。这样,在本地网络上的所有主机都能收到这个广播报文,但只有DHCP服务器才对此广播报文进行回答。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池(address pool)中取一个地址分配给该计算机,DHCP服务器的回答报文叫做提供报文(DHCPOFFER),表示“提供”了IP地址等配置信息。

DHCP中继代理:代替了DHCP服务器,配置了DHCP服务器的IP地址信息。当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机A。实际上,DHCP报文只是UDP用户数据报的数据,它还要加上UDP首部、IP数据报首部、以太网的MAC帧的首部和尾部后,才能在链路上传送。

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

DHCP适合于经常移动位置的计算机,当计算机使用windows操作系统时,若点击控制面板的网络图标就可以找到某个连接中的“网络”下面的菜单,找到TCP/IP协议后点击“属性”,选择“自动获得IP地址”和“自动获得DNS服务器地址”,就表示是使用DHCP协议。

七、简单网络管理协议SNMP

1.网络管理的基本概念

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

管理站又称管理器,是整个网络管理系统的核心,所在部门叫作网络运行中心NOC,关键构件是管理程序。管理程序在运行时就称为管理进程。管理站(硬件)或管理程序(软件)都可称为管理者或管理器

被管设备可以是主机、路由器、打印机、集线器、网桥、调制解调器等。被管设备的某个硬件、软件等叫作被管对象。在每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信,这些运行着的程序叫作网络管理代理程序,或简称代理。代理程序在管理程序的命令和控制下在被管设备上采取本地的行动。

简单网络管理协议SNMP中的管理程序和代理程序按客户服务器方式工作,管理程序运行SNMP客户程序,代理程序运行SNMP服务器程序

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

若网络元素使用的不是SNMP协议而是另一种网络管理协议,那么SNMP协议就无法控制该网络元素,这时可使用委托代理。委托代理能够提供如协议转换和过滤操作等功能对被管对象进行管理。

SNMP的网络管理由三个部分组成,即SNMP本身、管理信息结构SMI(structure of management information)、管理信息库MIB(management information base)。

SNMP定义了管理站和代理之间所交换的分组格式,所交换的分组包含各代理中的对象(变量)名及其状态(值)。SNMP负责读取和改变这些数值。

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

SMI建立规则,MIB对变量进行说明,SNMP完成网管的动作

2.管理信息结构SMI

功能有三:①被管对象怎样命名;

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

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

Ⅰ、被管对象的命名

SMI规定,所有的被管对象都必须在对象命名树上。在只讨论internet中的对象时,可只画出internet以下的字符,并在internet节点旁边写上对象标识符1.3.6.1即可。

Ⅱ、被管对象的数据类型

SMI使用基本的抽象语法记法1(即ISO制定的ASN.1)来定义数据类型,但又增加了一些新的定义。因此SMI既是ASN.1的子集,又是ASN.1的超集。ASN.1记法严格,使得数据的含义不存在任何可能的二义性。

任何数据都具有两种重要属性,即值与类型。“值”是某个值集合中的一个元素,“类型”是值集合的名字。SMI把数据类型分为两大类:简单类型和结构化类型。

结构化类型有两种:sequence(简单数据类型的组合,不一定要相同类型)和sequence of(同样类型的简单数据类型的组合,或同类型的sequence数据类型的组合)。

Ⅲ、编码方法

SMI使用ASN.1制定的基本编码规则BER进行数据的编码。BER指明了每种数据的类型和值。在发送端用BER编码,可把用ASN.1所表述的报文转换成唯一的比特序列。在接收端用BER编码,就可得到该比特序列所表示的ASN.1报文。

ASN.1把所有的数据元素都表示为T-L-V三个字段组成的序列。

(1)T字段

又叫标记字段,分为类别、格式、编号。

类别共四种:通用类(00),即ASN.1定义的类型;应用类(01),即SMI定义的类型;上下文类(10),即上下文所定义的类型;专用类(11),保留为特定厂商定义的类型。

格式共两种,指出数据类型的种类:简单数据类型(0),结构化数据类型(1)。

编号用来标志不同的数据类型。编号范围一般为0~30,编号大于30时,T字段就要扩展为多个字节。

(2)L字段

又叫做长度字段(单字节或多字节)。为单字节时,最高位为0,后面的7位定义V字段的长度。为多字节时,最高位为1,后面的7位定义后续字节的字节数(用二进制整数表示)。

(3)V字段

叫作值字段,用于定义数据元素的值。

举例:INTEGER 15,根据表6-4,其T字段是02,再根据表6-3,INTEGER类型要用4字节编码。最后得出TLV编码为02 04 00 00 00 0F。

3.管理信息库MIB

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

例如调制解调器应维持发送和接收的字符数、码元传输速率和接受的呼叫等统计信息。

举例——从图6-23可看出,对象IP的标号是4,因此所有与IP有关的对象都从前缀1.3.6.1.2.1.4开始。

(1)在节点IP下面有个名为ipInRecevies的MIB变量(图6-23),表示收到的IP数据报数。这个变量的标号是3,变量的名字是:iso.org.dod.internet.mgmt.mib.ipInReceives,而相应的数值表示是:1.3.6.1.2.1.4.3。

(2)当SNMP在报文使用MIB变量时,对于简单类型的变量,后缀0指具有该名字的变量的实例。因此,当这个变量出现在发送给路由器的报文中时,ipInReceives的数值表示(即变量的一个实例)就是1.3.6.1.2.1.4.3.0。

(3)请注意,对于分配给一个MIB变量的数值或后缀是完全没有办法进行推算的,必须查找已发布的标准。


MIB变量只给出了每个数据项的逻辑定义,而一个路由器使用的内部数据结构可能与MIB的定义不同。当一个查询到达路由器时,路由器上的代理软件负责MIB变量和路由器用于存储信息的数据结构之间的映射。

4.SNMP的协议数据单元和报文

Ⅰ、探询和陷阱

SNMP的操作只有两种基本的管理功能,即“读”操作(用Get报文来检测各被管对象的状况)和“写”操作(用Set报文来改变各被管对象的状况)。

探询:实现上面的功能,即SNMP管理进程定时向被管理设备周期性地发送探询信息,上述时间间隔可通过SNMP的管理信息库MIB来建立。

探询好处是:一来可使系统相对简单,二来能限制通过网络所产生的管理信息的通信量。

探询缺点是:一来不够灵活,而且所管理的设备数目不能太多;二来开销大。

陷阱:不通过探询就能发送某些信息,能够捕捉“事件”。但陷阱的参数是受限制的。当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(叫过滤),这样好处:一来只在严重事件发生时才发送陷阱;二来陷阱信息很简单且所需字节数很少。

总之,使用探询(至少是周期性地)以维持网络资源的实时监视,同时也采用陷阱机制报告特殊事件,使得SNMP成为一种有效的网络管理协议。

Ⅱ、结构

使用无连接的UDP,因此在网络上传送SNMP报文的开销较小,但不保证可靠支付。在运行代理程序的服务器端用熟知端口161来接收Get或Set报文和发送响应报文(与熟知端口通用的客户端使用临时窗口),但运行管理程序的客户端则使用熟知端口162来接收来自各代理的trap报文。

和大多数TCP/IP协议不一样,SNMP报文没有固定的字段,想反它们使用标准ASN.1编码,因此SNMP报文用人工进行编码和理解时都比较困难。看下图结构,首部包括报文标识、最大报文长度、报文标志。报文标志占1字节,其中的每一位定义安全类型或其他信息,安全参数用来产生报文摘要(见7.4节)

PDU前面的两个加密字段在数据部分需要加密时才使用。与网络管理直接相关的是后面的SNMP PDU部分,对于表6-7给出的前四种PDU的格式都是相同的,即由PDU类型、请求ID、差错状态、差错索引以及变量绑定这几个字段组成。PDU类型以及类型编号、T字段的编码已在表6-7中给出。

(1)请求标识符

由管理进程设置的4字节整数值。代理进程在发送响应报文时也要返回此请求标识符。由于管理进程可同时向许多代理发出请求读取变量值的报文,因此设置了请求标识符可使管理进程能够识别返回的响应是对应于哪一个请求报文。

(2)差错状态

在请求报文中,这个字段是零。当代理进程响应时,就填入0-18中的一个数字,例如0表示noError,1表示tooBig等等。

(3)差错索引

在请求报文中,这个字段是零。当代理进程响应时,若出现noSuchName、badValue、readOnly的差错,代理进程就设置一个整数,指明有差错的变量在变量列表中的偏移。

(4)变量绑定

指明一个或多个变量的名和对应的值。在请求报文中,变量的值应忽略。(类型是NULL)

下图举例:

 

八、应用进程跨越网络的通信

还有一些特定的应用需要因特网的支持,但这些应用又不能直接使用已经标准化的因特网应用协议,就要进行下面工作。

1.系统调用和应用编程接口

大多数操作系统使用系统调用的机制在应用程序和操作系统之间传递控制权。应用进程启动时,控制权传递:应用进程→系统调用接口→操作系统,操作系统的内部过程完毕,就返回给应用功能进程。

由于应用程序在使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口API(application programming interface)。API从程序设计的角度定义了许多标准的系统调用函数。应用进程只要使用标准的系统调用函数就可得到操作系统的服务,因此从程序设计的角度看,也可以把API看成是应用程序和操作系统之间的接口。

现在TCP/IP协议软件已驻留在操作系统中。由于TCP/IP协议族被设计成能运行在多种操作系统的环境中,因此TCP/IP标准没有规定应用程序与TCP/IP协议软件如何接口的细节,而是允许系统设计者能够选择有关API的具体实现细节。目前,只有几种可供应用程序使用TCP/IP的应用编程接口API,著名的一种叫套接字接口(socket interface,或插口接口)。

只要应用程序使用TCP/IP协议进行通信,它就必须通过套接字与操作系统交互(这就要使用系统调用函数)并请求其服务。

应用进程(客户或服务器)需要使用网络进行通信时,必须首先发出socket系统调用,请求操作系统为创建一个套接字。这种调用的实际效果是请求操作系统把网络通信所需要的一些系统资源(如存储器空间、CPU时间、网络带宽)分配给该应用进程。操作系统为这些资源的总和用一个叫作套接字描述符的号码(小的整数)来表示,然后把这个套接字描述符返回给应用进程。此后,应用进程所进行的网络操作(建立数据、收发数据、调整网络通信参数等)都必须使用这个套接字描述符。所以,几乎所有的网络系统条用都把这个套接字描述符作为套接字的许多参数中的第一个参数。在处理系统调用的时候,通过套接字描述符,操作系统就可以识别出应该使用哪些资源来完成应用进程所请求的服务。通信完毕后,应用进程通过一个关闭套接字的close系统调用通知操作系统回收与该套接字描述符相关的所有资源。由此可见,套接字是应用进程为了获得网络通信服务而与操作系统进行交互时使用的一种机制

由于在一个机器中可能同时出现多个套接字,因此需要有一个存放套接字描述符的表,而每一个套接字描述符有一个指针指向存放套接字的地址。

2.几种常用的系统调用

以使用TCP的服务为例介绍。

Ⅰ、连接建立阶段

服务器端把本地地址绑定到套接字:套接字被创立后,它端口号和IP地址都是空的,因此在服务器端调用bind以把熟知端口号和本地IP地址填写到已创建的套接字中。

客户端可不调用bind,是由操作系统内核自动分配一个动态端口号(通信结束后由系统收回)。

①服务器为了接受客户端发起的连接请求而进行的一些系统调用

服务器在调用bind后,还使用listen把套接字设置为被动方式,以便随时接受客户的服务请求。UDP服务器由于只提供无连接服务,不使用listen系统调用。

接着调用accept,以便把远地客户进程发来的连接请求提取出来,系统调用accept的一个变量就是要指明从哪一个套接字发起的连接。accept要完成的动作较多,这是因为一个服务器必须能够同时处理多个连接(并发方式工作的服务器),可以由多种方式实现这种并发方式。下图是一种。

主服务器进程M一调用accept,就为每一个新的连接请求创建一个新的套接字,并把这个新创建的套接字的标识符返回给发起连接的客户方。与此同时,主服务器进程还要创建一个从属服务器进程S1来处理新建立的连接。从属服务器用这个新创建的套接字和客户进程建立连接,而主服务器进程用原来的套接字重新调用accept,继续接受下一个连接请求。在已建立的连接上,从属服务器进程就用这个新创建的套接字传送和接收数据。数据通信结束后,从属服务器进程就关闭这个新创建的套接字,同时这个从属服务器也被撤销。

总之,在任一时刻,服务器中总是有一个主服务器进程和零个或多个从属服务器进程。主服务器进程用原来的套接字接收连接请求,而从属服务器进程用新创建的套接字和相应的客户建立连接并可进行双向传送数据。

②客户端的系统调用

当使用TCP协议的客户已经用调用socket创建了套接字后,客户进程就调用connect,以便和远地服务器建立连接(这就是主动打开,相当客户发出的连接请求)。在connect系统调用中,客户必须指明远地端点(即远地服务器的IP地址和端口号)。

Ⅱ、数据传送阶段

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

调用send需要三个变量:数据要发往的套接字的描述符、要发送的数据的地址以及数据的长度。通常send调用把数据复制到操作系统内核的缓存中。若系统调用的缓存已满,send就暂时阻塞,直到缓存有空间存放新的数据。

调用recv也要三个变量:要使用的套接字的描述符、缓存的地址以及缓存空间的长度。

Ⅲ、连接释放阶段

调用close释放连接和撤销套接字。有些系统调用在一个TCP连接中可能会循环使用。UDP服务器由于只提供无连接服务,因此不使用listen和accept系统调用。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1、独创 web服务器、数据库和应用程序全部自动傻瓜安装,建立企业信息中枢只需1分钟 2、客户机无需安装专用软件,使用浏览器即可实现全球办公 3、支持多级部门/成员单位模式,全面面向集团应用 4、内置工作流系统,通过傲视同群的“智能表单设计”、灵活的自定义流程,实现各项业务流程的管理,文件流转及审批 5、完善灵活的菜单自定义机制,方便挂接外部的B/S、C/S或单机版系统,具有良好的扩展性 6、独特的界面主题功能,允许创建多种界面主题,每个用户均可选择不同风格的界面 7、集成IM Anywhere 即时通讯工具,实现类似企业QQ的即时消息、文件发送与共享、消息广播等 8、集成Internet邮件管理组件,提供 web方式的远程邮件服务 9、内置Office文档在线编辑控件,支持文档自动上传,手写签名、电子印章、全文批注,可限制只能阅读文件而不能下载或打印 10、集成手机短信组件,重要信息可直接发送到员工手机,支持群发短信 11、集成网络硬盘组件,提供便捷的局域网、广域网文件共享方案 12、集成商业管理组件,轻松的管理客户、供应商资料和产品销售记录 13、集成公告、内部邮件、即时短信、文件柜、聊天室、论坛等模块,提供企业内部信息交流的多种方式 14、集成考勤管理、员工**程安排查询、员工工作**志查询、会议管理、车辆管理、工作计划等模块,提供企业管理者全新的管理工具 15、集成电子词典、RSS新闻等工具 可使您工作娱乐两不误! NVT Office World网络智能协同办公系统简介    NVT Office World 网络智能办公系统是适用于企事业单位的通用型网络办公软件,融合了远传数码科技长期从事管理软件开发的丰富经验与先进技术,该系统采用领先的B/S(浏览器/服务器)操作方式,使得网络办公不受地域限制。    系统集成了包括内部电子邮件、短信息、公告通知、**程安排、工作**志、通讯录、考勤管理、工作计划、网络硬盘、工作流、讨论区、投票、聊天室、文件柜、人事档案、工资管理、人员考核、办公用品、会议管理、车辆管理、图书管理、手机短信、CRM、列车时刻查询、电话区号查询、邮政编码查询、法律法规查询、万年历、世界时间等数十个极具价值的功能模块。    NVT Office World 在功能上媲美售价数十万元的网络办公系统,在安装维护上更提供了采用独有技术开发的傻瓜型安装工具、配置工具和数据库管理工具, 用户可在1分钟内自行安装完毕,无需专业人员即可自行维护。    NVT Office World 采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠。 数据存取集中控制,避免了数据泄漏的可能。提供数据备份工具,保护系统数据安全。多级的权限控制,完善的密码验证与登录验证机制更加强了系 统安全性。    软件价格定位着重考虑了不同用户的购买能力,所以实际上软件价格是远低于其价值的,企业只需很小的投入,就可以带来效率与效益的提升。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值