中国
在
wap是指一组而不是一个无线应用协议,使得无线终端上的业务应用开发并提供服务成为可能。其目标是通过集合电话、无线技术和因特网三项技术相互融合来提供业务平台。相应的wap也意味这一组服务的集合,就像osi协议栈一样分布于不同的层。
目前已经使用的wap协议栈有两个版本wap1.x和wap2.x, wap1.x用于大多数分组数据承载udp作为传输协议,为处理业务接入点提供了一个不可靠传输服务。wap2.x进一步将wap和因特网结合起来,基于http/tcp栈。而tcp实现包括了一些专为无线环境进行的优化,同样存在使用http无线配置的可能。


如上图所示wap协议栈与osi模型相似但重组了osi的各层。
1、wdp与wtp提供了osi协议栈的传输层中协议相似的功能。
2、wsp提供了osi协议栈的会话层中协议相似的功能。
3、wae重组了osi协议栈的应用层。


如上面两图wap信令流程所示: wap 1.x协议栈使用udp来提供传输层tsap的服务,而wap2.x使用了基于tcp/ip的http来提供面向连接的传输服务。这样的差异是因为wap
1.x协议栈wap终端与网关之间建立的是无连接的数据会话,而网关与内容服务器建立的则是基于tcp面向连接的会话,而wap2.x协议栈的wap终端与网关之间存在tcp连接,相应的有就包括了使用tcp导致的可靠性与开销。由于wap终端不包括dns客户端,因此所有url的请求都总是发送给wap网关,其地址在终端中被配置。然后wap网关来执行dns查询来与url所指定的服务器进行连接的建立,也就说dns的请求与查询是在wap网关与dns服务器之间完成的,而于wap终端本身无关。

如图所示:在ntas professional软件的wap各种测试业务的设置页面中,都有一个下载模式的下拉菜单,里面有conn_co等八个下载模式,具体所指都是什么含义呢?
这八个下载模式主要是软件开发时根据第三方开发协议的库程序所设定的,主要当软件实现打开一个wap栈的操作时,程序的相关参数项采用不同值。目前测试采用的第一项的默认选项,那么几种下载模式在实际的wap流程中的具体区别是什么呢?
下面是各个下载模式的具体含义;
cl:wap wsp connectionless
mode protocol;
co:wap wsp connection-oriented protocol;
scl:wap wsp secure
connectionless protocol;
sco: wap wsp secure
connection-oriented protocol;
pushcl: wap wsp push connectionless protocol;
http: wp-http protocol, client mode;
https :wp-http/ssl protocol, client mode;
srv http: wp-http protocol, server mode.
经过上面的wap协议栈与信令流程我们可以这样理解来区别:wsp层下可以采用wtp、wdp的方式实现也可以采用http的方式实现,同时可以选择进行连接服务与非连接服务(wsp的两种服务模式),安全模式和非安全模式(wtls可选性安全服务)。
具体来说:在wap创建一个新会话的过程中,
对于co、scl、sco的模式下意味着建立一个和wap网关建立一个异步连接。
而对于cl模式则需要分配一个wap网关的地址,
同理在http、https模式下则需要于http服务器进行连接,此时也需要分配一个http服务器的地址。
就是说在co、scl、sco的模式下wap连接方式是不同步的,首先将会初始化内部结构,分配wap网关地址,然后发送connection request请求给wap网关后退出,然后wap终端将等待连接成功、失败或者重新连接其他wap网关地址的回复信息。而其他模式的wap入栈将会不发送connection request,而wap终端也不用等待来自wap网关的消息。
对于连接配置的参数中ga和gp参数也就是我们常说的网关ip与端口号来说,
cl、co、 scl、sco模式下的wap网关地址和网关通道数。
http, https模式下的http服务器地址(其有可能是主机名,当参数赋值为空时,wap
http栈将直接连接到被请求的主机上)和服务器通道数。
srv http的连接过程则不需要这些参数。
在连接配置的参数中,会话报头信息需要配置特殊的http报头,以确保可以成功连接到wap网关和http服务器。 报头中包括http服务器的代理商以及授权的代理服务器以及wap网关的授权信息等。这主要是用来区别wap终端型号的,从而保证wap终端能力与wap提供商服务内容相一致。
目前在ntas
professional软件中报头的设置为默认值。
如果wap采用wsp栈的方式:
co、sco的模式下,这些报头信息在会话建立以及鉴权的过程中使用一次,那么在get(获取内容)与post(访问内容)时不会使用到。
cl、scl的模式下,因为在非连接模式的会话是不确定的,所以报头信息在会话建立的过程中是不会使用到的,有可能在get与post的情况下会使用到。
如果wap采用http栈的方式,在每个请求建立过程中就会有一个新的tcp会话(从wap信令流程中可以看到),在http模式下,get与post的请求中也会有“报头”的参数,这个时候就要求在进行wap连接(connect)与get、post中报头信息不可相同,如果相同的报头在http请求时出现两次或多次,那么将收到“bad
request”的拒绝消息。