Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Short Message Peer-to-Peer
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Operation== SMPP uses the [[client–server model]] of operation, despite "peer-to-peer" in the name. The [[short message service center|Short Message Service Center (SMSC)]] usually acts as a server, awaiting connections from ESMEs. When SMPP is used for SMS peering, the sending MC usually acts as a client. The protocol is based on pairs of request/response PDUs ([[protocol data unit]]s, or packets) exchanged over [[Open Systems Interconnection|OSI]] layer 4 ([[Transmission Control Protocol|TCP]] session or [[X.25]] SVC3) connections.<ref>{{cite book |author=Neil Croft |title=2012 Information Security for South Africa |chapter=On forensics: A silent SMS attack |chapter-url=https://ieeexplore.ieee.org/document/6320454 |publisher=[[IEEE]] |year=2012 |pages=1–4 |issn=2330-9881 |doi=10.1109/ISSA.2012.6320454|isbn=978-1-4673-2159-4 |s2cid=13448347 }}</ref> The [[well-known port]] assigned by the [[Internet Assigned Numbers Authority|IANA]] for SMPP when operating over [[Transmission Control Protocol|TCP]] is 2775, but multiple arbitrary port numbers are often used in messaging environments. Before exchanging any messages, a bind command must be sent and acknowledged. The bind command determines in which direction will be possible to send messages; bind_transmitter only allows client to submit messages to the server, bind_receiver means that the client will only receive the messages, and bind_transceiver (introduced in SMPP 3.4) allows message transfer in both directions.<ref>{{cite book|url=https://books.google.com/books?id=P0xs_9NSIy8C|pages=137–138|title=SMS and MMS Interworking in Mobile Networks|author1=A. Henry-Labordère|author2=Vincent Jonack|publisher=[[Artech House]]|year=2004|isbn=1-58053-890-8}}</ref> In the bind command the ESME identifies itself using system_id, system_type and password; the address_range field designed to contain ESME address is usually left empty. The bind command contains interface_version parameter to specify which version of SMPP protocol will be used. Message exchange may be synchronous, where each peer waits for a response for each PDU being sent, or asynchronous, where multiple requests can be issued without waiting and acknowledged in a skew order by the other peer; the number of unacknowledged requests is called a ''window''; for the best performance both communicating sides must be configured with the same window size. ===Versions=== The SMPP standard has evolved during the time. The most commonly used versions of SMPP are: * SMPP 3.3 the oldest used version (despite its limitations, it is still widely used); supports [[GSM]] only. Generates an immediate response for each message sent. * SMPP 3.4 adds optional [[tag–length–value]] (TLV) parameters, support of non-GSM SMS technologies and the [[transceiver]] support (single connections that can send and receive messages). The exchange of SMPP request and response PDUs between an ESME Transmitter and SMSC may occur synchronously or asynchronously. * SMPP 5.0 is the latest version of SMPP; adds support for cell broadcasting, smart flow control. {{Asof|2025|post=,}} it is not widely used. The applicable version is passed in the interface_version parameter of a bind command.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)