应用层也称为
应用实体(AE),它由若干个特定应用服务元素(SASE)和一个或多个公用应用服务元素(CASE)组成。每个SASE提供特定的应用服务,例如文件运输访问和管理(FTAM)、电子文电处理(MHS)、
虚拟终端协议(VAP)等。CASE提供一组公用的应用服务,例如联系控制服务元素(ACSE)、可靠运输服务元素(RTSE)和远程操作服务元素(ROSE)等。
基本简介
开放式系统互连 (Open Systems Interconnection reference,OSI) 参考模型是一种抽象的分层模型。
OSI七层网络参考模型:
Layer 7:应用层(Application Layer)
Layer 6:表示层(Presentation Layer)
Layer 5:会话层(Session Layer)
Layer 4:传输层(Transport Layer)
Layer 3:网络层(Network Layer)
Layer 2:数据链路层(Data Link Layer)
Layer 1:物理层(Physical Layer)
TCP/IP协议模型:
应用层(Application Layer);
传输层(Transport Layer);
Internet层/网络层;
网络接入层(Network Access Layer)
应用层(Application Layer):该层为用于通信的应用程序和用于消息传输的底层网络提供接口。
网络应用是计算机网络存在的原因,而应用层正是应用层协议得以存在和网络应用得以实现的地方。
应用层(Application layer)是七层OSI模型的第七层。应用层直接和
应用程序接口并提供常见的
网络应用服务。应用层也向
表示层发出请求。应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务.其服务元素分为两类:公共应用服务元素CASE和特定应用服务元素SASE.
CASE提供最基本的服务,它成为应用层中任何用户和任何服务元素的用户,主要为应用
进程通信,分布系统实现提供基本的控制
机制;特定服务SASE则要满足一些特定服务,如文卷传送,访问管理,作业传送,银行事务,订单输入等。这些将涉及到
虚拟终端,作业传送与操作,文卷传送及访问管理,远程数据库访问,图形核心系统,
开放系统互连管理等等。
应用层的软件
1、 网络感知应用程序:
应用程序是指人们用于网络通信的软件程序。有些终端用户应用程序是网络感知程序,即这些程序实现应用层协议,并可直接与协议栈的较低层通信。电子邮件客户程序和 Web 浏览器就属于这种类型的应用程序。
2、 应用层服务[1]
如何实现一个网络应用
1. 选择一个合适的网络应用体系结构;
2. 根据所选的网络应用体系结构,确定客户进程和服务器进程;
3. 确定客户进程和服务器进程的端口号;
4. 确定客户进程和服务器进程的IP地址;
5. 选择一个合适的应用层协议;
6. 考虑网络应用所需的服务。
功能特点
属于应用的概念和协议发展得很快,使用面又很广泛,这给应用功能的标准化带来了复杂性和困难性。比起其它层来说,应用层需要的标准最多,但也是最不成熟的一层。但随着应用层的发展,各种特定应用服务的增多,应用服务的标准化开展了许多研究工作,
ISO已制定了一些国际标准(IS)和国际标准草案(DIS)。因此,通过介绍一些具有通用性的协议标准,来描述应用层的主要功能及其特点。
主要是提供网络任意端上应用程序之间的接口。
运输访问和管理
文件运输与远程文件访问是任何
计算机网络最常用的两种应用。文件运输与
远程访问所使用的技术是类似的,都可以假定文件位于
文件服务器机器上,而用户是在顾客机器上并想读、写而整个或
部分地运输这些文件,支持大多数现代文件服务器的关键技术是虚拟文件存储器,这是一个抽象的文件服务器。虚拟文件存储给顾客提供一个标准化的
接口和一套可执行的标准化操作。隐去了实际文件服务器的不同内部
接口,使顾客只看到虚拟文件存储器的标准接口,访问和运输远地文件的
应用程序,有可能不必知道各种各样不兼容的文件服务器的所有细节。
电子邮件
计算机网络上
电子邮件的实现开始了人们
通信方式的一场革命。
电子邮件的吸引力,在于象电话一样,速度快,不要求
双方都同时在场,而且还留下可供处理或多处投递的书写文电
拷贝。
虽然
电子邮件被认为只是文件运输的一个特例,但它有一些不为所有文件运输所共有的特殊性质。因为,
电子邮件系统首先需考虑一个完善的人机界面,例如写作,编辑和读取
电子邮件的
接口,其次要提供一个运输邮件所需的邮政
管理功能,例如管理邮件表和递交
通知等。此外,
电子邮件与通用文件运输的另一个差别是,邮件文电是最高度结构化的
文本。在许多系统中,每个文电除了它的内容外,还有大量的附加信息域,这些信息域包括发送方名和
地址、接收方名和地址、投寄的日期和时刻、接收复写副本的人员表、失效日期、重要性
等级、安全许可性以及其它许多附加信息。1984年CCITT制定了叫做MHS(文电处理系统)的X.400建议的一系列协议。ISO试图把它们收进OSI的应用层,并叫做
MOTIS(面向文电的正交换系统)。由于X.400结构的缺少,这种吸收不是很简单。1988年又修改了X.400,力争与
MOTIS会聚。本章我们将介绍MHS。
虚拟终端
由于种种
原因,可以说终端标准化的工作已完全失败了。解决这一问题的OSI方法是,定义一种
虚拟终端,它实际上只是代有实际终端的抽象
状态的一种抽象
数据结构。这种抽象
数据结构可由
键盘和计算机两者操作,并把数据结构的当前
状态反映在
显示器上。计算机能够查询此抽象
数据结构,并能改变此抽象数据结构以使得
屏幕上出现输出。
其它功能
其它应用已经或正在标准化。在此,要介绍的是
目录服务、远程作业录入、图形和信息通信。
(1)
目录服务:它类似于电子电话本,提供了在网络上找人或查到可用服务
地址的方法。
(2)远程作业录入:允许在一台计算机上工作的用户把作业提交到另一台计算机上去执行。
(3)图形:具有发送如工程图在远地显示和标绘的功能。
(4)信息通信:用于家庭或办公室的公用
信息服务。例如
智能用户电报、电视图文等。
联系控制服务元素]ACSE和up][2]sup]提交、并发与恢复CCR b]
随着应用层的发展,各种特定应用服务增多,当初ISO7498中定义的应用层服务已大部
分划归到公共应用服务元素(CASE)中去了,而且许多应用有一定数据的共同部分,几乎
所有这些应用都需要管理连接。为了避免每一个新的应用都要重新从头开始,ISO决定把这
些公共部分实行标准化。下面描述其中最重要的两个。
(1)联系控制服务元素ACSE
联系控制服务元素提供应用连接的建立和正常或异常释放的功能。
所谓联系是指两个应用实体之间的连接;联系控制服务元素是应用层的基本核心子集
。提出以下几个ACSE原语:
1)A一ASSOCIATE建立一个联系
2)A一RELEASE 释放一个联系
3)A一ABORT 用户发起的夭折
4)A一P一ABORT 提供者发起的夭折
每一条ACSE原语与相应的表示层服务原语有一一映照关系,也即应用联系与表示连接
是同时建立、同时释放的。
(2)托付、并发和恢复(CCR)
CCR的主要目的就是协调若干个(相互关联的)应用联系,为基本多应用联系的信息处
理任务提供一个安全和高效的环境。几乎所有的需要可靠性操作的应用都使用CCR。
在CCR模型中,数据分为两大类:安全数据和常规数据,所谓安全数据是那些能经受应
用失败,并且在应用联系恢复到正常后可以重新引用的数据。通常是把安全数据存储在外
部存储介质中。为了保证安全数据的完整性和可靠性,对它的修改要用一些特定的规则,
例如特定的封锁机制。所谓常规数据是那些在应用联系工作期间并没有被保存在可靠存储
区域的数据。例如在缓冲区或工作栈中。当应用联系受到破坏后,这些数据将不再可用。
协议举例
DNS
DNS最早于1983由保罗.莫卡派
乔斯(Paul Mockapetris)发明;原始的技术规范在882号因特网标准草案(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS技术规范,并废除了之前的第882和883号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS技术规范
部分的改动。
早期的域名必须以英文句号“.”结尾,,这样DNS才能够进行域名解析。如今
DNS服务器已经可以自动补上结尾的句号。
当前,对于域名
长度的限制是63个字符,包括www.和.com或者其他的扩展名。域名同时也仅限于
ASCII字符的一个子集,这使得很多其他语言无法正确表示他们的
名字和单词。基于Punycode码的IDNA系统,可以将Unicode
字符串映射为有效的DNS
字符集,这已经通过了验证并被一些
注册机构作为一种变通的方法所采纳。
HTTP
HTTP的发展是万维网协会(World Wide Web Consortium)和Internet工作小组(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的
RFC,其中最著名的就是RFC 2616。RFC 2616定义了
HTTP协议中一个现今被广泛使用的版本——HTTP 1.1。
HTTP是一个
客户端和服务器端请求和应答的标准(
TCP)。客户端是
终端用户,服务器端是网站。通过使用
Web浏览器、
网络爬虫或者其它的工具,客户端发起一个到服务器上指定
端口(默认端口为80)的
HTTP请求。(我们称这个客户端)调
用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和
图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,比如代理,
网关,或者隧道(tunnel)。尽管
TCP/IP协议是互联网上最流行的应用,HTTP协议并没有
规定必须使用它和(基于)它支持的层。事实上,HTTP可以在任何其他
互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个
端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个
状态消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
HTTP使用TCP而不是UDP的
原因在于(打开一个)一个网页必须传送很多数据,而
TCP协议提供传输控制,按顺序组织数据,和错误纠正。具体细节请参考‘TCP和UDP的不同’。
通过HTTP或者HTTPS协议请求的资源由
统一资源定位器(Uniform Resource Identifiers,或者,更准确一些,URI)来标识。
FTP
FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输
数据流,而端口21用于传输
控制流,并且是
命令通向ftp服务器的进口。当数据通过数据流传输时,
控制流处于空闲
状态。而当
控制流,空闲很长时间后,客户端的
防火墙,会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话,会被防火墙断开;传输会产生一些错误。
FTP实现的目标:
促进文件的共享(计算机程序或数据)鼓励间接或者隐式的使用远程计算机向用户屏蔽不同
主机中各种文件存储系统(File system)的细节可靠和高效的传输数据
缺点:
密码和文件内容都使用明文传输,可能产生不希望发生的窃听。因为必须开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动
模式下的FTP流量。这个问题,通过使用被动模式的FTP,得到了很大解决。服务器可能会被告知连接一个第三方计算机的保留端口。此
方式在需要传输文件数量很多的小文件时,效能不好FTP虽然可以被终端用户直接使用,但是它是设计成被FTP客户端程序所控制。
运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要账号就可以登录服务器,默认
情况下,匿名用户的用户名是:“anonymous”。这个账号不需要密码,虽然通常要求输入用户的邮件
地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于
FTP服务器的配置情况。
应用层协议为应用程序之间的通信提供规则,为确保通信畅通,源主机和目的主机上所实现的应用层协议必须一致。
应用层协议的功能:
l 为通信双方定义过程;
l 定义消息类型;
l 定义消息的语法;
l 定义任何信息性字段的含义;
l 定义发送消息的方式和预期的响应;
定义与下一层之间的交互。