SMPP SUBMIT_SM PDU Size for 160-character SMS
The size of a SUBMIT_SM PDU (Protocol Data Unit) for a 160-character SMS message depends on:
- Message Encoding (GSM-7 or UCS-2)
- Optional TLVs (Tag-Length-Value parameters)
- Header fields (command length, command ID, etc.)
Case 1: GSM-7 Encoding (Standard 160-character SMS)
GSM-7 allows 160 characters per SMS (7 bits per character). The message fits in a single SMS without segmentation.
Field | Size (Bytes) |
---|---|
Command Length | 4 |
Command ID (SUBMIT_SM) | 4 |
Command Status | 4 |
Sequence Number | 4 |
Service Type | 1 (null) |
Source Addr Ton | 1 |
Source Addr Npi | 1 |
Source Addr (e.g., "Sender") | 6 + 1 (null) |
Dest Addr Ton | 1 |
Dest Addr Npi | 1 |
Dest Addr (e.g., "1234567890") | 10 + 1 (null) |
ESM Class | 1 |
Protocol ID | 1 |
Priority Flag | 1 |
Schedule Delivery Time | 1 (null) |
Validity Period | 1 (null) |
Registered Delivery | 1 |
Data Coding (GSM-7) | 1 |
SM Default Msg ID | 1 |
SM Length (140 bytes) | 1 |
Short Message (Payload) | 140 |
Optional TLVs (if any) | 0 (assumed) |
Total PDU Size | ≈ 180–200 bytes |
Case 2: UCS-2 (Unicode) Encoding
For Unicode messages (UCS-2 encoding, 2 bytes per character):
- Max 70 characters per SMS (140 bytes)
- A 160-character message splits into 3 segments (70+70+20)
- Each segment has additional headers (UDH, 6–7 bytes overhead)
Field | Size (Bytes) |
---|---|
Short_message field (including UDH + payload) | ~153 |
Total PDU per segment | ≈ 200–220 bytes |
Total for 3 segments | ≈ 600–660 bytes |
Summary
Encoding | Characters | Segments | PDU Size (Per SMS) | Total PDU Size |
---|---|---|---|---|
GSM-7 | 160 | 1 | ~180–200 bytes | ~200 bytes |
UCS-2 | 160 | 3 | ~200–220 bytes | ~600–660 bytes |
Note: Exact sizes may vary slightly depending on address lengths and optional TLVs.
More information
- Typical size of an SMPP PDU
- HTTP SMS PDU size