首页 理论教育 关键字识别和内容提取的方法与技巧

关键字识别和内容提取的方法与技巧

时间:2023-06-30 理论教育 版权反馈
【摘要】:表7-3至表7-8中WTP PDU字段长度都是在无TPI字段情况下的取值;存在TPI字段时,参考3.1.2节。图7-7带URI的数据包内容②URI提取方法。对于Headers内容的识别,实现根据WSP内容格式定位Headers字段的位置。

关键字识别和内容提取的方法与技巧

1.WSP PDU类型

(1)WSP PDU类型简介

WSP PDU类型字段占一字节,采用编码方式表示,对应内容参见后面的WSP PDU类型表。

·无连接情况下,WSP PDU类型字段位于WSP PDU的第二个字节。由于无连接情况下没有WTP,所以WSP PDU类型字段位于数据业务部分(传输层之上)的第二个字节。无连接的WSP PDU格式如表7-1所示。

表7-1 无连接的WSP PDU格式

·面向连接情况下,包括WSP和WTP,WSP PDU Type字段位于WSP PDU的第一个字节。面向连接的WSP Get PDU格式如表7-2所示。

表7-2 面向连接的WSP Get PDU格式

由于WTP的存在,根据WTP PDU长度的不同,WSP类型字段在数据业务部分(传输层之上)的位置不同。表7-3至表7-8给出WSP PDU和WTP PDU类型对应使用表,图7-1到图7-6给出几种WSP PDU类型数据包内容。表7-3至表7-8中WTP PDU字段长度都是在无TPI字段情况下的取值;存在TPI字段时,参考3.1.2节。

表7-3 Invoke+Connect

图7-1 WSP Connect数据包内容

表7-4 Result+ConnectReply

图7-2 WSP ConnectReply数据包内容

表7-5 Invoke+Get/Post

图7-3 WSP Get数据包内容

表7-6 Invoke+Disconnect

图7-4 WSP Disconnect数据包内容

表7-7 Result+Reply

图7-5 WSP Reply数据包内容

表7-8 Segmented Result+Reply

图7-6 带分片的WSP Reply数据包内容

(2)类型提取方法(www.xing528.com)

从WAP 1.X协议栈可知WSP在WTP的上层,所以可以通过确定WTP内容长度定位到WSP内容首部。类型提取步骤如下。

①根据端口,判断是否是面向连接模式。若是无连接模式,WSP层在传输层之上,WSP PDU在WSP部分的第二个字节;若是面向连接模式,继续。

②判断WTP部分的第一个字节是否为0x00。若是0x00,表示WTP串联模式,继续;若不是0x00,跳到第④步。

③第二个字节为第一个子PDU(包括WTP和WSP部分)长度(用S1_PDU_SIZE表示),从第3个字节开始,到第(3+S1_PDU_SIZE)个字节为第一个子PDU内容,跳到第④步进行提取;然后返回第③步,继续处理剩余子PDU内容。WTP串联时,PDU的格式参见5.5节。数据包长度—WTP以下各层长度=(WTP层+WSP层)的长度=每个子PDU长度之和。

④根据WTP PDU类型,确定WTP部分长度。算法为:

switch(WTP PDU第一字节和Oxf8进行与操作)

//因为WTP PDU类型字段在WTP PDU第一个字节的第6、5、4、3位,第7位指示

WTP PDU中是否包含TPI字段,所以将第一个字节和0xf8进行与操作,以提出高5位。WTP PDU字段格式参见3.1节。

2.URI

①URI字段存在于Get和Post数据包中,根据URI Length标识确定长度,URI字段标识内容。带URI的数据包内容如图7-7所示。

图7-7 带URI的数据包内容

②URI提取方法。

起始位置:从WSP PDU内容部分(除去TID和WTP PDU类型)的第二个字节开始,URI Length(WSP PDU内容部分的第一个字节)标识URI长度。

3.Content-Type字段

Content-Type字段用于识别上层承载业务类型,如MMS和OMA DOWNLOAD等。对应内容类型,或者采用编码方式,或者采用以'0x00'为结束符的明文方式(未定义编码格式)。图7-8是以编码方式表示的内容类型,图7-9是以明文方式表示的内容类型。

图7-8 以编码方式表示的内容类型

图7-9 以明文方式表示的内容类型

4.应答状态码

WSP Reply响应报文的第二个字节(有连接)或者第三个字节(无连接),应答状态字段由Status标识,应答状态内容参见附录C。

5.WSP报头

①报头(Headers)字段的具体内容参见附录B,其常用的字段名包括Content-Type、Location、Accept等。带Headers字段的数据包如图7-10所示。

图7-10 带Headers字段的数据包

②提取方法如下。

根据WSP类型内容的格式,判断Capabilities和ContentType各自的位置。对于Headers内容的识别,实现根据WSP内容格式定位Headers字段的位置。

Headers中包含字段的对应内容都是以"0x00"为结束符的,字段名采用编码和明文两种方式表示(即使同为WSP Reply数据包,对应报头字段名也可能采用两种方式表示)。Content-Length字段名一个用明文表示,如图7-11所示;另一个用编码方式表示('0x8d'),如图7-12所示。

图7-11 明文表示的Content-Length数据包

图7-12 编码方式表示的Content-Length数据包

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈