应用层服务及协议
点对点网络及应用程序网络模型中除了客户端/服务器模型外,还有点对点(P2P )模型。点对点网络模型有两种不同形式:点对点网络设计和点对点应用程序。这两种形式具有相似的特征,但实际工作过程却大不相同。一
点对点网络及应用程序
网络模型中除了客户端/服务器模型外,还有点对点(P2P )模型。点对点网络模型有两种不同形式:点对点网络设计和点对点应用程序。这两种形式具有相似的特征,但实际工作过程却大不相同。
一、点对点网络
在点对点网络中,两台或两台以上的计算机通过网络互联,它们共享资源(如打印机和文件)时可以不借助专用服务器。每台接入的终端设备(称为" 点" )既可以作为服务器,也可以作为客户机。在某项事务中,作为服务器的计算机也可以同时成为其他服务器的客户端。如图3-9所示,计算机的角色根据请求的不同在客户端和服务器之间切换。本图显示了一个对等节点向另一个请求打印服务,同时作为一个文件服务器共享它的文件。
,一类P2P 应用程序中采用混合系统,即共享的资源是分散的,但指向资源位置的索引存储在集中目录中。在混合系统中,每台对等设备通过访问索引服务器获取存储在另一台对等设备中的资源位置。索引服务器也可以帮助连接两台对等设备。但连接完成后,通信将只在两台对等设备之间完成,而不需要与索引服务器进行额外通信。
点对点应用程序可以用于点对点网络、客户端/服务器网络以及Internet 。
DNS 服务及协议
我们已经理解了应用程序如何为用户提供接口,以及如何访问网络。现在,我们将讨论一些常用的协议。
我们将在下文中看到,传输层使用某种编址方案,称为端口号。端口号识别应用程序及应用层服务(即源数据和目的数据)。服务器程序通常使用客户机已知的预定义端口号。当我们研究不同的TCP/IP应用层协议和服务时,我们将参考与这些服务相关联的TCP 和UDP 端口号。这些服务包括:
域名系统(DNS )-TCP/UDP端口53;
超文本传输协议(HTTP )-TCP 端口80;
简单邮件传输协议(SMTP )-TCP 端口25;
邮局协议(POP )-UDP 端口110;
Telnet-TCP 端口23;
动态主机配置协议(DHCP )-UDP 端口67;
文件传输协议(FTP )-TCP 端口20和端口21;
DNS 服务及协议
在数据网络中,设备以数字IP 地址 标记,从而可以参与收发消息。但是人们很难记住这些数字地址。于是,人们创建了可以将数字地址转换为简单易记名称的域名系统。
在Internet 上,更便于人们记忆的是www.cisco.com 这样的域名,而不是该服务器的实际数字地址198.133.219.25。而且,即使Cisco 决定更换数字地址,也不会给用户造成影响,因为其域名 仍然是www.cisco.com 。如图3-11所示,公司只需要将新地址与现有域名链接起来即可保证连通性。在小型网络中,维持域名和真实地址之间的映射很简单。然而,当网络扩大且设备数量增加时,这种人工控制系统就显得捉襟见肘。
,于是域名系统(DNS )应运而生,专门为大型网络提供域名的地址解析。DNS 使用分布式服务器来解析与这些数字地址相关联的名称。
一、DNS 如何工作
DNS 协议定义了一套自动化服务,该服务将资源名称与所需的数字网络地址 匹配。协议涵盖了查询格式、响应格式及数据格式。DNS 协议通信采用单一格式,即消息格式。该格式用于所有类型的客户端查询和服务器响应、报错消息以及服务器间的资源记录 信息的传输。
DNS 是一种客户端/服务器服务。然而,它与我们讨论的其他客户端/服务器服务不同。其他服务使用的客户端是应用程序(如Web 浏览器、电子邮件客户端程序),而DNS 客户端本身就是一种服务。DNS 客户端有时被称为DNS 解析器,它支持其他网络应用程序和服务的名称解析。
我们通常在配置网络设备时提供一个或者多个DNS 服务器地址,DNS 客户端可以使用该地址进行域名解析。Internet 服务供应商(ISP )往往会为DNS 服务器提供地址。当用户的应用程序请求通过域名连入远程设备时,DNS 客户端将向某一域名服务器请求查询,获得域名解析后的数字地址。
用户还可以使用操作系统中名为nslookup 的实用程序手动查询 域名服务器,来解析给定的主机名。该实用程序也可以用于检修域名解析的故障,以及验证域名服务器的当前状态。
在例3-1中,输入nslookup 后,即显示为主机配置的默认DNS 服务器。本例中,DNS 服务器是dns-sjk.cisco.com ,其地址是171.68.226.120。
例3-1 nslookup 命令
,随后,你可以键入要获取地址的主机名或者域名。在例3-1中的第一个查询框,输入进行查询。相应的域名服务器显示地址:198.133.219.25。
虽然例3-1中所示的查询只是简单测试,nslookup 实用程序还有很多选项,可以用于大量测试以及DNS 进程验证。
二、域名解析与缓存
DNS 服务器使用域名守护程序(通常简称为named 守护程序)提供域名解析。DNS 担当Internet 的电话簿职能:它将人可读的计算机主机名,如http://www.cisco.com翻译成网络设备需要用来分发信息的IP 地址。
DNS 服务器中存储不同类型的资源记录,用来解析域名。这些记录中包含域名、地址以及记录的类型。
这些记录有以下类型:
A 记录-终端设备地址;
NS 记录-权威域名服务器;
CNAME 记录-名的规范域名(或称为完全合格域名[FQDN]);适用环境是单一网络地址对应多个服务,但每个服务在DNS 服务器上都有各自条目;
MX 记录-邮件交换记录;它将域名映射到用于该域的一系列邮件交换服务器上。 当客户端提出查询请求时,服务器的named 守护进程将首先检索自己的记录,以查看是否能够自行解析域名。如果服务器不能通过自身存储的记录解析域名,它将连接其他服务器对该域名进行解析。
该解析请求将会发送到很多服务器,因此需要耗费额外的时间,而且耗费带宽。当检索到匹配信息时,当前服务器将该信息返回至源请求服务器,并将匹配域名的数字地址临时保存在缓存 中。
因此,当再次请求解析相同的域名时,第一台服务器就可以直接调用域名缓存中的地址。通过缓存机制,不但降低了DNS 查询数据网络的流量,也减少了上层服务器工作的负载。在安装了Windows 系统的个人计算机中,DNS 客户端服务可以预先在内存中存储已解析的域名,从而优化DNS 域名解析性能。在Windows XP或者Windows 2000操作系统中,输入ipconfig/displaydns命令可以显示所有DNS 缓存条目。
三、DNS 层次
域名系统采用分级系统创建域名数据库,从而提供域名解析服务。该层级模型的外观类似一棵倒置的树,枝叶在下,而树根在上。
,域名系统正是依靠这些分散的、分层级的服务器来保存并维护资源记录的。服务器根据资源记录中的域名列表解析域名,而备用服务器也可以处理域名解析请求。如果指定服务器中有与其域级别相对应的资源记录,则该服务器可以称为这些记录的主域名 服务器。
例如,对于mail.cisco.com 记录而言,它位于比cisco.netacad.net 更高层级的服务器上(尤其是cisco.com 域中的服务器上)。因此,cisco.netacad.net 域中的某个域名服务器就不是mail.cisco.com 记录的主域名服务器。
WWW 服务及HTTP
,当在Web 浏览器中输入一个Web 地址(或者URL 地址)时,Web 浏览器将通过HTTP 协议建立与服务器上的Web 服务之间的连接。一提到Web 地址,大多数人往往想到统一资源定位器(URL )以及统一资源标识符(URI )。
网址http://www.cisco.com/index.html就是一种URL 地址,它表示某个特定资源位于cisco.com 服务器上的名为index.html 的网页中。
Web 浏览器是一种客户端应用程序,我们的计算机使用该程序连接万维网,并访问存储在Web 服务器上的资源。与多数服务器进程一样,Web 服务器以后台服务的方式运行,并支持不同类型的文件。
Web 客户端首先连接服务器,然后发送资源请求,从而访问需要的资源内容。服务器响应资源请求。浏览器对收到的资源进行解释,并将解释后的数据呈现给用户。
浏览器可以解释并显示很多种数据类型,如纯文本或构建网页的超文本标记语言
(HTML )。但是,除此之外的其他数据类型需要其他服务或程序的支持,即我们常说的插件。为便于浏览器识别所接受文件的类型,服务器应指定文件中包含的数据类型。
为了更好地理解Web 浏览器和Web 客户端的交互原理,我们可以研究一下浏览器是如何打开网页的。在本例中,我们采用如下URL 地址:http://www.cisco.com/web-server.htm。
首先,浏览器对URL 地址的三个组成部分进行分析:
(服务器名称);
web-server.htm (所要请求的文件名称)。
然后,浏览器将通过域名服务器将www.cisco.com 转换成到数字地址,用它连接到该服务器。根据HTTP 协议的要求,浏览器向该服务器发送GET 请求,并要求访问web-server.htm 文件。被请求服务器随即将被请求网页的HTML 代码发送给浏览器。最后,浏览器解读HTML 代码并将网页内容显示到浏览器窗口中。
超文本传输协议(HTTP )是TCP/IP协议族中的一种协议。该协议是为了发布和检索HTML 页面而开发出来的,现在用于分布式协同 信息系统。在万维网中,HTTP 是一种数据传输协议。同时,它还是最常用的应用程序协议。
HTTP 中规定了请求/响应的协议。当客户端(尤其是Web 浏览器)向服务器发送请求消息时,HTTP 协议将规定客户端请求网页消息的类型,以及服务器响应信息的类型。常用的三种消息类型包括:
,GET
POST
PUT
POST 和PUT 消息用于向Web 服务器发送上传数据的请求。例如,当用户在Web 页面的表单中输入数据时,一条包含数据的POST 消息将被发送到服务器上。PUT 用于向Web 服务器上传资源或内容。
虽然HTTP 是一种很灵活的协议,但它并不安全。POST 消息以纯文本格式向服务器上传信息,该信息可能被其他程序中途截取、阅读。与之相同的是,服务器的响应(尤其是HTML 页面)也不加密。
为了在Internet 中进行安全通信,人们使用安全超文本传输(HTTPS )协议来访问或发布Web 服务器信息。HTTPS 可以采用身份验证和加密(encryption )两种方式保障客户端和服务器间的数据传输安全。HTTPS 中还指定了应用层和传输层之间数据通信的附加规则。
电子邮件服务及SMTP/POP协议
电子邮件是一种最常见的网络服务。由于它的简单快捷,人们的沟通方式发生了巨大变革。但是,如果要在一台计算机或其他终端设备上运行电子邮件,仍需要一些应用程序和服
,电子邮件客户端可以使用POP 协议从电子邮件服务器接收电子邮件消息。从客户端或者从服务器中发送的电子邮件消息格式以及命令字符串必须符合SMTP 协议的要求。通常,电子邮件客户端程序可同时支持上述两种协议。
电子邮件服务器进程-MTA 及MDA
电子邮件服务器运行两个独立的进程:
邮件传送代理(MTA );
邮件分发代理(MDA )。
邮件传送代理(MTA )进程用于发送电子邮件。如图3-15所示,MTA 从MUA 处或者另一台电子邮件服务器上的MTA 处接收信息。根据消息标题的内容,MTA 决定如何将该消息发送到目的地。如果邮件的目的地址位于本地服务器上,则该邮件将转给MDA 。如果邮件的目的地址不在本地服务器上,则MTA 将电子邮件发送到相应服务器上的MTA 上。
,在图3-16中,你可以看到邮件分发代理(MDA )从邮件传送代理(MTA )中接收了一封邮件,并执行了分发操作。MDA 从MTA 处接收所有的邮件,并放到相应的用户邮箱中。MDA 还可以解决最终发送问题,如病毒扫描、垃圾邮件过滤以及送达回执处理。
大多数的电子邮件通信都采用MUA 、MTA 以及MDA 应用程序。但其他一些备选程序也可以用于电子邮件发送。可以将客户端连接到公司邮件系统(IBM Lotus Notes、Novell Groupwise 或者Microsoft Exchange)。这些系统通常有其内部的电子邮件格式,因此它们的客户端可以通过私有协议与电子邮件服务器通信。
上述邮件系统的服务器通过其Internet 邮件网关 对邮件格式进行重组,使服务器可以通过Internet 收发电子邮件。
还有一种情况是,未使用MUA 的计算机仍可以通过Web 浏览器连接邮件服务,从而可以收发邮件。还有些计算机则运行自己的MTA 并自行管理多个域之间的电子邮件服务。例如,在同一家公司工作的两个职员使用私有协议相互发送电子邮件时,他们的邮件可能完全停留在公司的电子邮件系统内。
SMTP 协议的消息格式包括一套严格的命令集和回复集。这些命令支持SMTP 协议下的操作,如会话初始化、邮件交换、邮件转发、验证邮箱名、扩展邮件列表以及邮件交换的开启和关闭。
SMTP 协议下常用的命令包括:
HELO-将SMTP 客户端进程对应到SMTP 服务器进程;
EHLO-HELO 的新形式,包括服务扩展;
MAIL FROM-标志发件人;
RCPT TO-标志收件人;
DATA-标志消息内容。
FTP