最后以一个MMS收发过程的WSP/WTP封装过程结束本片文章,假设该MMS小于1k,大于1k的mms用前面介绍的分组传送方法。
收发过程如图21所示:
配置
网关:10.0.0.172
网关端口:9201
mmsc uri:http://mmsc.monternet.com
最大发送PDU大小:100k
最大接收PDU大小:100k
retrieve mms Uri: http://211.136.221.75/aRc6xqYf5rr
收发彩信
1.建立连接
发送WSP PDU
WSP PDU Type: Connect
Version: 10
Headers: NULL
Capabilities: 04 80 86 a0 00 04 81 86 a0 00
Header HEX:01 10 14 00 04 80 86 a0 00 04 81 86 a0 00
发送 WTP PDU
WTP PDU Type: Invoke
CON: 0
GTR: 0
TTR: 1
RID: 0
TID: 1
Version: 0
TIDnew: 0
UACK: 0
TCL: 2
HEX:0a 00 01 02 + WSP PDU(Connect)
接收的WTP PDU
WTP PDU Type: Result
CON: 0
GTR: 0
TTR: 1
RID: 0
TID: 1
HEX:12 80 01 + WSP PDU(ConnectReply)
发送 WTP PDU
WTP PDU Type: Acknowledgement
CON: 0
Tve/Tok: 0
RID: 0
TID: 1
HEX:18 00 01
接收的 WSP PDU
WSP PDU Type: Connect Reply
Server session id: bb 95 78
Capabilities: 2 83 4
HEX:02 bb 95 78 xx 00 + Header
(注:bb 95 78 是Session ID uintvar类型,xx表示后面Header的长度)
2.接收mms
发送 WSP PDU
WSP PDU Type: Get
URI: http://211.136.221.115/aLPk5Ctwv31B
HEX:40 23 + http://211.136.221.115/aLPk5Ctwv31的ASC编码
发送 WTP PDU
WTP PDU Type: Invoke
CON: 0
GTR: 0
TTR: 1
RID: 0
TID: 2
Version: 0
TIDnew: 0
UACK: 1
TCL: 2
HEX:0a 00 02 12 + WSP PDU(Get)
接收的 WTP PDU
WTP PDU Type: Result
CON: 0
GTR: 0
TTR: 1
RID: 0
TID: 2
HEX:12 80 02 + WSP PDU(Reply)
发送 WTP PDU
WTP PDU Type: Acknowledgement
CON: 1
Tve/Tok: 0
RID: 0
TID: 2
TPI Type: PSN
CON: 0
Len: 1
PSN: 0
HEX:98 00 02 19 00
接收的 WSP PDU
WSP PDU Type: Reply
Status: 20
HeadersLen:0x33
ContentType:application/vnd.wap.mms-message
HEX:04 20 33 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 2e 77 61 70 2e 6d 6d 73 2d 6d 65 73 73 61 67 65 0 + WSP Header + MMS PDU(M-Retrieve.conf)
3.发送mms
发送 WSP PDU
WSP PDU Type: POST
MMSC uri: http://mmsc.monternet.com
ContentType: application/vnd.wap.mms-message
HEX:60 19 24 + http://mmsc.monternet.com的ASCⅡ编码 + application/vnd.wap.mms-message 的ASCⅡ编码 + MMS PDU
发送 WTP PDU
WTP PDU Type: Invoke
CON: 0
GTR: 0
TTR: 1
RID: 0
TID: 3
Version: 0
TIDnew: 0
UACK: 1
TCL: 2
HEX:0a 00 03 12 + WSP PDU(POST)
接收的 WTP PDU
WTP PDU Type: Result
CON: 0
GTR: 0
TTR: 1
RID: 0
TID: 3
HEX:12 80 03 + WSP PDU(Reply)
发送 WTP PDU
WTP PDU Type: Acknowledgement
CON: 1
Tve/Tok: 0
RID: 0
TID: 3
TPI Type: PSN
CON: 0
Len: 1
PSN: 0
HEX:98 00 03 19 00
接收的 WSP PDU
WSP PDU Type: Reply
Status: 20
HeadersLen:0x33
ContentType:application/vnd.wap.mms-message
HEX:04 20 33 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 2e 77 61 70 2e 6d 6d 73 2d 6d 65 73 73 61 67 65 00 + WSP Header + MMS PDU(M-Send.conf)
4.断开连接
发送 WSP PDU
WSP PDU Type: Disconnect
Server session id: bb 95 78
HEX:05 bb 95 78
发送 WTP PDU
WTP PDU Type: Invoke
CON: 0
GTR: 0
TTR: 1
RID: 0
TID: 4
Version: 0
TIDnew: 0
UACK: 0
TCL: 0
HEX: 0a 00 03 00 + WSP PDU(Disconnect)