8

通信プロトコル (具体的には S1AP) を使用しようとしていますが、テストするメッセージを定義しようとしています。

LTE 36.413 仕様では、このプロトコルの詳細が説明されており、pdf の下部に ASN.1 ファイル定義も記載されています。WireShark のディセクタで ASN ファイルが使用されているのを見たことがありますが、それを使用して仕様に従ってメッセージを生成できるのではないかと推測しています。

ASN.1 ファイルをどのように使用しているのか気になりました。私は調査を続け、ASN.1 コンパイラに関する情報やそれに関連するその他の情報を見つけましたが、誰もその使用方法を明確に説明していないため、すべての情報に非常に混乱しています。誰かがそれを使用する方法を理解するのを手伝ってもらえますか?

4

2 に答える 2

10

いろいろ調べた結果、ASN.1 ファイルとは何かを突き止めました。

これらの ASN.1 ファイルには、基本的にプロトコルの説明とパケットの説明が含まれています。これらの ASN.1 ファイルを使用して、これらを使用したいアプリケーションで使用する .c および .h ファイルを生成できます。独自のメッセージ データベースを作成する必要がないため、これは非常に便利です。ASN.1 ファイルをコンパイルするだけで、C ファイルがコンパイルされて使用できるようになります。

さて、あなたは疑問に思っているに違いありません。これをどのようにコンパイルすればよいのでしょうか? ええと、通常、ある種の ASN.1 コンパイラが必要です。一部は有料ですが、Linux と Windows で動作するオープン ソースのものを見つけることができました。必要な依存関係がある限り、UNIX ベースであるため、MAC でも動作する可能性があります。いずれにせよ、ここにこの Web ページへのリンクがあります。この Web ページは、使用法を文書化するのに優れた仕事をしていると思うので、使用方法については説明しません。これが私を助けたのと同じくらい誰かを助けることを願っています。

ここでコンパイラをチェックしてくださいhttp://lionet.info/asn1c/blog/

そのリンクがうまくいかない場合は、OSS Nocklava ASN1.C コンパイラーなどの商用のものを試す必要があるかもしれません。または、お金が心配な場合は、時間がかかるとしても、独自のデータベースを作成する価値があるかもしれません。

ではごきげんよう。

于 2013-08-16T21:21:02.720 に答える
7
  1. ASN はデータ記述言語です。あなたが言ったように、見つかった ASN ファイル定義は、S1AP プロトコルでのエンコードとデコードに準拠するようにメッセージ データの表現を指定します。

  2. ASN ファイルをコンパイルする必要があります。コンパイルからの出力は、コード仕様と本体 (ほとんどの場合、.h および .c コード ファイル) を提供し、エンコード元および送信先のプラットフォームに関係なく、メッセージ データを S1AP データ モデルに自動的にシリアル化/逆シリアル化します。

  3. ASN.1 スキーマの使用方法を迅速にテストして学習するには、次のサービスを使用できます: http://asn1-playground.oss.com/

  4. また、ASN.1 が強力な理由の詳細で簡潔な説明については、https ://www.thanassis.space/asn1.html をお読みください。著者は、欧州宇宙機関の監督の下で開発されたオープン ソースの ASN.1 コンパイラも共有しています。

  5. 補足として、Protocol Buffers の使用を調査する価値があるかもしれません。これは、ほぼ間違いなく、後方/前方データ記述の互換性やリフレクションなどのより最新の機能で強化された非常に類似したテクノロジーを表しているからです: https://developers.google.com/ protocol-buffers/docs/cpptutorial

于 2016-09-08T17:30:10.453 に答える