短信,到底是怎么工作的?
The following article is from 鲜枣课堂 Author 小枣君
以下文章来源于鲜枣课堂
前几天,小枣君看到了一篇新闻:
近日,工信部发布的《2018年上半年通信业经济运行情况》显示,上半年我国移动短信业务量同比增长8.8%;移动短信业务收入完成195亿元,同比增长5.7%。业内人士纷纷表示,短信业务焕发了“第二春”。
乍一看我觉得很奇怪,现在大家都用微信了,谁还用短信啊?
再仔细一想,恍然大悟——虽然我们没有发短信,但是我们每天收到的短信可不少啊。
小枣君的短信收件箱
快递、外卖、电商、打车……小枣君数了一下,平均每天会收到几十条各类通知短信,包括服务提醒、广告推销、还有平台验证码。
而这些短信里面,没有任何一条是个人短信(除了诈骗)。
这真是一件很尴尬的事情,手机用户们抛弃了短信,而商人们又把它从垃圾桶里捡回来,奉为至宝。
好吧,既然如此,那我们就来认真了解一下这个“老朋友”吧。
短信的历史
我们还是先回顾一下短信的历史。
1992年12月3日,年仅22岁的通信工程师Neil Papworth通过一台电脑,打出了“Merry Christmas(圣诞快乐)”这个信息,并通过英国沃达丰的GSM网络发送到一台重达2公斤的“便携式电话”——Orbitel 901。
Orbitel 901
而这条信息,就是人类历史上第一条短信。
然而,“短信”概念的提出,其实比这个要早得多。1984年,芬兰工程师Matti Makkonen设计和提出了现代短信系统的雏形。他也因此被称为“短信之父”。
Matti Makkonen(1952-2015)
话说,当Orbitel 901收到第一条短信之后,它的主人并没有进行回复。不是不想回复,而是没办法回复——因为这货没有发短信的功能。
到了1993年,诺基亚终于推出了全球首部支持发送短信的GSM手机——Nokia 1011。由此,短信时代才算是正式开启。
诺基亚1011
不过,随后几年短信的发展并不算很火。直到2000年,短信才迎来了真正的爆发。
就以我们国家为例吧。
2000年,中国移动、中国联通先后推出短信业务(中国第一条短信是谁发的,已经无从考证了)。
2001年,只一年的时间,全国短信发送量就达到惊人的189亿条,给运营商带来约20亿元的收入。
2005年,“超级女声”火爆全国,比赛是采取短信投票的方式。总决赛那天,冠军李宇春得到352万条短信投票,前三名一共收获了超过900万条短信,导致网络一度瘫痪。
妈蛋,竟然已经13年过去了…当年我还投过票呢…
短信的迅速普及,改变了人们的交流方式。尤其是年轻人,为了隐私方便,越来越喜欢通过短信进行联系和交谈。
除了年轻人之外,中年人甚至老年人也逐渐开始接受短信这种交流方式。尤其是逢年过节,祝福短信取代了电话,成了主流。
2009年,除夕至大年初七,全国的手机短信发送量超过180亿条。
到了2012年,我国的短信业务达到巅峰——全年手机用户共发送了9000亿条短信。
盛极必衰,从那以后,受智能手机和互联网即时通讯工具的影响,我国手机用户发送的短信数量开始逐年下降。
2002-2017年中国短信发送数量走势图
(单位:亿条)
到2017年,全国短信发送总量降至6644亿条,日均18.2亿条。
而互联网即时通讯工具呢?以微信为例,根据腾讯提供的数据,2017年11月时,日均发送消息数是380亿条。
18.2亿 VS 380亿,已经完全不是一个数量级了。
短信业务曾经为运营商贡献了大量的利润。如今,这笔钱我们普通用户不再掏了,但是,企业们还在掏,并且乐此不疲。
因为用户使用习惯和隐私保护的原因,除了电话之外,短信仍然是触达消费者最有效的手段。毕竟,只需要一个号码(甚至一个号段),就可以把消息送到你眼前。
因此,企业市场对短信仍然有强烈的需求。不管是金融证券,还是电商物流,甚至政府机构,都离不开短信业务。而且,随着互联网的发达,反而带动了短信业务的增长,为什么?短信验证码呀。。。
综上原因,短信业务迎来自己的“第二春”,就不难理解了。
短信的工作原理
说完短信的历史,我们再来看看短信的工作原理。
“短信”,也叫“短消息(Short Message)”。
我们经常看到的SMS,也就是“短消息服务(Short Message Service)”。
短消息服务分为两种,MO和MT,分别是Mobile Originate(短信起呼)和Mobile Terminated(短信终呼)。其实也就是发短信和收短信。
短信之所以称为短信,就是因为它“短”。短信的文本信息最大发送量只有160个字符(字母、数字或拉丁字母中的符号)。如果是中文的话,一条短信的最大发送量为70个汉字。
为什么是160个字符?主要是因为害怕系统过载。早期系统容量很低,开发人员经过协商后,一致同意使用一次160个字符的最大发送量。
但是160个字符的限制并不是绝对的。许多手机可以自动将短信拆分成若干个小于等于160个字符的信息块。这样,您就可以键入并发送一长条短信,只不过它会以几条短信的方式传输(当然,钱也多收几次)。
手机短信是一种存储和转发服务,这意味着,如果您向朋友发送一条短信,短信不会直接进入到您朋友的手机上,而是存储在运营商的短信中心(SMC,Short Message Center)。
这种方法的优势在于,您朋友的手机不必开机或处于服务区内,您也可以发送短信。您发出的短信将被存储在短信中心(可以根据需要存储数日),当您的朋友打开手机或进入服务区时,就会立即收到这条信息。如果不将它删除,这条短信将始终存储在您朋友的SIM卡上。
下面,我们以GSM网络为例,介绍一下短信的具体业务流程。
如果A用户要给B用户发短信。
首先,A用户的手机终端,通过随机接入信道(RACH),申请专用控制信道(SDCCH)。获得信道后,发起呼叫管理服务(CM Service Request),其中包含了服务类型信息,表明该服务是SMS服务。
和MSC(移动交换中心)合设的VLR(拜访位置寄存器),会对手机终端进行鉴权。鉴权通过后,通过无线接口协议(CP)和分程转发协议(RP),MSC建立起信令连接。其实就是UE向MSC发送CP DATA消息,消息中包括短消息数据以及相关地址信息。
在MAP层,MSC会通过MAP信令发送至SMS-IWMSC(短消息-互联移动交换中心),然后再到SMC(短信中心)。
SMC收到短消息后,会检查数据有效性,如果没问题,则会回复确认消息。
然后MSC会向手机终端发送CP-DATA消息,表示短消息已经成功送到了短信中心。此时,A用户的手机,会显示短消息发送成功。
这一段,就属于MO(短信起呼)。怎么样?晕了没?
还没结束呢!接下来,是MT(短信终呼)。
SMC会通过MAP协议,向短信接收方号码所在的HLR(归属位置寄存器),查询号码的合法性。同时,获取号码的IMSI,以及当前所在的VLR号。其实说白了,就是找到接收方的当前位置。
找到接收号码的MSC之后,SMC就会把短信发送过去。
MSC会对用户发起寻呼。当收到寻呼响应,就进行鉴权等工作。
如果B用户处于空闲状态(没有在打电话),那么短消息还是会通过专用控制信道(SDCCH)下发。
如果B用户处于非空闲状态,那么短消息会通过慢速随路控制信道(SACCH)下发。(因此,你打电话时也可以收到短信。)
但是,如果B用户当前存在一些问题,例如没信号或者手机存储空间满了。那么MSC会告诉HLR,HLR会对B用户做一些记录。例如,标记B用户为MNRF(Mobile Not Reachable Flag,移动用户不可及),或者MCEF(Memory Capacity Exceeded Flag,存储能力溢出)。
当B用户手机位置更新,或者删除短消息腾出空间之后,会告诉VLR,短消息功能可用。VLR再告诉HLR,HLR再提醒SMSC重新发起MT流程。
当B用户的短信最终下发成功后,B用户的MSC会提交确认报告给SMC。如果用户A登记了短信发送报告,那么用户A会收到短信已成功发送的提示。
以上就是GSM网络中,短信的工作流程。
短信的演进
在早期GSM网络中,短消息的信息容量小,而且只能发送文本消息。
到了GSM Phase2+,出现了增强型短消息业务(EMS)。
EMS的实现方式其实和SMS没有区别,无需升级网络设施,只需做一些软件扩展。简单来说,就是把多个SMS通道联合起来用。这样的话,可以发送10余倍于短信的消息,使短信业务从传送文本,扩展到黑白图片、简单动画以及铃声。尽管如此,EMS的信息量还是有限。
再后来,GSM引入了GPRS(通用分组无线服务),增加了分组承载通道,也就是能上网了。SMS可以分流到GPRS承载通道上,大幅增加了SMS的信息容量,降低了信令信道的负荷。
这就意味着,短信开始进入了MMS(多媒体短信服务)时代,可以发送动画、音频和视频文件。MMS还有一个更广为人知的名字,叫做“彩信”。
如今,不管是SMS,还是EMS、MMS,都已经无法满足用户的需要。传统CS时代正在落幕,现在已经是IMS时代。而IMS,能够提供更为丰富的融合通信服务(Rich Communication Suite,RCS),包括即时消息、语音、文件传输、内容共享、位置服务等。
总而言之,短信还是那个短信,但短信背后的技术,还有那群人,早已换了好几茬了。
往期推荐
技术琐话
以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。本号由坐馆老司机技术团队维护。