LTE网络下的SMS收发(SMS Over SGs方案的详细流程)

Stella981
• 阅读 2386

关键词: IMS,SMS, LTE, MSC, MME, EPS,eNodeB, SMS Over SGs, SMS Over IMS

2G时代由于采用了比较复杂的CS/PS域架构,所以SMS(短信)作为上个世纪的产物,一直寄居在2G的CS域架构下。看看核心网的配置,其实SMS的收发还是比较复杂的。
介绍下面的信息之前你需要去百度一下这些关键词,这里我只说明比较重要的三个单元

  • MS 移动终端(可以理解为手机)
  • SMS-SC 短消息中心
  • MSC 移动业务交换中心(mobile switching center),是2/3G CS域的核心,它提供交换功能以及面向系统其他功能实体。短信服务会经过这个单元进行处理
    LTE网络下的SMS收发(SMS Over SGs方案的详细流程)

而LTE核心网已经没有了短信业务单元,也就是说在设计核心网的时候,根本就没把短信业务当回事。实际也是如此,这年头除了广告和验证码,谁还会用短信。

LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
但是为了给运营商创造点利润以及为了一些旧业务的兼容,短信也不可能完全被抛弃,那怎么办呢?

方案一:SMS Over SGs

这是什么呢?我们都知道目前的LTE网络是和2/3G网络并存的,那核心网搞个网线把2G核心网和4G的核心网连起来不就行了,这样有短信就可以通过这根网线来收发短信了,多方便,而且不增加什么成本。没错这个SGs就根网线,两头连接的是LTE核心网MME单元和2G的MSC服务器单元,这样短信就顺利地利用上了2G的已有短信技术,而且对于手机来说又不用回落到2G网络,直接在4G网络下实现短信收发。我们来具体看看这根神奇网线的布局
LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
SGs接口传输的协议格式如下图,这里了解一下就可以,不必细究。
LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
我们重点讲一下对于ME测,要想用这个方案该如何处理:

  • 1,ME在网络注册的时候使用Combined EPS/IMSI attach参数注册

EMM ATTACH

ME

EPS

Non-Access-Stratum (NAS)PDU
    0000 .... = Security header type: Plain NAS message, not security protected (0)
    .... 0111 = Protocol discriminator: EPS mobility management messages (0x7)
    NAS EPS Mobility Management Message Type: Attach request (0x41)
    0... .... = Type of security context flag (TSC): Native security context (for KSIasme)
    .001 .... = NAS key set identifier:  (1)
    .... 0... = Spare bit(s): 0x00
    .... .010 = EPS attach type: Combined EPS/IMSI attach (2)
  • 2,位置更新时候同样需要带上这个参数。
    这样核心网就会在MMEMSC之间创建一个通信实体,用来处理短信收发。

1, 发短信(MO Message)

LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
重点看下MME和UE之间的信令

2, 收短信(MT Message)

LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
短消息到达短信中心后,短信中心发起paging请求,MME请求相关eNodeB发起paging,MS收到paging消息后,发起Service Request,后面就是把短消息内容通过NAS层递交给ME,完成消息接收过程。具体过程见下图,图中的1234便是短信息内容。

LTE网络下的SMS收发(SMS Over SGs方案的详细流程)

方案二:SMS Over IMS

既然LTE都已经全面实现了基于IP通信,那基于IP实现个短信业务那不是相当简单,直接像微信或者其他聊天室工具一样,把短信放到IP数据包里传输不就完了。是的这个方案就是这么个意思。但实际上实现起来要考虑的细节还很多,要不然怎么能体现伟大的3GPP以及菊花厂、爱立信、诺基亚这些通信大佬的威力呢
IMS全称IP Multimedia sunsystem的缩写,是用IP的方式实现多媒体业务。没错既然是多媒体那肯定包含了语音、文字、图片等。VOLTE也就是高清通话就是这个技术的最为普遍和广为人知的一个应用。这个方案是完全不要落后的2/3G网络的,是完全基于LTE网络来实现的。

  • 短信收发流程:
    LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
    LTE网络下的SMS收发(SMS Over SGs方案的详细流程)

  • 接受短消息(MT SMS)

LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
LTE网络下的SMS收发(SMS Over SGs方案的详细流程)
是不是所有网络都支持这两种方案呢?从目前笔者了解到的信息,国内运营商中国移动采用了方案一 SMS Over SGs,因为移动的2G到目前为止也还依然健在,这个方案只要升级一下MSC Server就可以了,所以成本较低。而中国电信因为2/3G业务基本上没有积累多少用户量,所以他们的4G网络发展的更为快速,支持的是更为先进的方案二 SMS Over IMS。而中国联通由于没有调查过,没有发言权。将来是否会发生变化,很难说。因为协议是标准的,用哪种方案完全取决于运营商。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
2星期前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
6个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这