SMPP详解
SMPP (Short Message Peer-to-Peer)是承载应用(即ESME)与移动运营商SMSC之间A2P短信的开放TCP协议。ESME会开启持久绑定,将消息作为二进制submit_sm PDU提交,并通过同一套套接字接收状态报告。
工作原理
- 1
绑定
ESME打开一个TCP连接(理想情况下为TLS)并发送带有system_id和密码的bind_transceiver。它可以作为发送器(Transmitter)、接收器(Receiver)或收发器(Transceiver)进行绑定;通过SMPP 3.4进行收发器绑定是现代默认方式。
阅读完整回答 - 2
提交
每条消息都以submit_smPDU的形式发出,SMSC会通过携带message_id的submit_sm_resp进行确认。窗口期——即在未确认的情况下可以处于传输状态的PDU数量——是限制实际吞吐量的最常见因素。
阅读完整回答 - 3
接收状态报告
状态报告作为deliver_sm PDU以异步方式通过同一套接字(socket)到达,并由message_id匹配回原始消息。
阅读完整回答 - 4
保持会话活跃
每30秒一次的enquire_link心跳包可保持绑定状态,客户端通过指数退避机制进行重连,而解绑操作会干净地关闭会话。提交失败时会返回一个用于解码的数字command_status。
阅读完整回答
核心术语
每个术语都有对应的详情页面,提供完整解释。
- 什么是SMPP?SMPP (Short Message Peer-to-Peer)是SMSC、ESME(外部短消息实体)与聚合商之间交换短信的开放协议标准。
- SMPP协议是如何工作的?SMPP (Short Message Peer-to-Peer)是一种开放的TCP协议,用于在应用程序(即ESME)与移动运营商的SMSC之间传输A2P短信。
- 什么是ESME?ESME(外部短消息实体)是指任何在SMSC之外提交或接收短信的应用程序的SMPP术语。
- 什么是SMSC?SMSC(短信中心)是移动网络的核心基础设施组件,负责在移动设备与外部应用程序之间存储、转发和投递短信。
- 什么是SMPP窗口大小?窗口是指ESME在任何时刻单个绑定中处于进行中(已提交但尚未确认)的SMPP PDU数量。
- SMPP 3.4 vs SMPP 5.0 — 变化之处及使用建议SMPP 3.4 (1999)至今仍是目前几乎所有生产环境中A2P绑定的短信互联协议。
- 什么是DLR(状态报告)?DLR是短信已送达(或送达失败)至手机端的状态报告。
- 什么是TPS(每秒事务处理量)?TPS(每秒事务数)——也称为MPS或发送速率——是消息绑定或账户的吞吐量上限:即SMSC在返回限流错误之前,每秒可接收多少条短信submit_smPDU。
- 消息服务中的TLS 1.3——变化之处及其对SMPP的重要性TLS 1.3 (RFC 8446, 2018)取代了TLS 1.2,它拥有更快的握手速度,移除了过去十年中已被破解的所有算法,并强制执行前向安全性。
常见问题
您应该在何时选择SMPP而不是REST?
Choose SMPP when you sustain several hundred messages per second or need persistent binds (capacity per bind is agreed with your account team), run latency-critical OTP where every millisecond counts, or integrate into an operator/aggregator ecosystem that already speaks SMPP everywhere. Otherwise a REST SMS API (no fixed per-account rate limit at BroadNet) is simpler to run and delivers over the identical routes.
阅读完整回答我应该在新的集成中使用SMPP 5.0吗?
几乎从不。除非特定的交易对手要求使用5.0,否则请通过TLS绑定SMPP 3.4。目前的装机量、工具链和运营商支持都基于3.4,且5.0在商业A2P通道上并无送达率优势。
阅读完整回答如何在SMPP 3.4上发送阿拉伯语或emoji?
将data_coding设置为UCS-2 (0x08),或在message_payload TLV中携带正文。3.4可以很好地处理Unicode内容;您不需要为此使用5.0。
阅读完整回答我应该使用哪种绑定类型和端口?
通过TLS进行的收发器绑定是A2P的标准——它在同一个套接字上发送submit_sm并接收状态报告(DLR)。BroadNet提供SMPP 3.4绑定;主机、端口和凭据将在您申请测试权限时一并提供。
阅读完整回答