欢迎来到天天文库
浏览记录
ID:12578579
大小:110.50 KB
页数:8页
时间:2018-07-17
《gsm短信编码与协议》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、GSM短信编码与协议分析(2007-01-1218:23:36)1短信基本原理由ESTI制订的SMS规范中,一共有三种方式来发送和接收SMS信息:BlockMode,TextMode和PDUMode。BlockMode已很少使用。TextMode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。PDUMode被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。PDU串表面上是一串ASCII码,由‘0’-‘9’、‘A’-‘F’这些数字和字母组成。它们是8位字节的十六进制数,或者BCD
2、码十进制数。PDU串不仅包含可显示的消息本身,还包含很多其它信息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。在PDUMode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可“压缩”成7个。我们通常在短信中所说的ASCII编码方式,实际上是指7-bit编码,而7-bit编码方式不仅能表示普通的ASCII字符,还可以表示一些特殊字符,因此7-bit编码和ASCII编码实际上
3、是两个完全不同的概念,它们仅仅在一些普通的ASCII字符上编码相同;8-bit编码通常用于发送数据消息,比如图片和铃声等;而UCS2编码用于发送Unicode字符。PDU串的用户信息(TP-UD)段最大容量是140字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是160、140和70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。2短信协议栈GSM定义的短信基本架构如下图:短信协议栈如下图:SM-AL:ShortMessageApplicationLayerSM-TL:ShortMessageTransferLayerSM
4、-RL:ShortMessageRelayLayer其它术语请参考《GSM03.40》相关文档3、短信PDU格式参考上图,我们着重讨论在SM-TL层的PDU结构。在SM-TL层,定义了以下六种PDU类型:SMS-DELIVER:从SC到MS传递短信SMS-DELIVER-REPORTSMS-SUBMIT:从MS到SC传递短信SMS-SUBMIT-REPORTSMS-STATUS-REPORTSMS-COMMAND不同的PDU类型,定义了不同的字段要求,比如SMS-DELIVER定义了TP-MTI,TP-MMS,TP-RP,TP-UDHI,TP-OA,
5、TP-PID,TP-DCS,TP-SCTS,TP-UDL,TP-UD,这些字段有些只占用一个位,有些占用多个位或一个字节或多个字节。图示布局如下:4、长短信分析随着手机终端的飞速发展,对长短信的支持越来越灵活,长短信应用也越来越广泛。比如现在很多手机已经支持自动拆分长短信为多条短信发送。在此我们详细研究长短信的编码方式。在以上章节举例的PDU字段中,需要特别留意几个字段:TP-UDHI,TP-UDL,TP-UD,对于一般非超长的普通短信,TP-UDHI字段是可选的,除非特殊的WAPPush等应用。但是对于超长短信,这个字段必须要设置为1,才能构造成功
6、的超长短信让手机自动合并。TP-UDHI(TP?User?Data?Header?Indicator)字段在第一个字节的第7bit位(bit6),占用一个bit,用来标识该短信是否拥有一个头信息,当TP-UDHI=0时,表示在TP?UD中没有头信息,当TP-UDHI=1时,表示在TP?UD中含有头信息。长短信必须要在TP-UD中构造特殊的头部信息。短信消息体中的头部信息的结构可参考如下:FIELDLENGTHLengthofUserDataHeader1octetInformation?Element?Identifier"A"1octetLengt
7、hofInformation?Element"A"1octetInformation?Element"A"Data0to"n"octetsInformation?Element?Identifier"B"1octetLengthofInformation?Element"B"1octetInformation?Element"B"Data0to"n"octetsInformation?Element?Identifier"X"1octetLengthofInformation?Element"X"1octetInformation?Element"X
8、"Data0to"n"octets头信息的作用有很多,其中之一就是用来标识超长短信(集联短信)。下面用一个实
此文档下载收益归作者所有