# SMPP-Grundlagen

- Kanonische URL: https://www.broadnet.me/de/academy/smpp-fundamentals
- Sprache: de
- Zuletzt aktualisiert: 2026-07-18
- Herausgeber: BroadNet (https://www.broadnet.me)
- Markdown-Fassung der Seite, aus der ausgelieferten Seite erzeugt.

Protokolle Mittelstufe

Das binäre Protokoll hinter hochvolumigem SMS-Versand: Bind-Typen, submit_sm, PDUs, das Sendefenster, Zustellbestätigungen und Keepalives.

5 Unterricht 3 Min. Lesezeit Standardbasiert · selbstgesteuert

Was Sie lernen werden

- Was SMPP ist und wie es sich zu einer REST-API verhält
- Transmitter-, Receiver- und Transceiver-Bind-Typen
- Der Aufbau einer PDU und die wichtigsten submit_sm-Felder
- Wie das Sendefenster und Drosselung den Durchsatz steuern
- Wie Zustellbestätigungen eintreffen und wie eine Sitzung aktiv gehalten wird

Kursübersicht

1. 01Was SMPP ist
2. 02Bind-Typen und Sitzungen
3. 03PDUs und die submit_sm
4. 04Das Fenster, Drosselung und Keepalives
5. 05Zustellbestätigungen über SMPP
6. ★Wichtigste Erkenntnisse

[Alle Kurse](https://www.broadnet.me/de/academy)

Diagramm Eine SMPP-Sitzung zwischen Ihrer Plattform und BroadNet

Ihre Plattform (ESME)

BroadNet SMSC

Eine dauerhafte TCP/TLS-Verbindung

1. `bind_transceiver` Sitzung öffnen und authentifizieren
2. `bind_transceiver_resp` Sitzung akzeptiert
3. `submit_sm` Nachricht senden
4. `submit_sm_resp` Akzeptiert, Nachrichten-ID zurückgegeben
5. `deliver_sm` Zustellungsbericht oder eingehende Nachricht
6. `deliver_sm_resp` Bestätigt
7. `enquire_link` Keepalive im Leerlauf

Lektion 01

## Was SMPP ist

SMPP — Short Message Peer-to-Peer — ist das binäre, sitzungsbasierte Protokoll, das Aggregatoren und Betreiber für hochvolumiges A2P-Messaging bereitstellen. Während eine REST-API bequem und zustandslos ist, ist SMPP eine dauerhafte TCP-Verbindung, die für Volumen und niedrige Latenz gebaut ist.

Eine ESME (External Short Messaging Entity — Ihre Seite) öffnet eine Sitzung zum SMSC und tauscht PDUs (Protocol Data Units) aus. Das Protokoll ist kompakt und effizient, weshalb es für große Versender das Rückgrat bleibt, auch wenn REST den Alltagsgebrauch abdeckt.

Die am weitesten verbreitete Version ist SMPP v3.4; v5.0 fügt Signalisierung des Überlastzustands und erweiterte Parameter hinzu, bleibt aber abwärtskompatibel. Gehen Sie nie davon aus, dass eine v5.0-Funktion verfügbar ist, bevor die Bind-Antwort die ausgehandelte Version bestätigt.

Lektion 02

## Bind-Typen und Sitzungen

Bevor irgendetwas gesendet wird, muss sich eine ESME binden — authentifizieren und eine Rolle deklarieren. Ein Transmitter-Bind sendet nur Nachrichten; ein Receiver-Bind empfängt nur Mobile-Originated-Nachrichten und Zustellbestätigungen; ein Transceiver-Bind erledigt beides über eine Verbindung.

Transceiver wird meist bevorzugt, da er die Anzahl der Verbindungen halbiert und die Zuordnung von DLRs zu Übermittlungen vereinfacht. Die Anzahl gleichzeitiger Binds und die Nachrichten pro Sekunde je Bind (TPS) werden vom Anbieter bereitgestellt und müssen eingehalten werden.

Der Bind enthält system_id, password, system_type und address_range. Ein falscher address_range bricht bei Receiver-Binds das MO- und DLR-Routing stillschweigend — ein klassischer Integrationsfehler, der keine Fehlermeldungen, sondern nur fehlenden Verkehr erzeugt.

Lektion 03

## PDUs und die submit_sm

Jede SMPP-Interaktion ist eine PDU mit einem Command-Header (Länge, Command-ID, Status, Sequenznummer) und einem Body. Das Arbeitspferd ist submit_sm, das eine einzelne ausgehende Nachricht trägt.

Zwei Feldpaare entscheiden über die Adressierung: source_addr mit seinem TON/NPI (Type-of-Number/Numbering-Plan-Indicator) und dest_addr mit seinem eigenen. Eine alphanumerische Sender-ID nutzt TON 5; eine internationale MSISDN nutzt TON 1, NPI 1. Werden diese falsch gesetzt, wird die Sender-ID falsch dargestellt, oder die Nachricht wird abgelehnt.

Das Feld data_coding legt die Kodierung fest — GSM 7-Bit (0), 8-Bit (4) oder UCS-2 (8) für Unicode. Lange Nachrichten werden entweder mit UDH-Bytes im Body oder mit den optionalen SAR-Parametern (sar_msg_ref_num, sar_total_segments, sar_segment_seqnum) verkettet; wählen Sie eine Methode und bleiben Sie konsistent, da Routen unterschiedlich akzeptieren.

Lektion 04

## Das Fenster, Drosselung und Keepalives

SMPP verwendet ein Sendefenster: eine Obergrenze für die Anzahl der submit_sm-PDUs, die gesendet werden, bevor ihre Antworten zurückkommen. Wird das Fenster oder die vereinbarte TPS überschritten, löst dies ESME_RTHROTTLED (0x58) aus. Die richtige Reaktion ist, mit Jitter zurückzufahren, nicht in einer Schleife sofort erneut zu senden.

Um eine halb offene TCP-Verbindung zu erkennen, sendet jede Seite auf einem Leerlauf-Timer (üblicherweise alle 30–60 Sekunden) enquire_link und erwartet ein enquire_link_resp. Eine ausbleibende Antwort bedeutet, dass die Sitzung tot ist und mit exponentiellem Backoff neu gebunden werden sollte.

Ein geordnetes Herunterfahren erfolgt über unbind/unbind_resp. Unerwartete Verbindungsabbrüche sollten einen erneuten Verbindungsaufbau mit Backoff und idempotenten Wiederholungen auslösen, damit ein abgebrochenes Fenster nicht zu doppelten Übermittlungen und doppelter Abrechnung führt.

Lektion 05

## Zustellbestätigungen über SMPP

Zustellbestätigungen treffen als deliver_sm-PDUs ein. Der Bestätigungstext im short_message-Feld enthält id, sub, dlvrd, submit date, done date, den Endstatus (DELIVRD, UNDELIV, EXPIRED, REJECTD) und einen err-Code.

Ordnen Sie den DLR Ihrer ursprünglichen Übermittlung anhand der message_id des Anbieters zu, nicht allein anhand des Bestätigungstexts — message_id kann bei submit_resp hexadezimal, im DLR aber dezimal zurückgegeben werden, daher beide Formate normalisieren.

Antworten Sie stets mit einem deliver_sm_resp. Ein unbestätigter DLR wird vom SMSC erneut gesendet und kann das Empfangsfenster blockieren, also umgehend bestätigen, auch wenn Ihre nachgelagerte Verarbeitung asynchron erfolgt.

Wichtigste Erkenntnisse

- SMPP ist eine dauerhafte binäre Sitzung für hochvolumiges A2P; v3.4 ist die gängige Basis, v5.0 ist abwärtskompatibel.
- Binden Sie als Transmitter, Receiver oder Transceiver; Transceiver halbiert die Verbindungen und erleichtert die DLR-Zuordnung.
- TON/NPI entscheiden über die Darstellung der Sender-ID, data_coding über die Kodierung — beides wird leicht falsch gesetzt.
- Halten Sie Fenster und TPS ein, fahren Sie bei ESME_RTHROTTLED zurück und halten Sie die Sitzung mit enquire_link aktiv.

Weitermachen

### Verwandte Antworten, Produkte und Werkzeuge

- [Was ist SMPP?](https://www.broadnet.me/de/answers/what-is-smpp)
- [SMPP 3.4 vs. 5.0](https://www.broadnet.me/de/answers/smpp-3-4-vs-5-0)
- [REST vs. SMPP](https://www.broadnet.me/de/compare/sms-api-vs-smpp)
- [SMPP-Fehlercode-Nachschlagewerk (kostenloses Tool)](https://www.broadnet.me/de/tools/smpp-error-codes)
- [DLR-Decoder (kostenloses Tool)](https://www.broadnet.me/de/tools/dlr-decoder)
- [Entwicklerdokumentation](https://www.broadnet.me/de/developers)

Referenzen

- [SMPP v3.4-Spezifikation](https://smpp.org/SMPP_v3_4_Issue1_2.pdf)
- [SMPP v5.0-Spezifikation](https://smpp.org/SMPP_v5.pdf)

Als nächstes im Lehrplan

[Mittelstufe · Routing & Qualität SMS-Routing & Least-Cost-Routing Wie Nachrichten einen Weg zum Zielnetz finden — Direktrouten, graue Routen, Least-Cost-Routing und qualitätsbasiertes Failover.](https://www.broadnet.me/de/academy/sms-routing-and-least-cost-routing) [Mittelstufe · Verifizierung OTP & Rufnummernverifizierung Wie Einmalpasswörter und Rufnummernverifizierung funktionieren — TOTP/HOTP, Zustellkanäle und Fallback, Autofill-Konventionen und Abwehr von AIT.](https://www.broadnet.me/de/academy/otp-and-number-verification)

Setzen Sie es in die Praxis um

## Bauen Sie auf dem auf, was Sie gerade gelernt haben.

Besprechen Sie Ihren Anwendungsfall mit einem echten Ingenieur oder öffnen Sie die Entwicklerdokumentation und senden Sie eine Nachricht über die in diesem Kurs beschriebenen Wege.

[Sprechen Sie mit der Entwicklungsabteilung.](https://www.broadnet.me/de/contact) [Entwicklerdokumentation](https://www.broadnet.me/de/developers)

Warum von BroadNet lernen?

- Seit 2003
- Länder 200+
- Betreiberlinks 1,000+
