PDU

프로토콜 데이터 단위(PDU)는 submit_sm처럼 회선상에 오가는 SMPP 명령 하나로, 고정 헤더와 명령에 따라 정해지는 본문으로 구성됩니다.

정의만 제공합니다. 여기에서 설명하는 용어는 당사가 판매하는 서비스가 아닙니다.

프로토콜 데이터 단위(PDU)는 특정 프로토콜에서 회선상에 오가는 명령 하나입니다. 고정 헤더 뒤에 명령에 따라 달라지는 본문이 이어집니다. SMPP에서 헤더에는 명령 길이, 명령 ID, 명령 상태, 시퀀스 번호가 들어 있습니다.

submit_sm 본문에는 주소, 데이터 코딩, short_message 필드가 들어 있습니다. 이 필드는 사용자 데이터를 담고, esm_class가 UDH를 표시하면 UDH도 함께 담습니다. SMSC는 무선 구간에서 이를 3GPP TS 23.040 TPDU로 매핑합니다.

SMPP 디코더는 붙여 넣은 PDU를 브라우저에서 파싱하지만, 주어진 바이트만 읽을 수 있습니다.

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 필드