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 Type:8-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

Content和Headers字段的长度

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层传递的数据采取编码方式,把Header和Body内容都转换为二进制编码,通过二进制方式压缩数据包长度。

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

2.4  WSP层深入分析

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

◆      WSP CONNECT PDU中,可以携带Capabilities和Headers可变字段。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 download的Kannel 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的缘故吧。

【协议分析】WAP1.x协议栈浅析-WSP协议相关推荐

  1. 协议分析中的TCP/IP网络协议

    " TCP/IP协议作为互联网的基础,在协议分析中不可或缺,本文介绍在对协议进行分析还原的过程中的一些要点,快速掌握协议还原的精髓." 注意,本文比较枯燥乏味,若非需要了解TCP/ ...

  2. 蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍

    原文链接:蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍 系列索引:蓝牙协议分析(1)_基本概念 蓝牙协议分析(2)_协议架构 目录 1. 前言 2. Why 3. How和What 4. Phy ...

  3. tcp文件服务器设计报告,TCPIP协议分析课程设计报告书.doc

    <TCP/IP协议分析>课程设计 题目:用协议分析工具分析 DNS以及以下各层协议的工作机制 院系: 计算机学院 班 级: 2012级网络工程班 姓 名: 学 号: 组 别 : 第 四 组 ...

  4. MSN Media协议分析

    整理记录 版本 时间 内容 整理人 V1.0 2008-04-09 MSN Media协议分析初稿 彭令鹏 MSN Media协议分析 第1章.     文档说明 本文档建立在另一篇文章--<M ...

  5. 计算机网络实验报告嗅探器,《计算机网络实验报告》5_网络嗅探与协议分析实验.pdf...

    计算机网络实验报告 1. 实验报告如有雷同,雷同各方当次实验成绩均以 0 分计. 警示 2. 当次小组成员成绩只计学号.姓名登录在下表中的. 3. 在规定时间内未上交实验报告的,不得以其他方式补交,当 ...

  6. Linux TCP/IP网络协议栈:IP协议源码分析

    目录 IP协议简介 IP头部 IP数据包的发送 IP数据包的接收 https://mp.weixin.qq.com/s/8WNcTxtD4DBcNtcrR8nz4Q IP协议 是网络的最重要部分,毫不 ...

  7. 从TCP三次握手说起——浅析TCP协议中的疑难杂症

    PeterWang_bupt 贡献值:2 等級:L1 0 发布 0 评论 1 顶 发布链接发布图文   全部主题 我关注的主题 GEEKNEWS Rust Swift 全栈工程师 /home Pres ...

  8. TCP/IP协议分析

    一;前言 学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了.本文将介绍一种直观的学习方法,利用协议分析工具学习TCP/IP,在学习的过程中能直观的看到数据的具体 ...

  9. (转载)浅析HTTP协议

    转自:http://www.cnblogs.com/gpcuster/ 浅析HTTP协议 HTTP协议是什么? 简单来说,就是一个基于TCP/IP通信的规范:双方要进行通信,大家都要遵守一个规范,这个 ...

  10. TCP、UDP、IP 协议分析

    http://blog.chinaunix.net/uid-26833883-id-3627644.html 互连网早期的时候,主机间的互连使用的是NCP协议.这种协议本身有很多缺陷,如:不能互连不同 ...

最新文章

  1. php t double arrow,关于php:php – 语法错误,意外T_DOUBLE_ARROW
  2. java子类和父类构造函数_java 子类和父类构造函数关系
  3. 排序算法(五):快速排序
  4. 【深度学习】神经网络的Python代码实现
  5. 论文阅读 | DasiamRPN
  6. 学计算机专业的需要买电脑吗,高三党升级“准大一生”,有必要买电脑吗?学长的回答可以参考...
  7. Alibaba Druid 源码阅读(二) 数据库连接池实现初步探索
  8. 简单的VB进度条程序
  9. 初中七年级上计算机试题答案,初中信息技术考试试题(含答案).docx
  10. java mac算法_银行业加密算法,MAC算法算法(java-国密)
  11. Microsoft edge已过期
  12. spss pro网络挑战赛A题:人群疏散模拟代码
  13. element表格多出一列空白
  14. 冒烟测试的7个好处,你是否经常用到它?
  15. 在线压缩图片大小网站分享
  16. 如何使用Proteus进行电路设计仿真?
  17. Xilinx公司的Vivado 2022.2版本在Windows和Linux系统上的下载配置教程
  18. DFD图转化成SD图
  19. tcc275CAN报文发送多帧只发送一帧的原因
  20. windows重建linux引导,Linux引导修复 利用Linux重建Windows引导

热门文章

  1. 数据仓库中的慢变化维度和快变化维度
  2. 微信公众号排版方法及相关素材网站
  3. 计算机专业的swot分析图,计算机专业学生个人SWOT分析案例
  4. 自制solidworks图框步骤_如何建立标准的solidworks图框模板
  5. 米粒搜---团购信息搜索软件 Android平台
  6. 英语视听说第六版答案
  7. MATLAB图像分割GUI
  8. 条码检测系统——基于MATLAB的一维条码识别
  9. 二叉树前中后序遍历的口诀
  10. 智能工厂信息化系统建设规划