SMPP 설명
SMPP(Short Message Peer-to-Peer)은 애플리케이션(ESME)과 모바일 통신사의 SMSC 사이에서 A2P SMS를 전달하는 개방형 TCP 프로토콜입니다. ESME는 지속적인 바인드를 열고, 메시지를 바이너리 submit_sm PDU로 제출하며, 동일한 소켓을 통해 전송 결과 보고를 수신합니다.
작동 원리
- 1
바인드
ESME는 TCP 연결(가급적 TLS)을 열고 system_id와 비밀번호가 포함된 bind_transceiver를 전송합니다. 송신자(Transmitter), 수신자(Receiver) 또는 송수신자(Transceiver)로 바인드할 수 있으며, SMPP 3.4를 통한 Transceiver 바인드가 최신 기본 설정입니다.
전체 답변 읽기 - 2
제출
각 메시지는 submit_sm PDU로 발송되며, SMSC는 message_id를 포함한 submit_sm_resp로 수신을 확인합니다. 확인되지 않은 상태로 전송 중인 PDU의 개수인 '윈도우(window)'가 실제 처리량을 제한하는 가장 흔한 요인입니다.
전체 답변 읽기 - 3
전송 결과 보고 수신
전송 결과 보고는 동일한 소켓에서 deliver_sm PDU 형태로 비동기적으로 도착하며, message_id을 통해 원래 메시지와 매칭됩니다.
전체 답변 읽기 - 4
세션 유지
30초마다 실행되는 enquire_link 하트비트가 바인드 상태를 유지하며, 클라이언트는 지수 백오프(exponential backoff) 방식으로 재연결하고, unbind는 세션을 정상적으로 종료합니다. 전송 실패 시 디코딩 가능한 숫자형 command_status를 반환합니다.
전체 답변 읽기
주요 용어
각 용어는 상세 설명이 포함된 개별 답변 페이지를 제공합니다.
- SMPP란 무엇인가요?SMPP (Short Message Peer-to-Peer)는 SMSC, ESME (External Short Message Entities) 및 애그리게이터 간의 SMS 교환을 위한 개방형 프로토콜 표준입니다.
- SMPP 프로토콜은 어떻게 작동하나요?SMPP (Short Message Peer-to-Peer)는 애플리케이션(ESME)과 통신사 SMSC 사이에서 A2P SMS를 전달하는 개방형 TCP 프로토콜입니다.
- ESME란 무엇인가요?ESME (External Short Messaging Entity)는 SMSC 외부에서 SMS를 전송하거나 수신하는 모든 애플리케이션을 지칭하는 SMPP 용어입니다.
- SMSC란 무엇인가요?SMSC (SMS 센터)는 모바일 기기와 외부 애플리케이션 간에 SMS 메시지를 저장, 전달 및 발송하는 모바일 네트워크의 핵심 인프라 구성 요소입니다.
- SMPP 윈도우 크기란 무엇인가요?윈도우(Window)는 특정 시점에 단일 바인드에서 ESME가 전송 중일 수 있는(전송되었으나 아직 수신 확인되지 않은) SMPP PDU의 개수를 의미합니다.
- SMPP 3.4 vs SMPP 5.0 — 변경 사항 및 권장 사항SMPP 3.4 (1999)는 오늘날 운영 중인 거의 모든 A2P 바인드에서 사용되는 SMS 상호 연결 프로토콜입니다.
- DLR (전송 결과 보고)란 무엇인가요?DLR은 SMS가 단말기에 성공적으로 전달되었는지(또는 전달에 실패했는지)를 알리는 비동기 확인 정보입니다.
- TPS(초당 트랜잭션 수)란 무엇인가요?TPS(초당 트랜잭션 수) — MPS 또는 전송 속도라고도 함 — 는 메시징 바인딩 또는 계정의 처리량 한도입니다. 즉, 스로틀링 오류가 발생하기 전까지 SMSC가 초당 수용할 수 있는 SMS submit_sm PDU의 개수를 의미합니다.
- 메시징 분야의 TLS 1.3 — 무엇이 바뀌었으며 SMPP에 왜 중요한가TLS 1.3 (RFC 8446, 2018)은 더 빠른 핸드셰이크를 제공하는 TLS 1.2를 대체하였으며, 지난 10년 동안 취약점이 발견된 모든 알고리즘을 제거하고 순방향 비밀성(forward secrecy)을 의무화했습니다.
자주 묻는 질문
REST 대신 SMPP를 선택해야 하는 경우는 언제인가요?
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에 맞춰져 있으며, 상업용 A2P 경로에서 5.0은 전송 성공률 측면에서 어떠한 이점도 제공하지 않습니다.
전체 답변 읽기SMPP 5.0이 3.4보다 메시지를 더 잘 전달하나요?
아니요. 전송 성공률은 SMPP 버전이 아닌 통신사 경로에 따라 결정됩니다. 5.0에서 개선된 사항(Unicode 헤더, 과금 TLV)은 일반적으로 3.4 상단의 애플리케이션 계층에서 처리됩니다.
전체 답변 읽기SMPP 3.4를 통해 아랍어나 이모지를 보내려면 어떻게 해야 하나요?
data_coding을 UCS-2 (0x08)로 설정하거나, 본문을 message_payload TLV에 담아 전송하세요. 3.4에서 Unicode 콘텐츠를 원활하게 처리하므로, 이를 위해 5.0이 필요하지는 않습니다.
전체 답변 읽기어떤 바인드 유형과 포트를 사용해야 하나요?
TLS를 통한 트랜시버 바인드는 A2P의 표준입니다. 즉, 하나의 소켓에서 submit_sm을(를) 보내고 DLR을 수신합니다. BroadNet은 SMPP 3.4 바인드를 제공하며, 테스트 계정 신청 시 호스트, 포트 및 인증 정보가 제공됩니다.
전체 답변 읽기