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