SMPP (Short Message Peer-to-Peer) — это открытый двоичный протокол на базе TCP для обмена SMS между внешним приложением (ESME) и центром обслуживания коротких сообщений (SMSC). Это стандартный интерфейс для высокопроизводительной A2P-рассылки, потому что он сохраняет состояние сессии, имеет низкую задержку и штатно поддерживает отчёты о доставке.
bind_transceiverОткрыть и аутентифицировать сессиюbind_transceiver_respСессия принятаsubmit_smОтправить сообщениеsubmit_sm_respПринято, возвращен ID сообщенияdeliver_smПодтверждение доставки или входящее сообщениеdeliver_sm_respПодтвержденоenquire_linkKeepalive в режиме ожидания
Что такое SMPP и зачем он нужен
SMPP — это прикладной протокол уровня 7, позволяющий приложению обмениваться короткими сообщениями с SMSC или маршрутизирующим шлюзом. Там где REST API удобен при малых объёмах, SMPP представляет собой постоянную двоичную сессию, которая исключает накладные расходы HTTP на каждое сообщение, выдерживает тысячи сообщений в секунду на одном соединении и поддерживает операции отправки, доставки, запроса, замены и отмены, а также асинхронные отчёты о доставке. Он не зависит от нижележащей сети — SMSC берёт на себя доставку до абонента по SS7/MAP, SIGTRAN или IP. Впервые опубликованный компанией Aldiscon/Logica в конце 1990-х, сегодня он сопровождается форумом разработчиков SMPP; версия v3.4 (1999) остаётся самой распространённой.
ESME и SMSC
Два участника обмена — это ESME (External Short Message Entity, ваше приложение) и SMSC (Short Message Service Centre, шлюз оператора или агрегатора). ESME открывает TCP-соединение с прослушивающим портом SMSC (зарегистрированный в IANA порт 2775 для незашифрованного трафика) и проходит аутентификацию командой bind. Несмотря на название «peer-to-peer», отношения обычно строятся по схеме клиент (ESME) — сервер (SMSC); после установления сессии любая из сторон может инициировать PDU, за счёт чего SMSC передаёт обратно на ESME сообщения от абонентов (MO) и отчёты о доставке.
| Термин | Значение |
|---|---|
| ESME | External Short Message Entity — подключающееся приложение (ваш отправитель) |
| SMSC | Центр коротких сообщений — шлюз оператора/агрегатора |
| MC | Центр сообщений — термин версии 5.0, обобщающий SMSC |
| MT | Mobile-Terminated — сообщение, доставленное на мобильное устройство |
| MO | Mobile-Originated — сообщение, отправленное с мобильного устройства на ESME |
Модель сессии и транспорт
SMPP работает поверх одного долгоживущего TCP-соединения. После TCP-рукопожатия ESME отправляет PDU bind; при успешном bind_resp сессия переходит в связанное (bound) состояние и остаётся открытой неограниченно долго, поддерживаясь периодическими PDU enquire_link. Операции представляют собой пары запрос/ответ, коррелируемые по sequence_number, и одновременно может быть несколько незавершённых запросов (оконный / асинхронный режим) в пределах согласованного размера окна. Сессия завершается обменом unbind или закрытием TCP. У SMPP нет встроенного шифрования; конфиденциальность обеспечивается запуском сессии поверх TLS.
Версии: v3.3, v3.4 и v5.0
На практике важны три версии. v3.3 устарела и применяется редко. v3.4 ввела bind типа transceiver и опциональные параметры TLV и сегодня является фактическим отраслевым стандартом. v5.0 обратно совместима с v3.4 и добавляет сигнализацию управления перегрузкой, операции широковещательной рассылки и дополнительные состояния сообщения, но распространена меньше. Согласованная версия передаётся в поле interface_version команды bind: 0x34 для v3.4 и 0x50 для v5.0.
| Значение | Версия |
|---|---|
| 0x33 или ниже | SMPP версии 3.3 или более ранней |
| 0x34 | SMPP v3.4 |
| 0x50 | SMPP v5.0 |
Часто задаваемые вопросы
Используется ли SMPP в 2026 году?
Да. SMPP остаётся доминирующим протоколом для высокообъёмной A2P-рассылки SMS между приложениями, агрегаторами и SMSC операторов. REST API строятся поверх SMPP для удобства, но межсетевое взаимодействие со стороны оператора почти всегда использует SMPP поверх TCP, как правило защищённый TLS.
Какой порт использует SMPP?
Зарегистрированное в IANA значение по умолчанию — TCP-порт 2775 для незашифрованного SMPP. Единого стандартизированного порта для TLS нет, поэтому провайдеры выделяют отдельный порт с поддержкой TLS (например, 3550 или порт под учётную запись) для зашифрованных подключений. Всегда используйте порт, выданный вашим провайдером.
В чём разница между SMPP и SMTP?
Это не связанные протоколы. SMTP передаёт электронную почту; SMPP передаёт SMS между приложениями и SMSC. Похожие сокращения вызывают путаницу, но протоколы не имеют общей архитектуры, портов и формата сообщений.
Нужен ли мне SMPP или достаточно REST SMS API?
REST API проще и вполне подходит для малых и средних объёмов и быстрой интеграции. SMPP оправдывает себя при высокой пропускной способности, где постоянная двоичная сессия даёт меньшую задержку, более высокий устойчивый TPS и штатные отчёты о доставке в реальном времени по тому же соединению.
Технические характеристики источника
На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)