原文来自:http://hi.baidu.com/luv_resplendent/blog/item/bf597507bf427fc87a894754.html
为了便于理解,以下以发送请求(M-Send.req) PDU为例,对MMS PDU的头域和二进制编码进行了分析。
MMS PDU的头域
具体含义见表
MMS头:
8C—表示X-Mms-Message-Type
80— m-send-req
98— X-Mms-Transaction-ID
39 36 30 34 30 35 39-Transaction-ID值:9604059
8D— X-Mms-Version
90— MMS Version值1.0
2B 38 36 3133 39 30 30 30 30 30 30 30 30—具体源地址:+8613900000000
2B 38 36 3133 35 32 31 30 36 39 35 36 34—目的地址:+8613521069564
2F 54 59 50 45 3D 50 4C 4D 4E 00— TYPE=PLMN
96—主题
7465737400—主题值:test
32 30 30 36 30 33 33 313138 33 37 00— 200603311837(2006.3.31 18:37)
85—表示date
88—表示X-Mms-Expiry
44 30 FB F3— X-Mms-Expiry时间值
84—表示:Content-Type
MMS消息体:
A3—表示:application/vnd.wap.multipart.mixed
A1—表示:multipart/form-data
9E—表示:image/jpeg(表示之后的图片数据属性为JPEG格式)
FF D8—表示图片的开始
······—表示传输的JPEG图片数据(本论文对JPEG图片数据不再作分析)
FF D9—表示图片的结束
以上分析的就是一个典型的MMS PDU消息格式,即MMS PDU包含MMS头和MMS消息体。发送的MMS信息只有一张图片,采用JPEG编码格式;目的手机号:13521069564;主题值:test.
由于只发送单一的图像或文本,Content-Type被设置为applicationJvnd.wap.multipart.related方式。Content-Type后面是JPEG图像数据:image/jpeg,再不需要加入SMIL描述部分和Start参数设置,这样可以减少传输的字节数据,优化网络传输。在实现MMS发送时,可以根据MMS的内容选择不同的Content-Type.
为了节约无线领域的带宽资源,表中分配数值即为每个域名关键字使用预定义的二进制编码,MMS PDU封装的二进制编码的基本编码机制来源于WAP/WSP,最优化在空中传播的数据量。MMS PDU生成及翻译是MMS客户机程序的重要组成部分。其它类型的PDU头域大致和发送请求(M-Send.req)的头域是类似的。
MMS PDU数据分析
现以MMS发送过程中获取的一段MMS PDU数据流为例进行数据分析(具体的MMS发送数据流和数据流获取过程将在后面分析)。这段MMS PDU数据流是十六进制数据,进行ASCII码转换后(为了与MMS控制字符区别,部分ASCII码做了数据转意),对照前面分析的MMS PDU封装格式和头域编码,根据对解码数据的分析,这段典型的MMS PDU协议封装格式分析如下:
获取的MMS PDU十六进制数据流:
8C809820202039363034303539008D90891A802B383631 33 39303030
30303030302F545950453D504C4D4E00972B3836313335323130363935
36342F545950453D504C4D4E0096746573740032303036303333313138
33 37 00 85 04 44 2D 07 73 88 06 80 04 44 30 FB F3 84 A3 0101 A1 9E FF D8......(标准
的JPEG图片数据略)......FF D9
其中对某些具体数据分析如下:
MMS头:
8C—表示X-Mms-Message-Type
80— m-send-req
98— X-Mms-Transaction-ID
39 36 30 34 30 35 39-Transaction-ID值:9604059
8D— X-Mms-Version
90— MMS Version值1.0
2B 38 36 3133 39 30 30 30 30 30 30 30 30—具体源地址:+8613900000000
2B 38 36 3133 35 32 31 30 36 39 35 36 34—目的地址:+8613521069564
2F 54 59 50 45 3D 50 4C 4D 4E 00— TYPE=PLMN
96—主题
7465737400—主题值:test
32 30 30 36 30 33 33 313138 33 37 00— 200603311837(2006.3.31 18:37)
85—表示date
88—表示X-Mms-Expiry
44 30 FB F3— X-Mms-Expiry时间值
84—表示:Content-Type
MMS消息体:
A3—表示:application/vnd.wap.multipart.mixed
A1—表示:multipart/form-data
9E—表示:image/jpeg(表示之后的图片数据属性为JPEG格式)
FF D8—表示图片的开始
······—表示传输的JPEG图片数据(本论文对JPEG图片数据不再作分析)
FF D9—表示图片的结束
以上分析的就是一个典型的MMS PDU消息格式,即MMS PDU包含MMS头和
MMS消息体。发送的MMS信息只有一张图片,采用JPEG编码格式;目的手机号13521069564;主题值:test.
由于本实验中只发送单一的图像或文本,Content-Type被设置为applicationJvnd.wap.multipart.related方式。Content-Type后面是JPEG图像数据:image/jpeg,再不需要加入SMIL描述部分和Start参数设置,这样可以减少传输的字节数据,优化网络传输。在实现MMS发送时,可以根据MMS的内容选择不同的Content-Type.