GSM短信编码与协议分析

2020-08-21 11:31

GSM短信编码与协议分析

1 短信基本原理

由ESTI制订的SMS规范中,一共有三种方式来发送和接收SMS信息:Block Mode, Text Mode和PDU Mode。Block Mode已很少使用。Text Mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。PDU Mode被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。 PDU串表面上是一串ASCII码,由‘ 0’-‘9’、 ‘A’-‘F’这些数字和字母组成。它们是8位字节的十六进制数,或者BCD码十进制数。PDU串不仅包含可显示的消息本身,还包含很多其它信息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。在PDU Mode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可“压缩”成7个。我们通常在短信中所说的ASCII编码方式,实际上是指7-bit编码,而7-bit编码方式不仅能表示普通的ASCII字符,还可以表示一些特殊字符,因此7-bit编码和ASCII编码实际上是两个完全不同的概念,它们仅仅在一些普通的ASCII字符上编码相同;8-bit编码通常用于发送数据消息,比如图片和铃声等;而UCS2编码用于发送Unicode字符。PDU串的用户信息(TP-UD)段最大容量是140字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是160、140和70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。

2 短信协议栈

GSM定义的短信基本架构如下图:

短信协议栈如下图:

SM-AL: Short Message Application Layer SM-TL: Short Message Transfer Layer SM-RL: Short Message Relay Layer 其它术语请参考《GSM 03.40》相关文档

3、短信PDU格式

参考上图,我们着重讨论在SM-TL层的PDU结构。在SM-TL层,定义了以下六种PDU类型: SMS-DELIVER:从SC到MS传递短信 SMS-DELIVER-REPORT SMS-SUBMIT:从MS到SC传递短信 SMS-SUBMIT-REPORT SMS-STATUS-REPORT SMS-COMMAND 不同的PDU类型,定义了不同的字段要求,比如SMS-DELIVER定义了TP-MTI, TP-MMS, TP-RP, TP-UDHI, TP-OA, TP-PID, TP-DCS, TP-SCTS, TP-UDL, TP-UD,这些字段有些只占用一个位,有些占用多个位或一个字节或多个字节。图示布局如下:

4、长短信分析

随着手机终端的飞速发展,对长短信的支持越来越灵活,长短信应用也越来越广泛。比如现在很多手机已经支持自动拆分长短信为多条短信发送。在此我们详细研究长短信的编码方式。

在以上章节举例的PDU字段中,需要特别留意几个字段:TP-UDHI, TP-UDL,TP-UD,对于一般非超长的普通短信,TP-UDHI字段是可选的,除非特殊的WAP Push等应用。但是对于超长短信,这个字段必须要设置为1,才能构造成功的超长短信让手机自动合并。

TP-UDHI(TP?User?Data?Header?Indicator)字段在第一个字节的第7 bit位(bit 6),占用一个bit,用来标识该短信是否拥有一个头信息,当TP-UDHI=0时,表示在TP?UD中没有头信息,当TP-UDHI=1时,表示在TP?UD中含有头信息。长短信必须要在TP-UD中构造特殊的头部信息。

短信消息体中的头部信息的结构可参考如下:

FIELD LENGTH Length of User Data Header 1 octet Information?Element?Identifier \Length of Information?Element \Information?Element \Information?Element?Identifier \Length of Information?Element \Information?Element \Information?Element?Identifier \Length of Information?Element \Information?Element \头信息的作用有很多,其中之一就是用来标识超长短信(集联短信)。下面用一个实际的例子来说明头信息的含义。

这是一条实际发送的8bit编码超长短信内容(TP_UD)的16进制编码: 05 00 03 1D 02 01 31 31 31 31 31 31 31??

05 : UDHL(User Data Header Length) 头信息长度,表示头信息中剩下数据的长度是5个字节;

00 : Information?Element?Identifier,当它取值为00时,表示此短信是采用8-bit reference的超长短信;

03 : Length of Information?Element,表示剩下数据的长度是3个字节;

1D: Information?Element Data,这里表示超长短信头信息中的reference number值,reference number用来标识一条唯一的超长短信,它通过一个算法来自动生成; 02: Information?Element Data, 这里表示超长短信头信息中的Maximum number值,即一条超长短信一共由几段组成;

01: Information?Element Data, 这里表示超长短信头信息中的Sequence number值,即该条短信属于整个超长短信中的第几段;

以上便是超长短信中头信息的内容,后面的内容即为短消息的内容本身,这里的内容全是数据“1” 。

需要注意的是,PDU串的用户信息长度(TP-UDL),在各种编码方式下意义有所不同。7-bit编码时,指原始短消息的字符个数,而不是编码后的字节数。8-bit编码时,就是字节数。UCS2编码时,也是字节数,等于原始短消息的字符数的两倍。如果用户信息(TP-UD)中存在一个头(基本参数的TP-UDHI为1),在所有编码方式下,用户信息长度(TP-UDL)都等于头长度与编码后字节数之和。如果采用GSM 03.42所建议的压缩算法(TP-DCS的高3位为001),则该长度也是压缩编码后字节数或头长度与压缩编码后字节数之和。

5、移动短信协议分析

中国移动关于短信的应用协议包括:CMPP/SMPP,这些应用层的协议最终传递到手机终端,均需要进行协议的映射或转换。以下着重探讨短信在各种协议下的编码对应关系。 格式 编码字段 字段说明

CMPP Msg_Fmt 在CMPP协议规范中定义 信息格式: 0:ASCII串;

3:短信写卡操作; 4:二进制信息; 8:UCS2编码; 15:含GB汉字

SMPP Data_coding (SMPP v3.4协议定义) Bits

7 6 5 4 3 2 1 0 Meaning 0 0 0 0 0 0 0 0 SMSC Default Alphabet 0 0 0 0 0 0 0 1 IA5(CCITT T.50)/ASCII

0 0 0 0 0 0 1 0 Octet unspecified(8-bit binary) 0 0 0 0 0 0 1 1 Latin 1(ISO-8859-1)

0 0 0 0 0 1 0 0 Octet unspecified(8-bit binary) 0 0 0 0 0 1 0 1 JIS (X 0208-1990) 0 0 0 0 0 1 1 0 Cyrllic (ISO-8859-5) 0 0 0 0 0 1 1 1 Latin/Hebrew(ISO-8859-8) 0 0 0 0 1 0 0 0 UCS2

0 0 0 0 1 0 0 1 Pictogram Encoding

0 0 0 0 1 0 1 0 ISO-2022-JP(Music Codes) 0 0 0 0 1 0 1 1 reserved 0 0 0 0 1 1 0 0 reserved

0 0 0 0 1 1 0 1 Extended Kanji JIS 0 0 0 0 1 1 1 0 KS C 5601 0 0 0 0 1 1 1 1 reserved ...

1 0 1 1 1 1 1 1 reserved

1 1 0 0 x x x x GSM MWI control 1 1 0 1 x x x x GSM MWI control 1 1 1 0 x x x x reserved

1 1 1 1 x x x x GSM Messsage class control

GSM PDU TP-DCS 在GSM03.40, GSM03.38规范中定义 具体定义请参考下表Data Coding Scheme(TP-DCS)

6、闪信/免提短信分析

在某些手机上(所有的Nokias,某些Siemens, Ericsson, Motorola 等

等..)class 0信息将被显示为一种flash SMS信息。这些信息只要一到达,将立即显示在屏幕上,而不需要按任何按钮。如果数据的编码方式是设置成

16-bit unicode (ucs2), 而且信息以\开头,那么它将作为一个闪烁的flash message显示。

Octet Value Description

TP-DCS 18 16 bits (UCS2), message class 0 TP-VP AA Validity period

TP-UDL 0C User Data Length, 12 octets

TP-UD 00 01 00 41 00 6C 00 65 00 72 00 74 User Data, message \

这个表显示了Flash SMS中的相关信息。

第一个unicode字符(\使能闪烁。这样的消息最长就是69个unicode字符。


GSM短信编码与协议分析.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏教版五年级上册数学第二次月考测试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: