# SMS Fundamentals

- Canonical URL: https://www.broadnet.me/academy/sms-fundamentals
- Language: en
- Last updated: 2026-07-18
- Publisher: BroadNet (https://www.broadnet.me)
- Markdown version of the page above, generated from the rendered page.

Foundations Beginner

How an SMS is built, encoded, and segmented — from the 160-character limit and GSM 03.38 to delivery receipts and A2P vs P2P.

5 lessons 4 min read Standards-based · self-paced

What you'll learn

- Why an SMS holds 160 characters and where that number comes from
- GSM 7-bit (GSM 03.38) vs UCS-2 Unicode encoding and their limits
- How long messages are split into concatenated segments
- What MO and MT mean and how delivery receipts (DLRs) work
- The difference between A2P and P2P traffic

Course outline

1. 01The anatomy of an SMS
2. 02Encoding: GSM 7-bit vs UCS-2
3. 03Segmentation and concatenation
4. 04Delivery receipts and status
5. 05A2P vs P2P
6. ★Key takeaways

[All courses](https://www.broadnet.me/academy)

Diagram How an A2P message reaches the phone

1. Your application Sends over the REST API or SMPP
2. BroadNet platform Validates, routes and bills each message
3. Operator SMSC Direct operator connection
4. Subscriber handset The message is delivered

The delivery receipt (DLR) travels back along the same path to your webhook

Lesson 01

## The anatomy of an SMS

SMS — Short Message Service — was standardised as part of GSM and carries a payload of 140 bytes. That fixed size is the origin of every character limit you will meet: everything about SMS length is really about fitting into 140 bytes.

A message travels as either MO (mobile-originated — sent from a handset) or MT (mobile-terminated — delivered to a handset). Application-to-person traffic is almost entirely MT: your platform submits the message and the network terminates it to the subscriber.

Between submission and the handset sits the SMSC (Short Message Service Centre), which stores the message and forwards it when the recipient is reachable. If the phone is off, the SMSC holds the message until the validity period expires.

Lesson 02

## Encoding: GSM 7-bit vs UCS-2

Plain Latin text uses the GSM 7-bit default alphabet defined in GSM 03.38. Because each character takes 7 bits, 140 bytes hold 160 characters — the familiar single-segment limit.

A handful of common symbols (such as { } [ ] ~ ^ | \ and the euro sign) live in an extension table and cost two characters each. It is easy to blow past a segment boundary without noticing when your copy contains one of these.

The moment a message contains any character outside that alphabet — Arabic, Cyrillic, Chinese, or an emoji — the whole message switches to UCS-2, a 16-bit Unicode encoding. Now each character takes 2 bytes, so a single segment holds only 70 characters.

Lesson 03

## Segmentation and concatenation

When text exceeds one segment, it is split and reassembled on the handset. To do this, a small User Data Header (UDH) is added to each part, which consumes payload space. That is why concatenated segments hold fewer characters than a standalone one.

In GSM 7-bit, concatenated segments hold 153 characters each instead of 160; in UCS-2 they hold 67 instead of 70. A 300-character Latin message is three segments; the same length in Arabic is five. You are billed per segment, so encoding directly drives cost.

A common, avoidable mistake is a message that sits just over a boundary — 161 characters becomes two segments and doubles the price of every send. Trimming a few words, or removing an extension-table symbol, can halve the bill at scale.

Lesson 04

## Delivery receipts and status

A delivery receipt (DLR) is the network's confirmation of what happened to a message. It reports a terminal status such as delivered, undelivered, expired, or rejected, and often an operator-specific error code explaining why.

DLRs are essential for reconciliation and quality measurement. Requesting them only where you consume them keeps traffic clean; a delivered receipt confirms the handset received the message, while an expired receipt means it was never reachable within the validity period.

Because operator error codes vary between routes, mature senders normalise them into a consistent taxonomy — absent subscriber, invalid number, spam-blocked — so quality can be compared across destinations.

Lesson 05

## A2P vs P2P

P2P (person-to-person) is the conversational SMS one human sends to another. A2P (application-to-person) is programmatic traffic from software: alerts, OTPs, notifications, and marketing. They look identical on the handset but are commercially and technically distinct.

Operators price and route A2P differently and expect it to arrive through official, billed channels. A2P delivered through P2P routes to avoid termination fees is a grey route — cheaper up front, but prone to filtering, poor deliverability, and compliance exposure.

Understanding this split is the foundation for everything that follows: routing quality, sender-ID rules, and firewalls all exist because operators must distinguish legitimate, paid A2P traffic from bypass.

Key takeaways

- An SMS payload is 140 bytes; that is why GSM 7-bit fits 160 characters and UCS-2 only 70.
- Any non-GSM character (Arabic, emoji) switches the whole message to UCS-2 and shrinks the limit.
- Concatenated segments cost header space (153 / 67 chars) and you pay per segment.
- DLRs close the loop on delivery; A2P and P2P look alike but are routed and priced differently.

Keep going

### Related answers, products & tools

- [What is A2P SMS?](https://www.broadnet.me/answers/what-is-a2p-sms)
- [A2P vs P2P SMS](https://www.broadnet.me/answers/a2p-vs-p2p-sms)
- [GSM-7 vs Unicode encoding](https://www.broadnet.me/answers/what-is-encoding-gsm-7-ucs-2)
- [What is a DLR?](https://www.broadnet.me/answers/what-is-dlr)
- [SMS segment calculator (free tool)](https://www.broadnet.me/tools/sms-segment-calculator)
- [GSM-7 / Unicode checker (free tool)](https://www.broadnet.me/tools/gsm7-unicode-checker)

References

- [3GPP TS 23.038 — alphabets and language-specific info (GSM 03.38)](https://www.3gpp.org/dynareport/23038.htm)
- [3GPP TS 23.040 — SMS technical realization](https://www.3gpp.org/dynareport/23040.htm)

Up next in the curriculum

[Intermediate · Protocols SMPP Fundamentals The binary protocol behind high-volume SMS: bind types, submit_sm, PDUs, the transmit window, delivery receipts, and keepalives.](https://www.broadnet.me/academy/smpp-fundamentals) [Intermediate · Routing & Quality SMS Routing & Least-Cost Routing How messages find a path to the destination network — direct routes, grey routes, least-cost routing, and quality-based failover.](https://www.broadnet.me/academy/sms-routing-and-least-cost-routing)

Put it into practice

## Build with what you just learned.

Talk to a real engineer about your use case, or open the developer docs and send a message across the routes this course describes.

[Talk to engineering](https://www.broadnet.me/contact) [Developer docs](https://www.broadnet.me/developers)

Why learn from BroadNet

- Since 2003
- Countries 200+
- Operator links 1,000+
