WAP1.x协议栈浅析-WSP协议

WSP协议详解
本文详细介绍了WAP中的WSP层工作原理及数据包格式,包括WSPPDU的通用字段、常见类型及其具体结构,探讨了WSP如何实现HTTP/1.1的功能并针对无线特性进行优化。

2.3  WSP Layer

WSP层在WTP之上,为WAP应用程序提供会话级的连接,处理客户端、服务器端数据的交互等功能。实际上,WAP在制定之初就以当时已非常流行的Internet/HTTP协议作为参考,因此WSP协议提供了HTTP/1.1的所有功能,包括CONNECT/GET/POST等命令,所不同的是WSP针对这些Header/Body进行了二进制编码,以减少数据包大小,换句话说,是实现了二进制版本的HTTP/1.1。此外,WSP还增加了一些无线应用的特殊功能,比如Push等。

 

2.3.1  WSP PDU通用字段

TID(部分类型没有)

PDU Type

(根据Type可变)

TID  8-bit unsigned integer

PDU Type8-bit unsigned integer

 

WSP层每个PDU都由一个TID字段和一个必需的Type字段构成,其后的内容根据不同的Type要求组成。

 

2.3.2  WSP PDU类型(常用)

      Connect PDU

      ConnectReply PDU

      Redirect PDU

      Disconnect PDU

      Reply PDU

      Get PDU

      Post PDU

PDU Type对应的值列表如下:

类型名称

(保留)

0x00

Connect

0x01

ConnectReply

0x02

Redirect

0x03

Reply

0x04

Disconnect

0x05

Push

0x06

Suspend

0x08

Resume

0x90

Get

0x40

Post

0x60

 WSP PDU分析

      Connect PDU

Name

Type

Source

Version

8bit ungisnged int

WSP Protocol version

CapabilitiesLen

变长unsigned int

Capabilities长度

HeadersLen

变长unsigned int

Headers长度

Capabilities

Octets data

S-Connect Request Cap

Headers

Octets data

S-Connect Client Headers

      ConnectReply PDU

Name

Type

Source

ServiceSessionId

变长unsigned int

Session_ID 变量

CapabilitiesLen

变长unsigned int

Capabilities长度

HeadersLen

变长unsigned int

Headers长度

Capabilities

Octets data

S-Connect Request Cap

Headers

Octets data

S-Connect Client Headers



Get PDU

Name

Type

Source

URILen

变长unsigned int

Length of URI field

URI

Octets data

URI内容

Headers

Octets data

 

      Reply PDU

Name

Type

Source

Status

8bit ungisnged int

 

HeadersLen

变长unsigned int

ContentHeaders字段的长度

ContentType

Octets data

 

Headers

Octets data

 

Data

Octets data

 

      Disconnect PDU

Name

Type

Source

ServerSessionId

变长 ungisnged int

Session_ID变量

 

2.3.4  WSP Header和内容编码

为了减少无线传输的数据通信量,WSP层传递的数据采取编码方式,把HeaderBody内容都转换为二进制编码,通过二进制方式压缩数据包长度。

特别的,在Header部分,WSP定义了一系列二进制值对应表。请查阅WAP-WSP规范文档的附录A部分。


2.4  WSP层深入分析

      WSP层的变长类型,在WSP层协议中,有很多字段是变长的。变长的类型是通过最高位来标记,即当最高位为1,则表示下一个字节仍然是连续的一部分,直到最高位为0的字节才结束。因此每个字节表示的值最高为127

      WSP CONNECT PDU中,可以携带CapabilitiesHeaders可变字段。Capabilities字段用于协商一些通信机制,比如SDU大小,单个消息大小等等;Headers字段则用于表示Http协议中客户端可以接受处理的类型,比如Accept: text/html

      WSP REPLY返回状态为3xx时,表示URL已经变更,客户端必须根据这个状态,解析REPLY PDU中的头部分,把重定向的URL提取出来,并自动重定向到新的URL(由于Headers的解码较麻烦,目前我采取简单的处理方法,即只从Headers中获取http://开头的字符串)

      WSP REPLY返回的HTML Data中,如果WML内容含有” onenterforward”  <go href=> 之类的Tag,也需要进行直接重定向

 

2.5  移动梦网WAP网关分析

上述的流程和组包方式,我在free downloadKannel WAP网关中都通过了测试,使用比较顺利,但是目前通过公网能访问的WAP网站不多。

当连接移动梦网wap网关时,主要有以下差别的地方:

      WSP CONNECT PDU,按照我原来的包内容被拒绝,从网上找了一些成功连接的包内容,也按同样方式进行组包,根据WSP的协议分析,好像不能合理解析,不知道是否是WAP2.0的问题,还没时间研究。具体发送的包如下:

  unsigned char lsWSPPdu[]={

                 WSP_PDU_CONNECT, // PDU type

                 0x10,             // Version 1.0

                 0x10,             // Capability length

                 0x02,             // Headers length =

                                   // Capabilities

                 0x04, 0x80, 0x82, 0x81, //len, type, varint...

                 0x68, 0x04, 0x81, 0x82, //len, type, varint...

                 0x81, 0x68, 0x02, 0x84, //len, type, varint...

                 0x01, 0x02, 0x83, 0x01, //len, type, varint...

                                   // Headers

                 0x80, 0x80        // Accept: *\*

                 };

      WSP REPLY PDU,移动梦网WAP网关针对GET返回的REPLY,其Data字段存储的内容是明文的ASCII码,无需再进行WML解码,这点需要留意,可能是WAP2.0的缘故吧。




### 命令作用 `Update-SPSolution` 是 SharePoint 中的一个 PowerShell 命令,用于更新已部署的 SharePoint 解决方案。 在 `Update-SPSolution -Identity iWS.CWL.SharePoint.wsp -LiteralPath "C:\iWS.CWL.SharePoint.wsp" -GaCDeployment -FullTrustBinDeployment` 这个具体命令中: - `-Identity iWS.CWL.SharePoint.wsp`:指定要更新的 SharePoint 解决方案的标识,即要更新的解决方案的名称为 `iWS.CWL.SharePoint.wsp`。 - `-LiteralPath "C:\iWS.CWL.SharePoint.wsp"`:指定包含更新后解决方案文件的完整路径,这里表示新的解决方案文件存放在 `C:\iWS.CWL.SharePoint.wsp`。 - `-GaCDeployment`:表示将解决方案中的程序集部署到全局程序集缓存(Global Assembly Cache,GAC)中。这意味着这些程序集将在服务器的 GAC 中可用,而不是仅在 SharePoint 的 bin 目录中。 - `-FullTrustBinDeployment`:指示解决方案中的程序集应部署到 SharePoint 的完全信任 bin 目录中,允许这些程序集以完全信任的权限运行。 ### 升级时是否重启 SharePoint 服务 使用该命令进行升级时,默认情况下不会自动重启 SharePoint 服务。不过,更新解决方案可能会导致 SharePoint 应用程序池回收,因为新的程序集被部署到了 GAC 或 bin 目录。应用程序池回收类似于服务的重启,它会终止当前正在运行的应用程序池中的所有工作进程,并重新启动它们。这可能会导致用户在短时间内无法访问 SharePoint 网站。 ```powershell # 示例命令 Update-SPSolution -Identity iWS.CWL.SharePoint.wsp -LiteralPath "C:\iWS.CWL.SharePoint.wsp" -GaCDeployment -FullTrustBinDeployment ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值