`

MMS 协议学习笔记

 
阅读更多

什么是 MMS

MMS 是 Multimedia Messaging Service (多媒体消息服务) 的缩写,中文译为“彩信”,可以用于传送文字、图片、动画、音频和视频等多媒体信息。

手机终端合成多媒体消息后,可以向网内所有合法用户发送多媒体消息,由 MMSC ( 多媒体消息中心 )对消息进行存储和处理,并负责将消息在不同MMSC之间的进行传递转发,同时接收方用户可以从MMSC接收多媒体消息。

多媒体消息服务要求一个WAP网关,一个数据传输网(例如:电路交换网、GPRS 或者WCDMA等)和一个短消息中心。目前MMS业务在实现时是以WAP作承载,短消息作提示通知,由MMS手机自动到MMSC中去提取。

多媒体消息 的大小通常在几十K字节到上百K字节之间,这是由运营商和手机终端双方面决定的,目前中国大部分地区的手机仅支持小於50KB的多媒体信息。

 

MMS与SMS在消息发送方式上是相同的:都是存储一转发业务——即消息不直接送达用户,而是先送至消息中心,再经过消息中心转发到目标用户。但是MMS与SMS也存在很大差异,首先是网络结构和承载方式的不同:SMS是使用GSM的信令通道,而MMS是基于WAP协议栈,走数据通道,其传输能力大大超过SMS,用户不再受带宽的限制;第二,而MMS可以支持丰富的数据格式,包括图形、图像、声音、动画,在带宽允许的情况下还可以支持流媒体,这大大提高了消息内容的丰富程度和表达能力。

 

MMS协议概述

MMS是由OMA(Open Mobile Alliance)和3GPP(3G Partnership Project)共同主持制定的工业标准,其旨在寻求一种与系统无关的、开放的,使各种应用和业务能够在全球范围内的各种终端上实现的多媒体消息通讯标准。

 

MMS运行在WAP协议层之上,它不局限于传输格式,既支持CSD(Circuit-Switched Data 电路交换数据格式),也支持GPRS格式(General Packet Radio Service 通用分组无线服务),以WAP为载体传送视频、图片、声音和文字。

 

OMA负责定义的相关协议关注“消息如何打包 ”的问题,3GPP负责定义的协议则关注“消息如何发送、路由和接收 ”的问题。

 

OMA的主要协议文档:

 

3GPP的主要协议文档:

除以上罗列之文档外,还有WAP无线会话协议相关的文档需要了解,例如:SMIL等

 

MMS系统构成

构成MMS业务系统的主要网络单元如下图所示:


 

MMSC(多媒体消息业务中心)是整个系统的核心,它完成对MM的存储和处理,包括消息的输入输出、地址解析、通知、报告等等,它由MMS中继服务器MMS Relay 、MMS Server、User DB、Message Store共同组成。

 

WAP网关,因为SMS的传输信道对于MMS来说太窄了,所以MMS使用WAP的WSP作为传输协议,因此需要一个WAP网关连接MMSC和无线WAP网络

 

MMS Redirector(MMS重定向器):全网范围内会有若干个MMSC,它们的URL地址是唯一的,MMS重定向器就是负责发送者用户归属MMSC路由查询功能的网络实体

 

ENUM-DNS(号码域名解析器):解析接收方用户归属的MMSC的地址,接收MMSC发送的查询请求,查询接收者地址对应的归属MMSC的URI地址,并返回给MMSC,由MMSC将消息发往该用户归属MMSC服务器。

 

MMS系统接口

注:接口命名有两种方式,一种是MMSm / MMSR ,另一种是MM1/MM2等 ,其都指相同东西;

 

整个MMS业务系统的运转是所有相关网络功能实体的相互通讯协作来达成,MMS相关协议文档的主要功能之一,就是 明确定义各网络功能实体之间相互通讯协作的标准接口,以下是相关接口的简要说明:

  • MM1(MMS M ) 接口 :MMS Relay/Server 和MMS Client之间的接口
  • MM2(MMSS )接口:MMS Relay和MMS Server之间的接口;
  • MM3接口:MMS Relay/Server 与外接应用服务器之间接口;
  • MM4接口:不同MMSC之间交互的接口;
  • MM5接口:MMS Relay/Server和HLR(Home Location Register)之间的接口; 注:HLR是一个中央数据库,其记录了每个移动电话用户使用GSM核心网络功能的授权信息;
  • MM6接口:MMS Relay/Server 和MMS User DB之间交互的接口;
  • MM7接口:MMS Relay/Server和MMS增值业务应用平台之间的接口;
  • MM8接口:MMS Relay/Server与计费系统之间的接口;

MM1(MMSM )接口将是我们的学习重点,这是我们开发彩信应用程序必须要了解的规范知识。

 

MMS Client 业务模型(MMS Client Transaction Model)

以MM1接口为讨论范围,则MMS服务实现了MMS Client和MMS Proxy-Relay服务器之间的业务调用,业务(Transaction)特指信息的传递流程及方式,以其对MMS终端设备状态变化的影响。下面详述各种不同的与MMS Client 相关的业务类型:

 

  • M-Send :MMS 客户端发送消息到MMS Proxy-Relay 服务器

M-Send业务提供了MMS Client向MMS-Relay提交多媒体彩信,并获得响应信息的基本机制,下图是该业务的通讯流程:

在MMS Client向MMS Relay提交的PDU(Protocol Data Unit)中,包含有能唯一标识其自身的ID字段,该字段使得请求/回应(req/resp)被对应关联起来。

MMS Relay服务器 收到一个M-Send.req PDU时,它会回应一个M-Send.conf数据包,其中包含有请求处理结果的状态代码。如果MMS Relay能够成功处理该请求,那状态代码将为'OK',并会返回一个message-ID作为MM的唯一标识。

  • M-Notification :MMS Proxy-Relay服务器发送通知到MMS 客户端;

MMS Relay服务器发送 M-NotificationPDU 给MMS Client,以告知其有新的多媒体消息,同时MMS Client 回应状态代码 ,下图是该业务的通讯流程:

在MMS-Relay服务器发往MMS Client的PDU——M-Notification.ind 中包含有一个兼容于RFC2396的URI,这是收取MM的入口地址,还有消息大小、过期时间、推荐收取方式等附加信息。

MMS Client收到M-Notification.ind PDU后会主动回应一个M-NotifyResp.ind数据包,以表明已得到通知。

  • M-Retrieve :MMS 客户端从MMS Proxy-Relay服务器收取MM——多媒体消息;

M-Retrieve业务是MMS Client发送给 MMS Relay服务器以收取MM的请求,该请求的PDU传输在WSP/HTTP协议之上。取决于收取方式(即时收取or延时收取)的不同,在MMS-Relay服务器和MMS Client之间可能需要一个确认环节,下面分别是即时收取和延时收取时的通讯流程:

MMS Client会以 M-Notification.ind PDU中的URI为参数,向MMS Relay服务器 索取MM内容。服务器会想MMS Client回应M-retrieve.conf数据包,如果成功的话其中会包含完整的MM内容,当然回应中的状态代码会指示操作是否成功。

 

  • M-Forward :MMS 客户端向MMS Proxy-Relay服务器发送转发请求;

M-Forward业务使得MMS Client可以将MMS-Relay服务器中的一条MM转发给其它用户,下面是该业务的通讯流程:


MMS Client发送一个M-Forward.req PDU到MMS-Relay服务器,该请求中包含有定位MM的URI,以及至少1个的目标地址(即被叫用户的号码)等参数,MMS-Relay服务器会回应一个M-Forward.conf PDU,其中包含指示操作是否成功的状态码。另外, 转发业务是一个可选功能,在某些运营商的网络上可能不会被支持。

 

  • M-Delivery :MMS Proxy-Relay服务器发送投送报告给MMS 客户端;

M-Delivery业务允许源MMS Client(即 发送 彩信的用户)及时得到信息被投递的通知,该通知是一个M-Delivery.ind数据包,下面是该业务的通讯流程:

该业务 只有一个步骤,没有对应回应环节,其发送给MMS Client的PDU 包含了源消息的发送情况,如果有多个目标用户,则会有多条 M-Delivery.ind 数据包

另外,与投递报告相似的还有“已读报告(Read Report)”,取决于Client端的版本会有两种不同的情况:MM阅读报告、PDU阅读报告。

 

  • M-Cancel :MMS Proxy-Relay服务器向MMS 客户端发送取消请求;

M-Cancel业务允许MMS-Relay服务器向MMS Clinet发送撤销一条多媒体消息的请求,下面是该业务的通讯流程图:


MMS-Relay服务器会向MMS Client发送M-Cancel.req数据包,其中包含了目标MM的ID,例如:cancel ID。该业务是可选功能,在某些运营商的网络上可能不会实现

 

  • M-Delete :MMS 客户端从MMS Proxy-Relay服务器上删除多媒体消息;

M-Delete业务允许MMS Client删除MMS-Relay服务器上的一条多媒体信息,下面是该业务的通讯流程图:


MMS Client想要删除1条或多条存储在MMS-Relay服务器上的MM时,可以发送M-Delete.req数据包到MMS-Relay服务器,该数据包含1个或多个标识具体MM的URI,而MMS-Relay服务器会回应M-Delete.conf数据包,其中包含有操作完成情况的状态码。

 

MMS消息格式及封装

在以上 业务模型的介绍中,通讯流程中的主体是 用于承载业务数据的PDUs(Protocol Data Units),本节将关注这些数据单元的基本机构、内容组成、封装编码等几个方面。 MMS PDU的内容类型(content-type)必须被指定为 application/vnd.-wap.mms-message ,用于被客户端准确识别。

基本结构

MMS PDU由消息头(Header)和消息体(Body)组成。Header具体描述了PDU的特定信息,Body是消息的具体内容(Body体是可选的)。大多数MMS PDU只含有 Header 域,用于建立和维持通信, Body体 只用在M-Send.req 和 M-Retrieve.conf 两个数据包中。下图是MMS PDU基本结构的示意图:

消息头(Header) 由一系列的域组成,包括PDU类型,接受方,发送方,发送时间等等。Header域中的项分为可选项和必选项,并且在编码MM头域时,X-Mms-Message-Type,X-Mms-Transaction-ID 和 X-Mms-MMS-Version必须位于MM头的最开始,而且要严格按照所列顺序,Content-Type头域必须在MMS头域的最后,其后为消息体,其它域的顺序可以随意安排。

消息体 Body 是多个不同类型的多媒体对象组成的,每个对象占据一个部分——Part(参见RFC2387标准),根据各个部分是否有序,消息的组装方式分为:

  • .application/vnd.wap.multipart.mixed :所有的消息内容混合在一起,没有时间上的顺序,终端同一时间一次就把所有的消息内容显示出来。
  • .application/vnd.wap.multipart.related :消息内容的各部分之间有一定的关系,该关系可能是显示时间上的先后,或者显示位置的不同,等等。这使得消息能够像“幻灯片”一样的显示。

消息体的内容组成

 

在application/vnd.wap.multipart.mixed类型的PDU中,仅包含有组成MM的所有多媒体内容,而在application/vnd.wap.multipart.related类型的PDU中还会包括Presentation —— 即消息内容的显示控制部分,该部分使用SMIL标记语言编写,用来描述MM中各部分的播放次序,显示/播放时间,结束时间以及在屏幕中 显示位置,等控制信息

通常, Presentation部分是消息体的第一个part,若不是则必须使用start 字段指出其所在位置, Presentation部分并不会被显示出来,而仅仅是让终端根据它获取一些控制信息,这些信息决定了其它内容的显示大小、先后顺序、位置等

 

最后 采用 MIME标准( Multipurpose Internet Mail Extensions - 多用途互联网邮件扩展 )将 完整的MM(包括: SMIL 文本、图像、声音、视频等 各个独立部分) 打包封装在一起,并发送。 MIME标准定义在RFC2045RFC2046RFC2047RFC2048RFC2049 等多个RFC标准之中。

 

MM的二进制编码封装

大多数情况下,MM都基于WAP协议进行传输,它将MMS PDU被封装在WSP/PDU之中 作为WSP的消息体进行传输,并采用WAP/WSP协议作为传输内容的二进制编码(binary encoding)机制,进行消息的封装(Encapsulation)。

在OMA-TS-MMS-ENC-V1_3-20080128-C.pdf文档所在规范中,详细定义了每个PDU所涉及的Header域和值,以及为它们分配的二进制码的一一对应关系。采用此二进制编码规范,节约了无线领域的带宽资源,并最优化其在空中传播的数据量。

具体对应关系请参阅相关文档。

来源:http://www.iteye.com/topic/618885

分享到:
评论

相关推荐

    IEC61850 MMS协议解析

    IEC61850 MMS 协议解析 IEC61850 MMS 协议是一种用于电力系统自动化领域的通用标准,旨在实现不同制造设备之间的互操作。MMS(Manufacturing Message Specification)是一种制造报文规范,用于在设备或程序之间传送...

    MMS协议报文实例分析

    【MMS协议报文实例分析】 MMS(Microsoft Media Server)协议是微软开发的一种用于流媒体传输的协议,常用于在线视频和音频流的播放。本文将深入探讨MMS协议中的报文结构,并通过实例分析报文内容,帮助开发者更好...

    mms协议中英文对照版

    《MMS协议中英文对照详解》 MMS(Multimedia Messaging Service)协议,是一种用于传输多媒体内容的协议,尤其在移动通信领域应用广泛。本文旨在为MMS协议的研究者提供一个中文参考,虽然存在可能的翻译疏漏,但仍...

    MMS协议规范范.pdf

    ### MMS协议规范详解 #### 一、MMS协议简介 MMS(Manufacturing Message Specification,制造报文规范)是一种工业控制系统中广泛使用的通信协议,主要用于实现不同制造设备之间的信息交换与互操作。该协议通过...

    dget-0.15-dbg.tar.gz_MMS 协议栈_MMS协议_dget_mms流媒体_协议栈

    总之,MMS协议栈是多媒体流传输的重要组成部分,`dget`工具及其源代码提供了一个学习和研究MMS协议的平台。深入理解MMS协议的细节,有助于开发者优化流媒体服务,提高用户体验。通过调试版本,可以更好地追踪和修复...

    MMS协议原理及实现.pdf

    ### MMS协议原理及其实现 #### 一、引言 多媒体信息服务(MMS)作为一项基于3GPP和WAP论坛标准的创新业务,旨在通过整合WAP技术,为用户提供非实时的多媒体信息服务,包括视频、图片、声音和文字的传输。MMS不仅...

    MMS协议原理及实现

    ### MMS协议原理及其实现 #### 一、引言 多媒体信息服务(Multimedia Messaging Service,简称MMS)是一项基于3GPP和WAP论坛标准的新型非实时信息服务。MMS能够利用WAP技术,在GSM网络、GPRS、CDMA1X以及未来的3G...

    mms协议下录制asf程序源代码

    通过深入研究AsfRecorder的源代码,开发者可以掌握MMS协议的细节,了解如何在客户端实现流媒体数据的捕获和存储,这对于开发媒体服务器、流媒体客户端或者网络监控工具都是宝贵的技能。同时,这也涉及到版权问题,...

    mms7协议

    MMS协议基于WAP(Wireless Application Protocol,无线应用协议)框架,它扩展了传统的SMS(Short Message Service,短消息服务)功能,使得用户可以通过手机发送和接收多媒体信息。MMS系统通常包括MMS代理服务器、...

    mms.tar.gz_MMS_mms 协议

    MMS,全称为Multimedia Messaging Service,中文名为多媒体信息服务,是一种允许移动设备间发送和接收多媒体消息的...通过深入学习这些内容,开发者可以更好地理解和应用MMS协议,从而实现高效、稳定的多媒体消息服务。

    parse-mms-samples.rar_MMS_MMS协议_completelyceq_mms file parse_mms

    学习和理解MMS协议对于开发与移动通信相关的应用程序,尤其是多媒体内容的传输和管理至关重要。通过分析提供的文件,开发者和研究人员可以深入理解MMS协议的工作流程,并能有效地实现MMS消息的发送和接收功能。同时...

    mms、rtsp协议文档

    **一、MMS协议** MMS是由微软公司开发的一种流媒体协议,主要用于其自家的媒体服务器产品,如Windows Media Services。由于微软并未提供官方的MMS协议文档,许多细节依赖于社区的研究和分享。MMS协议基于TCP/IP,...

    MMS.rar_MMS_mms协议文档

    通过深入学习这些文档,你可以掌握MMS协议的核心概念、工作流程以及实际应用中的关键点。无论是对于移动通信工程师、开发者还是对MMS技术感兴趣的学习者,这些内容都将提供宝贵的参考和指导。了解MMS协议,意味着你...

    MMS 通讯 协议解析记录

    MMS协议遵循OSI七层模型,处于最高层的应用层。其通信机制采用客户端/服务器架构,服务可分为确认型和非确认型两类,前者在数据传输过程中会要求接收方的确认,后者则不然。这种设计保证了可靠性和效率的平衡。 MMS...

    mms 协议 文档 介绍了mms协议和所有的命令等 对于mms研究者大有用处

    MMS协议主要用于提供实时或非实时的多媒体服务,如音频、视频和图像的播放。它通常与Microsoft的流媒体技术相关,尤其是在Windows Media Player中使用。 MMS协议文档是研究MMS技术的重要资源,它详细列出了协议的...

    MM7_6.3.0 C# MMS协议Demo

    MM7_6.3.0 C# MMS协议Demo是一个专为开发者设计的工具,用于理解和实现移动多媒体消息服务(MMS)中的MM7协议。MMS是一种允许移动设备之间发送和接收多媒体内容(如图片、音频、视频等)的通信协议,而MM7是MMS服务...

    mms wap2.0协议

    4. **MMS协议组件** - **WAP Push Service**:用于将MMS消息推送到接收方设备,基于WAP2.0的Push协议。 - **MMSC(Multimedia Messaging Service Center)**:是MMS系统的核心组件,负责存储、转发和管理MMS消息。...

    mms开发文档-协议

    一、MMS协议基础 MMS基于WAP(Wireless Application Protocol)协议栈,通过GPRS(General Packet Radio Service)或更高级的3G、4G网络进行数据传输。其核心协议包括: 1. MM7:用于MMS服务器与终端设备之间的...

    3GPP MMS彩信协议

    3GPP MMS协议,具体指3GPP TS 23.140与TS 24.0550,是定义MMS服务的规范,为移动通信提供了一种富媒体通信方式。 1. **3GPP标准框架** 3GPP是一个全球性的标准化组织,负责制定第三代和后续移动通信系统的技术规范...

Global site tag (gtag.js) - Google Analytics