无线事务协议(WTP)向交互式“浏览”(请求/响应)应用程序提供必要的服务。在一次浏览会话中,客户端向服务器端(可能是固定的,也可能是移动的)请求信息,服务器回答其请求的信息。这种请求/响应过程被称作“事务”。协议的目的是可靠地发送事务,并平衡应用程序所需的可靠性和这种可靠性所需的开销。
WTP运行在数据报服务和可选择的安全服务之上,它被定义为一个轻量级的面向事务的协议。适合于瘦客户(移动端)的实现,可以有效地运行在无线数据报网络上。使用WTP的好处如下:
l 提高数据服务的可靠性。如果使用数据报服务,重传和确认是必须的,使用WTP后减轻了其上层重传和确认的负担。
l 提高了面向链接服务的效率。WTP没有明确地建立连接或拆除连接的阶段
l WTP是面向消息的。为了处理“浏览”这样的事务,它按面向服务的要求设计。
略
略
设备地址(Device Address)
分配给一个设备的唯一地址,遵循国际标准如E.164的MSISDN地址,X.121的X.25地址,RFC791的IPv4地址的格式。一个地址唯一标识一个发送或/和接收设备。
发起者(Initiator)
发起一个事务的WTP提供者称为发起者。
移动设备(Mobile Device)
指一个设备,比如一个手机,传呼,或者PDA,这些设备通过无线连接接入无线网络。虽然“移动(mobile)”一词一般指频繁移动,它也包括固定的或者静止的接入无线网络的无线设备(比如无线modem)
网络类型
网络类型指任何通过一套公告特性(比如空中接口)和标准划分的任何网络。网络类型的例子包括GSM,CDMA,IS-136,iDEN,FLEX,ReFLEX和Mobitex。每种网络类型可能包含多种基本的承载服务。
协议控制信息(Protocol Control Information:PCI)
在WTP实体之间用于协调他们共同操作而交换的信息
协议数据单元(Protocol Data Unit:PDU)
由WTP协议指定的一单元数据,包含WTP协议控制信息和可能的用户数据
响应者(Responder)
响应一个事务的WTP提供者被称为响应者。
服务数据单元(Service Data Unit:SDU)
上层级别的协议的信息单元,该信息单元定义了一个底层要求的服务
服务原语(Service Primitive)
一套抽象的在WTP用户和WTP提供者之间依赖于执行的交互。
事务(Transaction)
事务是发起者和响应者之间的交互单元。一个事务开始于发起者产生的一个invoke信息,响应者通过接收invoke参与到事务中。WTP定义了几个事务级别。Invoke信息标识了请求的事务的类型,该类型定义了完成一个事务所需要的动作。
用户数据(User Data)
在两个WTP实体之间传输的代表上层实体(比如,会话层)的数据,WTP实体为该上层提供服务。
WTP 提供者(WTP Provider)
从用户角度看,WTP提供者是提供WTP服务的所有实体将其模型化的一个抽象机器。
WTP用户(WTP User)
在单一系统中使用WTP服务的那些实体的总称的一个抽象描述。比如WAP会话协议WSP或者直接运行在WTP上的应用程序。
略
WTP的特性有以下几点:
l 三个级别事务
0级:无结果消息的不可靠消息调用
1级:无结果消息的可靠消息调用
2级:有可靠结果消息的可靠消息调用
l 可靠性通过使用唯一的事务标识、确认、复制丢失分组以及重传来实现
l 没有明确的连接建立或者连接断开阶段。明确的连接打开和/或连接关闭给通信链路增加了过多的开销
l 用户到用户的可靠性(可选)。WTP用户确认每个接收到的消息
l 事务的最后确认可以包含其它与事务有关的信息,例如性能的测试(可选)
l 在适当的地方使用了级联方式,以便在数据报传输的一个业务数据单元中传送多个协议数据单元。
l 面向消息。相互交换的基本单元是一个完整的消息,而不是一个字节流。
l 协议提供了使重发的事务数最少的机制。
l 进行中事务的中止,包括客户端和服务器未发送数据的清零,这种中止可由用户通过删除一个已请求的服务来触发。
l 为了保证消息调用的可靠性,成功和失败都要报告。如果响应者不能处理调用,就返回给发起者一个中止消息而不是结果。
l 协议允许异步事务。当数据可以利用时,响应者返回结果。
下面的小节描述了WTP的事务级别。发起事务的WTP提供者称作发起者,对事务做出响应的WTP提供者称作响应者,事务级别由发起者设置,在调用消息中发送给响应者。事务级别不能协商。
0级事务提供不可靠的数据报服务,它由需要“不可靠push”服务的应用程序使用。这个级别的目的是增大事务服务的能力,它适用于那些在一个现有的WTP会话中偶尔使用WTP发送数据报的应用程序。它不是传送数据报的主要手段,把数据报服务作为传送数据主要手段的应用程序应该使用WDP。
0级事务的过程是:调用消息从发起者发送到响应者,收端不确认该消息,发端也不重传。对于发起者来说,调用消息一经发出这个事务就终止了,对于响应者来说,调用消息一接收到这个服务就终止了。这种事务是无状态的,不能被终止。
1级的事务提供了一种可靠的数据报服务。它可以由需要“可靠push”服务的应用程序使用。
1级事务的基本过程如下:调用消息从发起者传送到响应者,收端送回对该消息的确认,为了处理可能发生的确认重传,收端要在确认消息发出后保持一段时间当前状态信息,这种重传可能是由于确认消息丢失了或发起者重传了这个调用消息;在发起者端,当确认收到时事务终止。这种事务可在任何时刻中止。
如果可利用用户的确认功能,在确认消息被送回到发起者之前,响应端的WTP用户首先要证实调用消息。
2级事务提供了基本的调用/响应事务服务。一个WSP会话可包括多个此种类型的服务。
2级事务的基本过程如下:调用消息从发起者发送到响应者,响应者明确地响应一个结果消息,这个结果消息中包含对调用消息的确认。如果响应者对这个调用服务的时间比它的确认计时器中设定的时间长,响应者可能在发送结果消息前,发送一个“hold on”确认,这样,可以避免发起者不必要地重传。响应者把结果消息发送到发起者,发起者要对结果消息进行确认,在确认发出之后,发起者也将状态信息保持一段时间。这是为了在发生丢失消息和/或响应者重传结果消息时处理可能的确认重传。在响应端,接收到确认后事务结束。这个事务可以在任何时刻中止。
若用户确认功能可用,在确认消息被发送到发起者之前,收端的WTP用户首先要证实调用消息。
本节描述了WTP与其它WAP协议之间的关系。有关WAP体系结构完整的描述,请参阅【WAP】。下表描述了为WTP用户提供服务的协议的位置。
WTP USER(如WSP) |
|
WTP |
l 事务处理 l 重传,复制拆卸,确认 l 级联和分离 |
WTLS |
l 可选择的压缩 l 可选择的加密 l 可选择的鉴权 |
数据报传输(例如WDP) |
l 端口号寻址 l 打包和拆包(如果提供) l 错误检测(如果提供) |
承载网(例如IP,GSM SMS/USSD,IS-136 GUTS) |
l 路由选择 l 设备寻址(IP地址,MSISDN) l 拆组和重组(如果提供) l 错误检测(如果提供) |
WTP在数据报传输服务上运行,它的协议数据单元是数据报的一部分,既然数据报是不可靠的,就需要WTP执行重传和发送确认来为WTP用户提供可靠的服务。如果可以,WTP还负责将多协议数据单元级联到一个传输业务数据单元之中的工作。
WAP的数据报传输在【WDP】中定义。数据报传输被要求给到来的数据路由,以到达正确的WDP用户。WDP用户通常由唯一的端口号来标识。WDP的责任是为WDP用户提供数据报服务,而不考虑承载网络的能力。幸运的是,数据报服务是一个基本的传输机制,大部分承载网络已经提供这样的服务。比如,基于IP的网络为这个服务使用UDP。
承载网络负责为数据报选择到目的设备的路由。承载网络类型(IP地址或者电话号码)的不同导致了寻址方法的不同。另外,一些网络使用动态地址分配,必须连接一个服务器来查找某个设备的当前地址。WAP协议栈中的网络地址可能包括承载类型和地址(比如[IP;123,456,789,123])。从/到具有不同地址空间的多路承载网络到同一个WAP协议栈的数据的多路传输没有被指定。
WTP没有安全机制
WTP管理实体被用来作为WTP层和设备环境之间的接口,它为WTP层提供可能影响WTP正确操作的设备环境变化信息。
WTP协议的设计假定它是运行在一个能够接收/发送数据的环境之上的。比如,该假定包含下列移动设备必须提供的基本性能:
l 移动设备位于一个适合涉及的承载服务的覆盖区域内
l 移动设备有足够的电源且电源开关打开
l 移动设备内有WTP可用的足够的资源(进程和内存)
l WTP协议正确配置
l 用户愿意接收和发送数据
WTP管理实体监视上述服务的状态和移动环境的性能,如果一个或多个假定服务不可用,就通知WTP层。比如,如果移动设备漫游到了承载业务的覆盖区之外,承载管理实体应该向WTP管理实体报告承载者不能再发送和接收了。接着,WTP管理实体应该指示WTP层关闭所有在这个承载上流动的连接。其它的例子诸如低电压将由WTP管理实体以类似的方式处理。
除了监视移动环境的状态,WTP管理实体还可被用作设置不同的WTP参数的用户接口,例如设备地址。它还可执行用户可利用的一些功能,例如“断开所有数据连接”。通常WTP管理实体处理所有与初始化、配置、动态配置以及和WTP层资源相关的问题。
因为WTP管理实体必须同移动设备的不同组件交互,且这些移动设备是跟厂商相关的,所以WTP管理实体的设计和实现不再本规范讨论范围内,它是一个实现时需要考虑的问题。
需要定义一套必须实现的WTP特性的最小集合,确保实现是可以相互操作的。WTP用户主宰了所需的WTP特性。这些特性通过附录C指定。
如果WTP提供者被要求执行一个它不支持的程序,事务必须被终止,同时返回一个合适的错误码。比如,不支持级别2的响应者接收到级别2的事务以NOTIMPLEMENTEDCL2中止码终止事务。
可以实现分片和重组(SAR:Segmentation and re-assembly)以及选择性重传来加强WTP服务。如果SAR没有在WTP中提供,协议栈的其它层必须提供该功能。比如,在IS-136中SSAR层处理SAR,在IP网络中IP[RFC791]处理SAR,而在GSM SMS/USSD中SAR通过使用拼接[GSM0340]提供SAR。实现WTP SAR的出发点是选择性重传机制,该机制在发送大消息的时候可以提高协议的空中效率。
扩展的分片和重传更加复杂,由于它可能使用基于滑动窗口的传输机制或者传统的停止等待机制.
事务的发起者指示是否支持WTP SAR。下表指示了WTP的发起者和响应者应该如何确保那些有或者没有实现WTP SAR的WTP提供者之间的相互操作性。
表一 没有SAR,有SAR,扩展SAR(ESAR)的WTP提供者之间的相互操作性
|
发起者 |
||
响应者 |
没有SAR |
SAR |
Extended SAR |
没有SAR |
完全可相互操作 |
响应者以中止码NOTIMPLEMENTEDSAR中止事务,发起者必须不使用SAR进行重新发送 |
发起者必须在发起消息中包含NumGroups TPI。响应者以中止码NOTIMPLEMENTEDSAR中止事务。发起者必须不使用SAR进行重新发送 |
SAR |
响应者不能以分片消息进行响应 |
完全可相互操作 |
发起者必须在发起消息中包含NumGroups 选项TPI。发起者通过响应者的ACK,NACK或者结果PDU中没有这个TPI知道响应者不支持ESAR |
Extended SAR |
响应者不能以分片消息进行响应 |
在发起消息中不能包括NumGroup参数的TPI |
发起者必须在发起消息中包含NumGroups 选项TPI。响应者可以使用NumGroups选项TPI响应。完全可相互操作。 |
注意1)如果不支持WTP SAR的响应者从一个支持WTP SAR的发起者接收到一个为分片的消息,则没有必要放弃事务。发起者将不知道响应者不支持WTP SAR。
这个协议的潜在使用是在一个不可靠的数据报服务上提供WSP一个可靠的事务服务。但是,协议可以被其它应用程序作为相同的通讯需要使用。