博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【收藏】MMS实现详细分析-2

Posted on 2010-11-22 15:18  nobile.amir  阅读(885)  评论(0编辑  收藏  举报

原文来自: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.