WAP协议(Wireless Application Protocol)无线应用协议是一个开放式标准协议.它使用WML标记式语言(类似于HTML)并可通过WAP Gateway实现html和wml的转换.它是由一系列协议组成,同时还引用了许多Internet协议,比如IP 、XML等.目前,Internet技术主要是针对PC设计的,能够支持在可靠度高的数据网上进行宽带连接 ,像移动电话这种大众化的便携式无线装置在数据、信息等方面的处理能力上根本无法与PC相提并论.主要因为,第一,移动通信产品主要是移动电话,其中央处理器CPU的速度较慢、内存较小、电力有限、显示屏较小、按键数量较少、输入方式有限;第二,由于移动通信系统本身的原因,导致移动网络带宽较窄、稳定性较低、服务内容比较简单,不适合用于接收Internet信息.所以,WAP协议针对移动网络的需要,为了适应无线电通信的特殊环境进行了特别设计和优化.它主要包括World Wide Web信息浏览、E-mail收发、IRC网上实时聊天和Newsgroups新闻组讨论等.WAP协议只要求移动电话和WAP代理服务器的支持,而不要求现有的移动通信网络协议作任何的改动,所以WAP协议能同时适用于CDMA、GSM等多种不同的移动通信系统.WAP协议堆栈的设计也力求使所需带宽最小化.并对各种网络技术和服务提供广泛支持.

以下是关于TCP/IP协议和WAP协议比较

(1)在应用层,TCP/IP包含了OSI协议模型的高三层(即应用层、会话层、表示层)的功能,对于视频业务和多媒体业务来说并不是一种理想的协议结构模型.WAP协议栈实际上部分恢复了OSI的高三层业务,这对日趋复杂的数据应用和服务是有价值的,尤其是在无线移动电子商务环境中更是如此.

(2)在传送层,TCP/IP和WAP协议栈的差异巨大,面向连接的TCP是Internet的主体,但在WAP中,无连接的WDP才是广域无线移动数据网的关键.

(3)WAP协议栈还可以提供安全协议, 即无线传送层安全 (WTLS)协议, 它实际上是来自TCP/IP体系的TLS/SS协议.

 

WAP协议栈

------------------------

WAP          INTERNET

------------------------

应用层(WAE)      HTML

------------------------

会话层 (WSP)

------------------------HTTP

事务层(WTP)

------------------------

安全层(WTLS)     SSL

------------------------

传输层(WDP/UDP)  TCP/UDP

------------------------

3G、WiMAX...

------------------------

(1) WAE应用层

应用层的主要目的是使运营商和服务提供者能够有效地在不同的无线平台上建立服务和应用程序。描述了WML(类似Internet使用HXML)、Wscript(类似Internet使用Javascript)、Wireless Telephony Application(WTA, WTAI)和一些数据格式(如WBMP图片格式、电话本记录和日程记录等等)。

无线电话应用(WTA)使WAP可以很好地与电信网络中现存的各种先进电信业务相结合,如智能网业务。通过用户接口,移动用户可以应用各种电信业务而不需修改移动终端。

(2) WSP会话层

会话层协议为上层的应用提供面向连接的(Confirmed Push)或无连接(Connectionless Push)的会话通信服务。

(3) WTP事务层

提供一种轻量级的面向事务处理的服务,专门优化并适用于无线数据网。

(4) WTLS 安全层

基于SSL的安全传输协议,提供加密、授权及数据完整性功能。

(5)WDP传输层

无线数据报协议,一种通用的数据传输服务,可以支持多种无线承载网络,使得上层的WAE、WSP、WTP、WTLS独立于下层的无线网络,使用下层承载能力为上层提供一致的服务。

如果WAP代理/网关收到的消息是通过INTERNET网络的UDP协议传输的,WAP代理/网关同样使用UDP取代WDP与移动设备交互。

WAP网络部署

(1)WAP应用直接通过WAP服务器与设备交互(WAP Application Server)

<基站(BS)信令网>

[Mobile Device] <-----WSP----->[WAP Server]

如果只提供单纯的WAP应用,可以用现有的网络服务器,只改变MIME类型就可以,将WAP网页或程序上传到支持WAP功能的服务器上,移动设备就可以通过输入URL来进行访问,WAP服务器需要实现WAP协议栈。

可通过Microsoft IIS6.0实现WAP应用,步骤如下:

1)首先,打开IIS为其设置新的MIME类型,在网站属性的HTTP头选项中设置。添加WAP所需的MIME类型。

扩展名 MIME类型 .wml text/vnd.wap.wml .wbmp image/vnd.wap.wbmp .wmlc application/vnd.wap.wmlc .wmls text/vnd.wap.wmlscript .wmlsc application/

vnd.wap.wmlscriptc

2)确定后你的IIS已经可以支持WAP,但是当我们在浏览器输入WAP页地址访问的时候却提示将WML文件下载,这时你必须安装WAP浏览器才行,如M3Gate,可以在http://www.gmcc.net/wap/

m3stp06.zip下载到。

tomcat5.0的版本一般都已经对wml支持了,如果不支持的话,修改CATALINA_HOME/conf/web.xml。在MIME映射部分添加如下内容:

<mime-mapping>

     <!-- WML Source -->

     <extension>wml</extension>

     <mime-type>text/vnd.wap.wml</mime-type>

</mime-mapping>

<mime-mapping>

     <!-- Compiled WML -->

     <extension>wmlc</extension>

     <mime-type>application/vnd.wap.wmlc</mime-type>

</mime-mapping>

<mime-mapping>

     <!-- WML Script Source -->

     <extension>wmls</extension>

     <mime-type>text/vnd.wap.wmlscript</mime-type>

</mime-mapping>

<mime-mapping>

     <!-- Compiled WML Script -->

     <extension>wmlscriptc</extension>

     <mime-type>application/vnd.wap.wmlscriptc</mime-type>

</mime-mapping>

(2)WEB服务器通过WAP代理(WAP 网关)与设备交互(WAP Proxy)

<基站(BS)信令网>

[Mobile Device] <----WSP----[WAP Gateway]---HTTP--->[WAP Server]

WAP代理/网关实现WAP协议栈(WSP、WTP、WTLS和WDP)与Internet协议栈之间的转换。WAP代理把WAP请求翻译成为WWW请求,同时也将Web服务器的响应翻译成压缩的二进制WML格式数据,以便移动终端的理解。信息内容编解码器把WAP数据压缩编码,以减少网络数据流量,最大限度地利用无线网络缓慢的数据传输速率。同时WAP还采用了错误校正技术,确保网络浏览和数据传输过程不会因无线信道质量的变化而受到严重影响。

WAP2.0

  在WAP2.0版本中,支持以下新增协议栈功能:

(1)在传输层,WAP2.0采用具有无线特征的WP TCP/IP协议,以使得网络可以基于IP进行数据传输。WP TCP提供面向连接的服务,它被优化用于无线环境,可与互联网上的标准TCP应用充分交互操作。

(2)在会话层,WAP2.0采用具有无线特征的HTTP协议(WP HTTP),WP HTTP规范针对无线环境的HTTP协议子集,完全能够与HTTP/1.1共同使用。WAP设备和WAP代理服务器/WAP服务器之间交互工作的

基本模型是HTTP请求/回应处理机制。WP HTTP支持回应的信息体压缩和安全通道的建立。这样,在WAP2.0不一定需要WAP代理服务器,因为在客户端和源服务器端通过使用HTTP/1.1就可以直接完

成移动应用。

(3)WAP2.0增加了更多的安全保证措施,包括采用TLS协议, WAP2.0支持TCP/HTTP的情况下允许移动终端与应用服务器直接建立TLS安全隧道,实现端到端的加密功能。提供改进的端到端的安全,集成

有线互联网等,以保证使用移动商务和移动银行应用等移动业务的安全。TLS协议的无线协议子集允许针对安全传输的交互操作。TLS的协议子集包括加密簇、验证字格式、签名规则和会话恢复等安全措

施。

WAP2.0主要优势表现如下:

(1)速度更快:WAP网关不用做HTTP/TCP和WSP/WTP/WDP的协议转换;手机侧不用做WSP/WTP/WDP的解析,但是网络中需要做HTTP/TCP的无线配置。

(2)性能提高:因不做大量的协议转换,同样的硬件设备支持更多的并发用户。

(3)提供了端到端的安全机制:如使用TLS时,WAP网关不用解析HTTP应用,是透明传输的端到端的协议。

(4)丰富的内容:因WAP2.0协议采用了与有线互联网兼容的语言,因此获得了更为广泛的支持,更多的应用能更容易的被用在移动互联网上,这是在WAP1.X上做不到的,这种兼容性也使WAP2.0比WAP1.X

有更长的使用期限和稳定的产品形态(不用在协议和标记语言上进行频繁升级),使移动用户享受到有线互联网的丰富的内容。

WAP的数据传输(WAP PUSH)

WAP的数据传输使用WAP PUSH,WAP推送(PUSH)技术是一种建立在客户服务器上的机制,就是由服务器主动将信息发往客户端的技术。同传统的拉(PULL)技术相比,最主要的区别在于推送(PUSH)技术是由服务器主动向客户机发送信息,而拉(PULL)技术则是由客户机主动请求信息。PUSH技术的优势在于信息的主动性和及时性。

 PUSH技术在Internet中没能取得大的成功,原因是多方面的。主要原因在于固定网中计算机等固定设备为用户提供了足够的资源和能力去查找信息所以用户通常将它作为一个浏览信息的窗口,而不是被动的信息接收者。同时固定网用户对于信息准确性的要求远甚于对其及时性的要求,因此PUSH技术未能得到广泛的应用。

 而在移动网中,由于存在着网络带宽、移动终端能力以及自费标准高昂等诸多限制,使得用户查找信息受到了一定的限制,如果将重要的信息主动及时地推送到用户的移动设备上无疑会大大方便用户。移动通信的优点是移动设备能够随时随地接收信息因此PUSH技术在移动网中可以大展拳脚,WAP PUSH正是PUSH技术和移动通信两者扬长避短相结合的产物。WAP PUSH是在移动网络中应用的PUSH技术,它结合了一般PUSH技术和移动网络的特点。它的系统框架、使用协议和服务方式与固定网上的PUSH技术有很大不同。

WAP数据传输框架

整个WAP框架包括PI(Push Initiator,即互联网的服务器)、PPG(Push Proxy Gateway,一般为WAP网关)、移动终端三大部分。PI到PPG之间是基于HTTP的PAP(Push Access Protocol)协议(PPG和PI互为HTTP服务器),PPG到移动终端之间是PUSH OTA(PUSH Over-The-Air)协议。

基本流程是互联网的服务器将要发送的信息内容,采用XML表现形式,通过PAP协议发送给WAP网关。这里发生了很多细节过程后(计费、SP标识、访问控制、信息内容二进制压缩编码、终端发现、终端能力特性检查、终端地址解析),通过PUSH OTA协议将内容发送到手机上(2.0以下的规范用OTA-WSP,2.0以上的规范用OTA-HTTP)。

这是很理想的目标,可是在目前全球所有运营商部署的无线网络那里,实现这个基本都不现实。第二代无线网络GSM/CDMA95A是基于信令的电路交换的通信技术,并不支持IP协议,能进行WAP这样数据业务,需要先在信令协议栈上借用modem拨号机制封装成IP/PPP包。WAP网关通过信令网找到手机并建立WSP会话的连接是不可能实现的。第二代半过渡性的网络技术GPRS/CDMA1.x理论上是可以让手机永久在线,拥有固定的IP地址,可现实并不是如此。空中信道的有限容量、计费管理、网络容量等方面都不成熟,所以,移动终端要像一台服务器那样,接收并处理WAP网关随时发起的主动连接请求,只能等到第三代无线网络技术全面普及的那一天了。

正是由于上述局限,目前,在世界各地,所有运营商和所有方案供应商那里,都采用SMS(短消息)方式承载OTA侧的推送,因此在实际环境中更多的通过短消息(SMS)网关与移动终端交互。SMS是信令通道上传输的,处于网络覆盖中的手机通过BTS、BSC、MSC与短信中心随时随地可以相互通信。所以,作为这种服务器到终端的信息传输载体,SMS是最适合不过了。

推送访问协议(PAP)(Push Access Protocol)
   PAP是PI(服务器)与PPG(网关)间的通信协议,它使用XML作为消息的描述语言,通过简单的请求响应机制完成数据的传输。PAP可以实现在多种通信协议之上,包括HTTP,SMTP等。目前的WAP版本仅给出了利用HTTP机制的PAP的规范。

推送空间传输协议(PUSH OTA)
   PUSH OTA是运行于WSP之上的一层较为简单的协议层,负责从PPG(网关)到移动设备的数据传输。PUSH OTA可使用面向连接的会话(Confirmed Push)和无连接会话(Connectionless Push)两种WSP层服务,对于使用连接会话的推送,需要在PPG和客户端间预先存在一个激活的会话,即需要对方回送接收确认信息的Push;对于无连接的推送,则通过预留的端口完成通信。即发送出去后,是否收到就不管了。

WAP网关

PPG(Push Proxy Gateway,一般为WAP网关)完成推送体系结构中的大部分工作,包括从Internet到移动网的访问接入,以及与其有关的认证、安全、客户端控制等所有工作。PPG所提供的主要服务包括:

1)PI的标识、鉴权和访问控制;

2)对推送内容进行语法分析,并依据数据类型定义(DTD)检错纠错;

3)客户寻址与信息传输;

4)PAP与PUSH OTA间的协议转换;

5)为提高无线信道中的传输效率,对信息进行压缩、编译等处理。

  另外,PPG还可以通过别名机制实现组播和广播,即将某些特定的地址别名映射到组播或广播的操作中,具体方案可以由系统实现者决定。不同的客户端,其能力是不同的,PPG还要负责响应PI的客户能力查询请求,以便于PI针对不同的客户端构造合适的内容格式。

手机网游开发基础知识之Wap协议相关推荐

  1. (转)火溶CEO王伟峰:Unity3D手机网游开发

    今天看到这篇文章,感觉很不错,尤其是那句"Unity3D的坑我觉得最严重的坑就是没有懂3D的程序员,把Unity当成Office用". 转自http://blog.csdn.net ...

  2. 火溶CEO王伟峰:Unity3D手机网游开发

    http://www.gamelook.com.cn/2013/11/135467 GameLook报道 / 11月2日下午,GameLook游戏开放日活动在上海正式举行,此次会议gamelook邀请 ...

  3. 网游运营基础知识与专业术语

    网游运营基础知识与专业术语 付费率=付费用户÷活跃用户x100 活跃率=登陆人次÷平均在线人数 ARPU 值=收入÷付费用户 用户流失率=游戏当前活跃用户规模÷历史注册总量 同时在线峰值=24小时内同 ...

  4. 关于Unity3D手机网游开发一些小看法

    它的知识技能和职责,我就不仔细说了,说细了有一点像招聘启示.他的主要职责虽然负责技术,但是也给产品决策和方向提供一些决策.他最主要的考核指标,就是经验很重要,最好主导或参与过一款网络游戏的开发.举个例 ...

  5. 手机网游制造之请求处理篇(已发《电脑报》)

    目标手机软件 手机网游制造之 请求处理篇 开发程序:疯狂的炸弹 开发进度:第四期 本期要点:设计服务器端请求处理功能 开发平台:Java平台 经过前面3期的讲解,我们的手机网游<疯狂的炸弹> ...

  6. SP 短信开发-基础知识篇

    SP 短信开发-基础知识篇 很土的话题,但是最近帮朋友做这个东西,所以写点东西出来给初学者参考. 一.准备资料 SP开发资料网站上有很多,但是主要是以下几个文档: 1.MISC1.6 SP订购通知接口 ...

  7. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...

  8. 手机网游制造之游戏界面篇(已发电脑报)

    目标手机软件 手机网游制造之 游戏界面篇 开发程序:疯狂的炸弹 开发进度:第一期 本期要点:设计客户端游戏功能 开发平台:Java平台 从3G中受益的行业,一定少不了手机网游,手机网游应该怎么开发呢? ...

  9. IM开发基础知识补课(三):快速理解服务端数据库读写分离原理及实践建议

    1.前言 IM应用从服务端数据的角度来看,它是一种很特殊的应用场景,抛开基础数据.增值业务和附属功能不谈,单从IM聊天工具的立身之本--聊天数据来说,理论上是不需要在服务端存储的(或者说只需要短暂存储 ...

最新文章

  1. 转 Android开发学习笔记:浅谈WebView
  2. 歌词数据解析、歌词滚动、歌词进度控制功能的实现(基于js-base64、lyric-parser、better-scroll),以vue项目为例...
  3. 常见的几种RuntimeException
  4. LeetCode 268 缺失数字
  5. Python使用matplotlib进行可视化时精确控制图例位置
  6. vc通过ADO连接sql server 2000的核心代码
  7. CPU合并写缓冲区简介
  8. sql语句用变量替换表名_使用内存优化表替换SQL临时表和表变量
  9. 你可能不知道Windows系统下有一个UNIX子系统
  10. Java Web 获取客户端真实IP
  11. jQuery实现输入框聚焦,键盘上下键选择城市
  12. 同济大学软件学院院长谈嵌入式方向选择
  13. timestamp显示毫秒_TimeStamp 毫秒和纳秒
  14. 15PB三周年创业感悟及献礼
  15. U3D_Shader编程(第一篇:快速入门篇)
  16. unable to install wkhtmltopdf with patched qt in ubuntu 16.04
  17. 错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx
  18. 几种spootboot配置参数线上修改方法
  19. python读取图片像素矩阵
  20. 【微机原理 实验】大小写字母的转换实验 (含汇编代码)

热门文章

  1. 玩转GPT--在线文本生成项目[可入坑~科普系列]
  2. 用html页面模板使用django完成个人博客
  3. 真人CS、趣味拓展、空中断桥、越野车、露营 2天亲子活动方案
  4. 记录一个androidstudio的闪退
  5. Tip:Altium Designer 右下角标题框修改
  6. android udp 广播通信,Android开启热点进行UDP通信中的坑
  7. *p++,(*p)++,*++p,++*p辨析
  8. User Story 如何写
  9. 关于kylin的启动报不能解析域名错误积累
  10. 2022最新每天领访客说说赞绿钻PHP单页源码