---
title: "User Data Headers (UDH) Deep Dive"
---

User Data Headers (UDH) Deep Dive: How Carriers Reassemble Multi-Part SMS: SMSRiver

-

[Skip to main content](#main-content)

[

smsriver.com

](/)

[Public Inboxes](/#numbers-section)
[Country Codes](/country-codes/)
[Workbench](/workbench/)
[Tools](/tools/)
[Developer API](/developer/)
[Pricing](/pricing/)

[Log In](/accounts/login/)

[
Log In
](/accounts/login/)
[
Get API Key

](/pricing/)

[

Home
](/)

-

[

Articles
](/articles/)

-

Character Encoding & Economics

Character Encoding & Economics

Published 2026-08-21

•

8 min read

#
User Data Headers (UDH) Deep Dive: How Carriers Reassemble Multi-Part SMS

Technical deep dive into User Data Headers (UDH). Understand concatenated SMS, reference numbers, segment counters, and concatenated message reassembly.

Key Takeaway & Executive Summary

Multi-part messages use 6-byte User Data Headers (UDH) to reassemble segments on handsets, reducing per-segment capacity to 153 chars (GSM-7) and 67 chars (UCS-2).

When a text message exceeds single-segment limits, modern mobile handsets display it as a single cohesive message rather than multiple disjointed texts. This seamless concatenation is powered by binary User Data Headers (UDH) embedded directly inside each payload packet.

##

Table of Contents

-
[
The 6-Byte Concatenation UDH Structure
](#section-1)

-
[
Multi-Segment Capacity Penalties
](#section-2)

-
[
Frequently Asked Questions
](#frequently-asked-questions)

##

1

The 6-Byte Concatenation UDH Structure

A standard concatenation header occupies 6 bytes at the start of the payload:

- Byte 1 (0x05): Length of User Data Header (5 bytes remaining).
- Byte 2 (0x00): Information Element Identifier (IEI) indicating concatenated SMS.
- Byte 3 (0x03): Header length.
- Byte 4: Reference Number (unique identifier linking segments together).
- Byte 5: Total Segments in sequence.
- Byte 6: Current Segment sequence number.

##

2

Multi-Segment Capacity Penalties

Because the 6-byte UDH consumes signaling bandwidth:

- GSM-7 Multi-Segment: Drops from 160 to 153 characters per segment (7 bytes reserved for UDH).
- UCS-2 Multi-Segment: Drops from 70 to 67 characters per segment (3 character spaces reserved for UDH).

##

Frequently Asked Questions • Character Encoding & Economics

Can segments arrive out of order on the recipient's phone?

Yes. Carrier network switches route segments independently. The recipient's handset uses the UDH sequence numbers to reassemble parts correctly before displaying the message.

##

Related Technical Articles & Deep Dives

[

Character Encoding & Economics
8 min read

###
The Complete GSM 03.38 Character Set: Standard Chars, Extension Table, and Traps

](/articles/gsm-7-character-set-and-escape-table/)

[

Character Encoding & Economics
7 min read

###
UCS-2 vs UTF-8 in SMS: Why Emojis and Special Characters Cut Max Length to 70 Chars

](/articles/ucs-2-vs-utf-8-in-sms-messaging/)

[

Character Encoding & Economics
8 min read

###
Calculating Billable SMS Segments: Financial Analysis of Hidden Telco Costs

](/articles/calculating-sms-segment-costs-at-scale/)

Developer Sandbox

###
Automate Inbound SMS & OTP Testing

Eliminate flaky 2FA in CI/CD. Access dedicated virtual lines, programmable synthetic SMS webhooks, and Model Context Protocol (MCP) integrations.

[
Explore Developer Tiers →
](/pricing/)
[
View MCP Setup Guide
](/developer/mcp-setup/)

###

Developer Utilities

-
[
SMS Segment Calculator
Calculate segment counts and carrier costs in real time.
](/tools/sms-segment-calculator/)

-
[
Webhook Payload Validator
Verify JSON webhook payloads against provider schemas.
](/tools/webhook-payload-validator/)

-
[
SMS Delivery Troubleshooter
Diagnose carrier filtering and OTP delivery failure.
](/tools/sms-delivery-troubleshooter/)

-
[
E.164 Phone Number Formatter
Format phone numbers into international E.164 standard.
](/tools/phone-number-formatter/)

###

Public Verification Numbers

-
[
United States (+1)
View Line →
](/receive-sms/us/)

-
[
United Kingdom (+44)
View Line →
](/receive-sms/gb/)

-
[
Canada (+1)
View Line →
](/receive-sms/ca/)

-
[
Germany (+49)
View Line →
](/receive-sms/de/)

Copied to clipboard

FULL PACKET INSPECTION
SMS

###
Line: DE +49 ...

Timestamp: Just now

Extracted code

Copy Code

Message Body:

Copy Full Message

[
Open Live Inbox

](#)

smsriver.com

Central Office carrier inventory platform & developer SMS verification sandbox. Receive OTP codes instantly with zero SIM card requirement.

Public numbers·Live inboxes·Developer tools

Public Inboxes

- [United States (+1)](/receive-sms/us/)

- [United Kingdom (+44)](/receive-sms/gb/)

- [Canada (+1)](/receive-sms/ca/)

- [Philippines (+63)](/receive-sms/ph/)

- [Germany (+49)](/receive-sms/de/)

Developer & Tools

- [SMS Debugging Workbench](/workbench/)

- [Phone Number Inspector](/tools/phone-number-inspector/)

- [Bulk Phone Validator](/tools/bulk-phone-validator/)

- [Phone Lookup API](/developer/phone-lookup-api/)

- [E.164 Phone Formatter](/tools/phone-number-formatter/)

- [SMS Segment Calculator](/tools/sms-segment-calculator/)

- [Webhook Validator](/tools/webhook-payload-validator/)

Guides & Trust

- [Country Calling Codes](/country-codes/)

- [Troubleshooting Hub](/troubleshooting/)

- [Carrier Comparisons](/compare/)

- [Developer Reference](/developer/)

- [OpenAPI Specification](/openapi.json)

- [MCP Tools Manifest](/.well-known/mcp.json)

- [Privacy & Security Guides](/guides/)

- [Engineering Articles](/articles/)

© 2026 SMSRiver. Operating on Cloudflare Workers & D1. Adheres to CTIA Messaging Principles and 10DLC compliance standards.

[About](/about/)
[Contact](/contact/)
[Privacy Policy](/privacy/)
[Terms of Service](/guides/terms-of-service/)
Cookie Preferences