简介
WSP协议WAP协议体系中会话层使用的协议。WSP协议中提出了性能,会话管理等概念,并定义了两种会话模式:面向连接的会话模式和无连接的会话模式。面向连接的会话模式又被划分成了六个工具:会话管理工具、方法调用工具、异常管理工具、会话恢复工具、推和确认推工具,其中最重要的仍然是它的协议数据报文的格式,即它涉及的方法、报头、性能及编码方案,知名报头处理1。
WSP为处于较高层次上的应用层提供两种会话服务的一致接口。第一种会话服务是面向连接的服务,它工作在事务层协议之上:第二种会话服务是无连接的服务,它工作在安全或非安全的数扼报服务之上。WSP目前能够提供最大限度适应浏览应用(WSP/B)的业务。WSP/B提供HTTP1.1功能,并且具有新的特点。例如具有较长会话存活期,能够提供数掘推、能力协商、会话挂起/恢复等通用工具。WSP族中的协议适用于具有相对的较长延迟时间的低带宽承载网络2。
WSP原理为了减少网络传输量,WSP采用紧缩二进制传输方式,即预先对待传物的教据进行压缩编码,将编码后的二进制形式作为数据发送出去。其编码方法的基本要点是3:
对频繁使用的名字进行统一斌值。如上述请求中Accept赋值为OX00,Aceept—Language赋值为OX03(2)引入头码页(headercodepage)。WAP允许最多可定义255个头码页,其中第l页为缺省页每一头码页可定义128个名字并对名字统一赋值,这128个名字可认为是一套独立的名字空间,它和其它头码页是相互独立的,头码页内名字的具体含义决定于所属头码页的具体定义。当想从某一头码页转移到另一头码页时,只需在转换处插入一个移位序列即可。根据这种方法,可定义大量的名字并对它们进行赋值,赋值的结果是每个名字只有一个八位组,这比用名字本身的文本形式简短得多。
引入可变长度无符号整数uintvaF(Variable1engthtinsignedinteger)数据类型。WSP采用二进制流传输形式,必须要有一种机制来指明某个特定数据段的长度。且这个长度值有大有小,如果采用一个固定长度的数据类型(如int,16位)来指示这个长度,则为了能表示出最大长度值而不得不把这个固定长度定得足够大,这对表示较小的长度值是巨大的浪费。因此,WSP采用了一种长度可变的数据类型uintvar来指示长度。该数据类型具体定义是:unitvar变量每个八位组只使用其中的低7位来表示数据。最高位用来指示下一个八位组是否还属于uintvar变量范围,每个unitvar变母的第一个八位组的最高位必为l。例如,若要表示长度值OX87A5(1000011110100101)时,对应的uintvar数据类型表示为:
特定数据类型的值用二进制形式表示.这些数据类型有Date,Integer,QualititYfactors和Deltasecond等。
去掉所有的冗余信息例如,在功能协商时,如果服务器同意客户方提出的功能,则响应时这些功能值就不再作为应答返回给客户方,而客户检查到没有对应功能的数据时,就默认对方已经同意自己的功能请求.
WML和WML一Script采用压缩形式.压缩过程是在WAE应用层完成的。对于文本格式的WMLN转换成二进制WML,对于WML—Script则转换成与具体物理机器或虚拟机器有关的字节码ByteCode。
WSP功能WAP结构中的会话层协议被称为无线会话协议一WSP.WSP为WAP中更高水平应用层的两种会话服务提供了两种服务模式:第一种是连接模式的服务:运行于事物处理层WTP之上:另一种是无连接的服务:运行于安全的或不安全的数掘报传输服务WDP之上。
WSP目前提供的服务最适合于浏览应用。WSP提供了HTTP1.1的功能,并增加了互操作的新特性,如长生命会话,为数据Push提供通用的工具,容量协商和会话悬挂/恢复。wsP家族的协议针对低带宽的底层承载网络和相对的高延迟进行了优化。
具体的说,WSP主要有以下的功能4:
基本功能WSP设计的核心是二进制形式的HTTP,因此发送给Server的request和发给C1ient的response都包含头部(meta—information)和数据。所有在HTTPl.1中定义的方法都被支持。而且容量协商可以协商一套request方法,因此维持了与HTTP1.1应用的兼容性。
WSP为应用层提供类型数据的传输。HTTPI.1内容的头部以扩展的方式用于定义内容的类型、字符集编码、语占等。并且压缩的二进制编码对于所知道的头部进行定义以减少协议头部的负荷。WSP同样指定了一个压缩的复合数据格式,它为符合数据对象的每个部分提供了内容的头部。这在语义上与二进制形式用于HTTPl.1的MIME(Multipurpose Internet Mail Extension protoc01)”multipartlmixed”格式相同。
WSP本身不解释request和reply的头部信息。作为会话产生过程的一部分,在会话生命周期内保持不变的request和replY头部在C1ient和Server的服务使用者之间进行交换。其中可以包含可接受的内容类型、字符集、语言、设备容量和其他的静态参数。WSP将在C1ient和Server间传递会话头部,以及request和response头部,而不增减其内容。
WSP的生命周期并不受下层的传输约束。会话可以在闲置时挂起,来释放网络资源或节约电量。一个轻量的会话重建协议允许无完整的会话建立载荷条件下的会话恢复。会话可在不同的承载网络上恢复4。
扩展功能WSP允许对等体之间进行扩充性能的协商。这使得完整、高性能的实现如同基本、简单的实现一样。
WSP为一个处理的确认提供可选的机制来添加其头部信息(meta—information)。这使得C1ient的应用与Server之间进行完全处理特定信息的通信。
WSP提供了push和pu]1的数据传输。Pull利用从HTTP1.1来的request/response机制:并且WSP提供了三个push机制用于数据传输:
在已存在的会话环境下,证实的数据push;
在己存在的会话环境下,非证实的数据push;
在己无存在的会话环境下,非证实的数据push;
证实的数据push机制允许在会话的任何时候,服务器把数据推到客户。服务器收到push己传递的证实。
在已存在会话中,无证实的push像可靠的数据push一样,提供了类似的功能,但无证实。非证实的push也可在无己存在的会话中进行,在该情况下,一个默认的会话环境被假定。非证实的会话外的push可用于在不可靠的传输中发送单向消息。
WSP可选支持异步请求,因此一个客户可同时向服务器发多个请求。这样提高了空中传输的效率,因为多个请求和应答可被结合在很少的消息中。这也提高了延迟,因为每个请求的应答在C1ient可行时即发送给它。
WSP划分头部域用headcodepages.每个codepage仅能定义一个有限数目的编码,对所知的头部域名,这使其以更紧密的方式代表。在一个特定的codepage中,超过己知域名标识仍不是~个问题,因为VfSP指定了从一个headercodepage转到另一个的机制4。
WSP类型面向连接的会话服务连接的会话服务分为一些功能,部分是可选的。人多数的功能都是异步的,因此通过会话连接的客户和服务器之间的操作是不同的。
会话管理功能;
方法(Method)引用功能;
例外报告功能;
Push功能;
确认的push功能;
会话恢复功能。
其中会话管理和例外报告总是可行的,其他的功能则由会话建立时的容量协商控制。会话管理允许Client和Server连接并进行功能和协议选项的协商。服务器可以拒绝连接尝试,并且可以将客户指向其他的服务器。在会话建立期间,客户和服务器可以交换属性信息,这些属性用于在会话期间保持可用。服务器和客户的用户服务都可以中止会话,由对等层最终通知终止。由服务提供者或管理者引起的中止也可以通知给用户。
Method调用允许客户要求服务器执行一个操作并返回结果。可用的操作是HTTPmethods中的[RFC2616]或为用户定义的扩充操作,应适合于request—reply或处理模式。不管成功与否,在Client和Server中的服务用户总是被通知处理完成。失败可能由服务用户或服务提供者发起的中止引起的。
例外报告允许服务提供者通知用户那些不和特定处理相关的事件,并不会引起在会话中状态的变化。Push功能利用共享的会话信息,允许Server向Client发送未被请求的信息。该功能无证实,因此可能是不可靠的。确认的push功能与push功能相似,但client证实收到的消息。Client也可以选择中止push,server将被通知。
会话恢复功能:包括将会一话挂起并将会话状态保留的方法。但对等体均知道Client恢复会话,进一步的通信才是可能的。该机制同样用于处理:服务提供者检测到将来的通信己经不可能,直到服务用户或管理实体采取了正确的措施为止。它同样可用于将会话转到另一个可替代的承载网络,该网络较前一个有更适当的特性。该功能应被实现以保证在特定网络环境中的合理行为4。
面向无连接的会话服务无连接的会话服务提供无证实的功能,可以在层用户之间交换内容实体。与连接模式的服务相似,提供的服务是异步的。仅Methodlnvocation和Push功能可行。功能是无证实的,因此对等体之f刚的通信可能是不可靠的。无连接的会话服务直接建立在WDP之上,而不使用WTP的功能集4。