WAP协议解析.docx
- 文档编号:28809499
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:30
- 大小:1.42MB
WAP协议解析.docx
《WAP协议解析.docx》由会员分享,可在线阅读,更多相关《WAP协议解析.docx(30页珍藏版)》请在冰豆网上搜索。
WAP协议解析
WAP协议解析
WAP包括WAP1.X和WAP2.0两个版本,WAP2.0向下兼容WAP1.X。
WAP2.0主要应用如下:
1、WAPPUSH业务,这种业务可通过推送代理发送或“推送”给基于服务器应用的多种设备,这尤其适合股票价格变更等实时信息的传送;
2、UAProf,UAProf是一种标准的手机终端能力报告机制。
通过该机制,CP/SP可以了解到访问终端的物理特性(如屏幕尺寸、分辨率、多媒体支持程度等)和软件功能(如是否支持MMS、支持Java、支持WAPPush等),从而有针对性地返回恰当的内容,以真正体现个性化的服务;
3、无线电话应用业务(WTA),它使得WAP可以很好地与目前电信网络中的各种先进电信业务相结合,如智能网(IntelligentNetwork)业务。
通过使用浏览器,移动用户可以应用各种智能网业务而不需修改移动终端;
4、端到端的安全业务,基于WAP2.0,可以开发移动电子商务和集团客户,如股票、期货、外汇等证券交易等;
5、多媒体信息传送业务(MMS);
6、下载业务,如Java游戏,MP3等业务;
7、其它有线互联网业务,如网站访问等;
一、WAP1.x
先介绍WAP1.x协议,WAP1.x的层次结构如下(与有线网络对比):
该协议在GPRS网络中的框架如下:
WDP层由UDP/IP代替,下层为GB协议,常用的UDP端口号分配如下:
端口号
用途
9200
WAPConnectionlessSessionService
9201
WAPSessionService
9202
WAPSecureConnectionlessSessionService
9203
WAPSecureSessionService
看了下四川的数据包,都为有连接无安全的会话服务,也就是端口号为9201的数据,我们目前也只分析9201的数据,其他数据暂不作解析。
1.1WTP
WTP英文全称为WirelessTransactionProtocol,中文名称为无线事务协议,WTP的主要功能有:
●提供了三种类别的服务(可靠性和结果消息的组合),这三种类别为:
不可靠无结果、可靠无结果、可靠有结果,分别对应级别0、1、2。
●通过重发和确认为上层提供可靠连接
●可将多个PDU合并成一个SDU
●提供事务取消(Abort)功能
●允许异步事务请求
WTP有以下几种消息:
Message/function
Class2
Class1
Class0
Invokemessage
X
X
X
Verification
X
X
Holdonacknowledgement
X
Resultmessage
X
Lastacknowledgement
X
X
具体PDU类型及代码如下:
PDUType
PDUCode
*NOTALLOWED*
0x00
Invoke
0x01
Result
0x02
Ack
0x03
Abort
0x04
SegmentedInvoke
0x05
SegmentedResult
0x06
NegativeAck
0x07
PDU包括头和数据,头包含固定部分和可变部分。
每种消息的固定部分都不一样,可变部分是指是否包含TPI(TransportInformationItem),以及包含多少个TPI。
下面就各PDU类型和TPI进行简单介绍。
1.1.1InvokePDU
InvokePDU相当于客户端给服务端的请求包,如页面请求包。
CON:
ContinueFlag,指示是否存在TPI;
PDUType:
PDU类型;
GTR和TTR:
GroupTrailer和TransmissionTrailer标记,指示是否是最后一个分片包,组合如下:
RID:
Re-TransmissionIndicator,重传标识;
TID:
TransactionIdentifier,事务ID,在一次事务中,双向事务ID都是一样的;
Version:
当前版本为0x00;
TIDNew:
TIDNewFlag,指示本TID为最新的TID;
U/P:
U/PFlag,指示是否需要服务端发送ack;
RES:
Reserved,保留位;
TCL:
TransactionCLASS,要求的服务类别,为0,1,2。
如:
1.1.2ResultPDU
ResultPDU相当于服务端给客户端的返回包,如页面返回包。
如:
1.1.3AcknowledgementPDU
类似于tcp的ack包。
Tve/Tok:
TIDVerifyFlag/TIDOKFlag,前者为服务端至客户端,后者为客户端至服务端。
如:
1.1.4AbortPDU
类似于tcp的fin和rst包。
AbortType:
终止类型
Abortreason:
终止原因
Providerabortreason
WSPUserabortreason
如:
1.1.5SegmentedInvokePDU
一个请求可能由多个包组成,除第一个包时Invoke类型之外,其余包则为本类型。
PacketSequenceNumber:
分片包序号。
没有找到此类包,因为普通请求其内容本身不长,不需要分包。
1.1.6SegmentedResultPDU
一个返回可能由多个包组成,除第一个包是Result类型之外,其余包则为本类型。
如:
1.1.7NeganativeAcknowledgementPDU
用于数据包丢失时,要求对方重传。
NumberofMissingPackets:
丢失的包个数;
PacketSequenceNumberofMissingPakcets:
丢失的包序号,有可能多个。
1.1.8TPI
TPI有两种格式:
长格式和短格式。
CON:
ContinueFlag,指示是否存在下一个TPI;
TPIIdentity:
TPI类型
TPILength:
TPI长度;
TPIData:
TPI值。
如:
1.1.9SDU
有可能多个PDU放在一起发送,组成一个SDU,如下所示:
没有这样的数据包,不清楚如何识别。
1.1.10事务交互过程
1.1.10.1Class0事务
1.1.10.2Class1事务
1.1.10.3Class2基本事务
1.1.10.4Class2带延时确认事务
1.1.10.5带TID检验事务
分为成功和失败两种:
成功
失败
1.1.10.6带Invoke乱序事务
1.1.10.7带分片和重组事务
1.1.10.8带重传事务
有主动重传和被动重传两种。
主动重传
被动重传
1.2WSP
WSP,无线会话层,位于WTP/WDP之上,类似于HTTP协议。
主要功能如下:
●维护客户端至服务器的会话连接,包括会话建立、挂起、恢复、断开
●向上层提供两种会话服务的接口:
基于WTP之上的面向连接的服务(可靠会话)、基于WDP之上的无连接服务(暂不作分析)
●实现HTTP/1.1定义的全部功能
●实现PUSH、能力协商、会话的挂起/恢复等新特性
WSP的PDU结构相对比较简单,由三部分组成,如下:
其中TID只有在基于WDP之上的无连接服务下才会使用,我们现在暂时不考虑这种情况。
PDUType定义如下:
下面分别就这些类型进行说明:
1.2.1Connect
Connect类型的PDU用于会话开始之前与WAP网关建立连接,同时完成双方的能力协商,即后面会话的一些参数设定。
Connect域的结构如下:
Version:
wsp版本号,目前为1.0,也就是0x10;
CapabilitiesLen:
能力字段所占字节数;
HeadersLen:
头信息所占长度;
Capabilities:
能力字段,可以包含多个能力,每个能力都是一个结构,属于LKV类型结构,如下:
其Indentifier分配如下:
Headers:
类似于HTTP的请求/响应头,头域也可以包含多个或没有,每个域都是一个结构,以0x00结束,最后一个域没有0x00结束符,如下:
头域名字分配如下:
Name
EncodingVersion
AssignedNuber
Accept
1.1
0x00
Accept-Charset1
1.1
0x01
Accept-Encoding1
1.1
0x02
Accept-Language
1.1
0x03
Accept-Ranges
1.1
0x04
Age
1.1
0x05
Allow
1.1
0x06
Authorization
1.1
0x07
Cache-Control1
1.1
0x08
Connection
1.1
0x09
Content-Base1
1.1
0x0A
Content-Encoding
1.1
0x0B
Content-Language
1.1
0x0C
Content-Length
1.1
0x0D
Content-Location
1.1
0x0E
Content-MD5
1.1
0x0F
Content-Range1
1.1
0x10
Content-Type
1.1
0x11
Date
1.1
0x12
Etag
1.1
0x13
Expires
1.1
0x14
From
1.1
0x15
Host
1.1
0x16
If-Modified-Since
1.1
0x17
If-Match
1.1
0x18
If-None-Match
1.1
0x19
If-Range
1.1
0x1A
If-Unmodified-Since
1.1
0x1B
Location
1.1
0x1C
Last-Modified
1.1
0x1D
Max-Forwards
1.1
0x1E
Pragma
1.1
0x1F
Proxy-Authenticate
1.1
0x20
Proxy-Authorization
1.1
0x21
Public
1.1
0x22
Range
1.1
0x23
Referer
1.1
0x24
Retry-After
1.1
0x25
Server
1.1
0x26
Transfer-Encoding
1.1
0x27
Upgrade
1.1
0x28
User-Agent
1.1
0x29
Vary
1.1
0x2A
Via
1.1
0x2B
Warning
1.1
0x2C
WWW-Authenticate
1.1
0x2D
Content-Disposition1
1.1
0x2E
X-Wap-Application-Id
1.2
0x2F
X-Wap-Content-URI
1.2
0x30
X-Wap-Initiator-URI
1.2
0x31
Accept-Application
1.2
0x32
Bearer-Indication
1.2
0x33
Push-Flag
1.2
0x34
Profile
1.2
0x35
Profile-Diff
1.2
0x36
Profile-Warning1
1.2
0x37
Expect
1.3
0x38
TE
1.3
0x39
Trailer
1.3
0x3A
Accept-Charset
1.3
0x3B
Accept-Encoding
1.3
0x3C
Cache-Control1
1.3
0x3D
Content-Range
1.3
0x3E
X-Wap-Tod
1.3
0x3F
Content-ID
1.3
0x40
Set-Cookie
1.3
0x41
Cookie
1.3
0x42
Encoding-Version
1.3
0x43
Profile-Warning
1.4
0x44
Content-Disposition
1.4
0x45
X-WAP-Security
1.4
0x46
Cache-Control
1.4
0x47
在我们现有的所有数据包中域名的最高为都被置为1了,比如Accetp为0x80,User-Agent为0xa9,不清楚什么原因。
如:
1.2.2ConnectReply
客户端给服务器发送ConnectPDU后,服务端收到以后会返回一个ConnectReplyPDU,结构如下:
ServerSessionId用于后面的DisconnectPDU,其它域和Connect对应的域一样。
注意一点:
ConnectReplyPDU里面的Capabilities的含义与Connect域里面的不一样,如果服务器接受ConnectPDU里面的设定,服务器返回的ConnectReply里面是没有Capabilities的,只有在我们设定的参数服务器有改变时,才在ConnectReplyPDU中存在Capabilities域指示,服务器采用的设定值。
如:
1.2.3Redirect
用于connect重定向服务器,结构如下:
Flags说明如下:
1.2.4Reply
这个是我们用POST方法或者用GET方法时,服务器给客户端应答的WSPPDU,类似于HTTP的响应,结构如下:
Status指定请求是否执行成功,和HTTP里面的状态码有一一对应关系,如果执行成功则是0x20,否则是其它的状态码,指定出错的类型,状态码定义如下:
Data:
返回的数据。
如:
1.2.5Disconnect
DisConnectPDU里面唯一的一个域是ConnectReply里面的SenverSessionID。
用于客户端或服务端断开连接。
这个PDU可能是客户端发出的,也可能是服务器发出的。
1.2.6Push和ConfirmedPush
Push和ConfirmedPush用于PUSH业务,也就是服务端主动向客户端发送信息。
PDU结构如下:
1.2.7Get
Get、Options、Head、Delete和Trace对应HTTP的相应请求方法,用于向服务器请求数据,其PDU结构如下:
URILen:
URI域长度;
URI:
URI,也就是要请求的页面地址。
如:
1.2.8Post和PUT
Post和Put用于向服务器提交页面,PDU结构如下:
ContentType:
要提交的内容类型,由类型值或类型值长度(1Byte)+类型值构成,类型定义如下:
WellKnownValues
ContentType
Encoding
Version
Assigned
Number
*/*
1.1
0x00
text/*
1.1
0x01
text/html
1.1
0x02
text/plain
1.1
0x03
text/x-hdml
1.1
0x04
text/x-ttml
1.1
0x05
text/x-vCalendar
1.1
0x06
text/x-vCard
1.1
0x07
text/vnd.wap.wml
1.1
0x08
text/vnd.wap.wmlscript
1.1
0x09
text/vnd.wap.wta-event
1.1
0x0A
multipart/*
1.1
0x0B
multipart/mixed
1.1
0x0C
multipart/form-data
1.1
0x0D
multipart/byterantes
1.1
0x0E
multipart/alternative
1.1
0x0F
application/*
1.1
0x10
application/java-vm
1.1
0x11
application/x-www-form-urlencoded
1.1
0x12
application/x-hdmlc
1.1
0x13
application/vnd.wap.wmlc
1.1
0x14
application/vnd.wap.wmlscriptc
1.1
0x15
application/vnd.wap.wta-eventc
1.1
0x16
application/vnd.wap.uaprof
1.1
0x17
application/vnd.wap.wtls-ca-certificate
1.1
0x18
application/vnd.wap.wtls-user-certificate
1.1
0x19
application/x-x509-ca-cert
1.1
0x1A
application/x-x509-user-cert
1.1
0x1B
image/*
1.1
0x1C
image/gif
1.1
0x1D
image/jpeg
1.1
0x1E
image/tiff
1.1
0x1F
image/png
1.1
0x20
image/vnd.wap.wbmp
1.1
0x21
application/vnd.wap.multipart.*
1.1
0x22
application/vnd.wap.multipart.mixed
1.1
0x23
application/vnd.wap.multipart.form-data
1.1
0x24
application/vnd.wap.multipart.byteranges
1.1
0x25
application/vnd.wap.multipart.alternative
1.1
0x26
application/xml
1.1
0x27
text/xml
1.1
0x28
application/vnd.wap.wbxml
1.1
0x29
application/x-x968-cross-cert
1.1
0x2A
application/x-x968-ca-cert
1.1
0x2B
application/x-x968-user-cert
1.1
0x2C
text/vnd.wap.si
1.1
0x2D
application/vnd.wap.sic
1.2
0x2E
text/vnd.wap.sl
1.2
0x2F
application/vnd.wap.slc
1.2
0x30
text/vnd.wap.co
1.2
0x31
application/vnd.wap.coc
1.2
0x32
application/vnd.wap.multipart.related
1.2
0x33
application/vnd.wap.sia
1.2
0x34
text/vnd.wap.connectivity-xml
1.3
0x35
application/vnd.wap.connectivity-wbxml
1.3
0x36
application/pkcs7-mime
1.4
0x37
application/vnd.wap.hashed-certificate
1.4
0x38
application/vnd.wap.signed-certificate
1.4
0x39
application/vnd.wap.cert-response
1.4
0x3A
application/xhtml+xml
1.4
0x3B
application/wml+xml
1.4
0x3C
text/css
1.4
0x3D
application/vnd.wap.mms-message
1.4
0x3E
application/vnd.wap.rollover-certificate
1.4
0x3F
application/vnd.wap.locc+wbxml
1.5
0x40
application/vnd.wap.loc+xml
1.5
0x41
application/vnd.syncml.dm+wbxml
1.5
0x42
application/vnd.syncml.dm+xml
1.5
0x43
application/vnd.syncml.notification
1.5
0x44
application/vnd.wap.xhtml+xml
1.5
0x45
application/vnd.wv.csp.cir
1.5
0x46
application/vnd.oma.dd+xml
1.5
0x47
application/vnd.oma.drm.message
1.5
0x48
application/vnd.oma.drm.content
1.5
0x49
application/vnd.oma.drm.rights+xml
1.5
0x4A
application/vnd.oma.drm.rights+wbxml
1.5
0x4B
RegisteredValues
ContentType
AssignedNumber
Registrant
OtherInformation
application/vnd.uplanet.cacheop-wbxml
0x0201
MatthieuLachance
application/vnd.uplanet.signal
0x0202
MatthieuLachance
application/vnd.uplanet.alert-wbxml
0x0203
MatthieuLachance
application/vnd.uplanet.list-wbxml
0x0204
MatthieuLachance
application/vnd.uplanet.listcmd-wbxml
0x0205
MatthieuLachance
application/vnd.uplanet.channel-wbxml
0x0206
MatthieuLachance
application/vnd.uplanet.provisioning-status-uri
0x0207
MatthieuLachance
x-wap.multipart/vnd.uplan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WAP 协议 解析