PDU

Eine Protocol Data Unit ist ein SMPP-Befehl auf der Leitung, etwa submit_sm: ein fester Header, dann ein Body, den der Befehl bestimmt.

Nur Definitionen – ein hier erklärter Begriff ist keine Leistung, die wir verkaufen.

Eine Protocol Data Unit ist ein Befehl auf der Leitung in einem bestimmten Protokoll: ein fester Header, dann ein Body, der vom Befehl abhängt. In SMPP enthält der Header Befehlslänge, Befehls-ID, Befehlsstatus und Sequenznummer.

Ein submit_sm-Body enthält die Adressen, die Datencodierung und das Feld short_message. Dieses Feld trägt die Nutzdaten und einen UDH, wenn esm_class einen solchen signalisiert; das SMSC bildet es auf der Funkseite in die TPDU nach 3GPP TS 23.040 ab.

Der SMPP-Decoder parst eine eingefügte PDU im Browser, kann aber nur die Bytes lesen, die er erhält.

Eine PDU, Feld für Feld

command_length
32
command_id
0x00000004
command_status
0x00000000
sequence_number
1
service_type
source_addr_ton
0
source_addr_npi
0
source_addr
dest_addr_ton
0
dest_addr_npi
0
destination_addr
esm_class
0x00
Der Header ist fest; der Body ändert sich mit dem Befehl.
Textbeschreibung

Jede PDU beginnt mit einer vier Byte langen Befehlslänge, Befehls-ID, Befehlsstatus und Sequenznummer. Danach folgt der Body.

FAQ

Ist eine PDU dasselbe wie ein Paket?

Nein. Eine PDU gehört zu einem bestimmten Protokoll mit definiertem Aufbau; im SMS-Umfeld meint sie meist einen SMPP-Befehl oder die codierte Kurznachricht.

Warum wird eine PDU zu falschem Text decodiert?

Die üblichen Ursachen sind die Datencodierung und der User Data Header.

Lässt sich eine PDU ohne die Richtung decodieren?

Nicht zuverlässig. Eine rohe TPDU (SMS-SUBMIT vs. SMS-DELIVER) hat je Richtung eine andere Feldreihenfolge; eine SMPP-PDU nennt ihren Befehl in command_id, daher ergibt sich die Richtung aus der Befehls-ID.

Mehr erfahren

Quellen

  1. 3GPP TS 23.040: technische Realisierung des Short Message Service
  2. 3GPP TS 23.038: Alphabete und sprachspezifische Informationen für SMS
  3. SMPP-v3.4-Spezifikation: Befehls-Header und Feld short_message