短信是通信网络中比较传统的数据通信方式,虽然现在很多OTT(例如微信)移动互联网的应用对传统的短信业务带来很大的冲击。但是仍不可小觑短信应用在目前纷繁复杂应用场景发挥着重要的作用。然而对于短信,你又了解多少呢?
短信Short Message Service,简称SMS是用户通过手机或其他电信终端直接发送或接收的文字或数字信息,用户每次能接收和发送短信的字符数,是160个英文或数字字符,或者70个中文字符(摘自百度百科)。短信的应用场景如下:
1. 人与人间的沟通,这方面的使用正在慢慢减少
2. 各种纷繁复杂应用的辅助功能,例如:用短信传递校验码完成用户安全认证,由于业务需要向用户推送通知等
3. 利用短信某方面特性,完成特定的业务需要,例如:隐式的短信来探测用户手机状态或传递某种特殊数据等
短信从实质上来讲,并非是实时的通信,两个终端是通过中间的短信中心来完成短信的沟通,短信中心可以认为是一个具有极高性能的消息网关。通过一定的机制将消息投递到目标手机终端。
目前比较常见的短信方案有:
1. 直接通过标准短信协议进行通讯
2. 通过包装过的简单WebService接口,如ParlayX规范SMS接口
3. 通过数据库方式,对端定时扫描数据库来完成一条一条的短信任务的发送
后面两种在做一般短信时是没有问题,但是要处理特殊的短信需求,一般还是通过直接底层协议对接方式。
标准的短信协议是SMPP,SMPP(ShortMessage Peer to Peer)协议是一个开放的消息转换协议;它定义了一系列操作的协议数据单元(PDUS)和当SMPP运行时ESMS应用系统与SMSC之间交换的数据格式。从而完成SMSC与ESMES(外部短消息实体)的信息交换。SMPP是基于SMSC与ESME之间的请求和响应协议数据单元的交换,每一个SMPP操作都由一个请求PDU和相应的一个响应PDU组成,这种交换一般是基于IP网络。
另外,在国内的几大运营商也都基于此,各自制定自己的短信协议规范,如:
中国电信:SGMP
中国移动:CMPP
中国联通:SGIP