完全な M3UA-SCCP-TCAP-MAP スタック (SCTP 経由) のシミュレーター (学習目的) を作成しています。これまでのところ、M3UA+SCCP スタックは問題ありません。
RFC 4666 2006 年 9 月に基づく M3UA ITU-T Q.711-Q716 に基づく SCCP TCAP ITU-T Q.771-Q775 に基づく
しかし、TCAP 部分をデコードすると、dialogPort で迷子になりました。TCAP は asn.1 でエンコードされているため、すべてが tag+len+data です。Wireshark は、私のデコーダーとは異なる方法でデコードします。
メッセージは次のとおりです。
基本的に、私のメッセージはBERでデコードされます
注: 形式: hex(tag) + (10 進数で CLS+PC+TAG に分割された BER) + hex(data) 62 ( 64 32 2 ) 48 ( 64 0 8 ) 102f0067 6b ( 64 32 11 ) 28 ( 0 32 8 ) 06 ( 0 0 6 ) 00118605010101 OID=0.0.17.773.1.1.1 a0 ( 128 32 0 ) 60 ( 64 32 0 ) 80 ( 128 0 0 ) 0780 a1 ( 128 32 1 ) 06 ( 0 0 6 ) 04000001000503 OID=0.4.0.0.1.0.5.3 6c ( 64 32 12 ) ...
したがって、otid[8]、dialogPortion[11]、および componentPortion[12] を含む begin[2] メッセージを確認できます。otid と ComponentPortion は正しくデコードされます。ただし、dialogPort ではありません。dialogPortion の ASN は、これらのコードのいずれについても言及していません。さらに紛らわしいのは、wireshark が別の方法でデコードすることです (oid-as-dialogue は dialogPortion にはありませんが、otid の後のフィールドとして、ITU-T のドキュメントに記載されているものではありません - または私が理解しているとおりではありません)
Wireshark でデコードされたトランザクション機能のアプリケーション部分 始める ソース トランザクション ID otid: 102f0067 oid: 0.0.17.773.1.1.1 (id-as-dialog) 対話リクエスト パディング: 7 プロトコル バージョン: 80 (バージョン 1) 1... .... = version1: True アプリケーションコンテキスト名: 0.4.0.0.1.0.5.3 (locationInfoRetrievalContext-v3) コンポーネント: 1 アイテム ...
dialogPDU ASN でパディングの参照が見つかりません。
誰かが私を正しい方向に向けることができますか? このメッセージを正しく解読する方法を知りたい
この場合、DialoguePDU の形式は単純です。
dialogue-as-id OBJECT IDENTIFIER ::= {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)}
DialoguePDU ::= CHOICE {
dialogueRequest AARQ-apdu,
dialogueResponse AARE-apdu,
dialogueAbort ABRT-apdu
}
AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
protocol-version [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
application-context-name [1] OBJECT IDENTIFIER,
user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
}