0

完全な 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
}
4

2 に答える 2

0

Wireshark はまだ間違っています :-)。しかし、それは表示です。値が正しく表示されますが、間違ったセクションにのみ表示されます。おそらく、デコードが簡単なため、何らかの理由があります。

私が見逃していたのは、EXTERNAL[8] の定義でした。DialoguePortion は EXTERNAL として宣言されているため、すべてが理にかなっています。

于 2015-07-09T19:20:04.493 に答える