GSM网络中短信的工作流程 手机发短信是什么原理呢


GSM网络中短信的工作流程 手机发短信是什么原理呢

“短信” , 也叫“短消息(ShortMessage)” 。
我们经常看到的SMS , 也就是“短消息服务(ShortMessageService)” 。
短消息服务分为两种 , MO和MT , 分别是MobileOriginate(短信起呼)和MobileTerminated(短信终呼) 。其实也就是发短信和收短信 。
短信之所以称为短信 , 就是因为它“短” 。短信的文本信息最大发送量只有160个字符(字母、数字或拉丁字母中的符号) 。如果是中文的话 , 一条短信的最大发送量为70个汉字 。
为什么是160个字符?主要是因为害怕系统过载 。早期系统容量很低 , 开发人员经过协商后 , 一致同意使用一次160个字符的最大发送量 。
但是160个字符的限制并不是绝对的 。许多手机可以自动将短信拆分成若干个小于等于160个字符的信息块 。这样 , 您就可以键入并发送一长条短信 , 只不过它会以几条短信的方式传输(当然 , 钱也多收几次) 。
手机短信是一种存储和转发服务 , 这意味着 , 如果您向朋友发送一条短信 , 短信不会直接进入到您朋友的手机上 , 而是存储在运营商的短信中心(SMC , ShortMessageCenter) 。
这种方法的优势在于 , 您朋友的手机不必开机或处于服务区内 , 您也可以发送短信 。您发出的短信将被存储在短信中心(可以根据需要存储数日) , 当您的朋友打开手机或进入服务区时 , 就会立即收到这条信息 。如果不将它删除 , 这条短信将始终存储在您朋友的SIM卡上 。
下面 , 我们以GSM网络为例 , 介绍一下短信的具体业务流程 。
如果A用户要给B用户发短信 。
首先 , A用户的手机终端 , 通过随机接入信道(RACH) , 申请专用控制信道(SDCCH) 。获得信道后 , 发起呼叫管理服务(CMServiceRequest) , 其中包含了服务类型信息 , 表明该服务是SMS服务 。
和MSC(移动交换中心)合设的VLR(拜访位置寄存器) , 会对手机终端进行鉴权 。鉴权通过后 , 通过无线接口协议(CP)和分程转发协议(RP) , MSC建立起信令连接 。其实就是UE向MSC发送CPDATA消息 , 消息中包括短消息数据以及相关地址信息 。
在MAP层 , MSC会通过MAP信令发送至SMS-IWMSC(短消息-互联移动交换中心) , 然后再到SMC(短信中心) 。
SMC收到短消息后 , 会检查数据有效性 , 如果没问题 , 则会回复确认消息 。
【GSM网络中短信的工作流程 手机发短信是什么原理呢】然后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(MobileNotReachableFlag , 移动用户不可及) , 或者MCEF(MemoryCapacityExceededFlag , 存储能力溢出) 。
当B用户手机位置更新 , 或者删除短消息腾出空间之后 , 会告诉VLR , 短消息功能可用 。VLR再告诉HLR , HLR再提醒SMSC重新发起MT流程 。
当B用户的短信最终下发成功后 , B用户的MSC会提交确认报告给SMC 。如果用户A登记了短信发送报告 , 那么用户A会收到短信已成功发送的提示 。

推荐阅读