PDU

プロトコルデータユニット(PDU)は、submit_smなど、回線上を流れる1つのSMPPコマンドです。固定ヘッダーの後に、コマンドによって決まる本体が続きます。

定義のみです。ここで説明する用語は、当社が販売するサービスではありません。

プロトコルデータユニット(PDU)は、特定のプロトコルで回線上を流れる1つのコマンドです。固定ヘッダーの後に、コマンドによって異なる本体が続きます。SMPPでは、ヘッダーにコマンド長、コマンドID、コマンドステータス、シーケンス番号が入ります。

submit_smの本体には、アドレス、データコーディング、short_messageフィールドが入ります。このフィールドはユーザーデータを運び、esm_classがUDHを示す場合はUDHも運びます。無線側では、SMSCがこれを3GPP TS 23.040のTPDUに変換します。

SMPPデコーダーは貼り付けたPDUをブラウザ内で解析しますが、読めるのは与えられたバイトだけです。

1つのPDUをフィールドごとに

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
ヘッダーは固定で、本体はコマンドによって変わります。
テキストによる説明

すべてのPDUは、4バイトのコマンド長、コマンドID、コマンドステータス、シーケンス番号で始まります。その後に本体が続きます。

よくある質問

PDUはパケットと同じですか?

いいえ。PDUは、レイアウトが定義された特定のプロトコルに属します。SMSの業務では通常、SMPPコマンドまたはエンコードされたショートメッセージを指します。

PDUをデコードすると誤ったテキストになるのはなぜですか?

主な原因は、データコーディングとユーザーデータヘッダーです。

方向がわからなくてもPDUをデコードできますか?

確実にはできません。未加工のTPDU(SMS-SUBMITとSMS-DELIVER)は、方向ごとにフィールドの順序が異なります。SMPP PDUはcommand_idでコマンドを示すため、コマンドIDから方向がわかります。

詳しく見る

出典

  1. 3GPP TS 23.040:ショートメッセージサービス(SMS)の技術的実現
  2. 3GPP TS 23.038:SMSのアルファベットと言語固有の情報
  3. SMPP v3.4仕様:コマンドヘッダーとshort_messageフィールド