как сказать какой вид asn1 я получаю - PullRequest
0 голосов
/ 14 декабря 2010

Я медленно осваиваю нотацию asn1. Кодирование asn1 из структуры кажется довольно простым. Однако декодирование asn1 для моего приложения сложнее. Я хочу знать, есть ли у меня приложение, которое получает данные, скажем, от порта 600 udp, и это может быть несколько структур asn1, как мне определить, в какую структуру asn1 я должен декодировать?

Итак, когда я получаю пакеты asn1, мы сначала определяем его тип и декодируем его в зависимости от его типа?

или мой компилятор asn1 обрабатывает это для меня?

найти примеры этого материала сложно ... даже для Google ;-).

Учебное пособие, в котором описывается создание простого сетевого сервера с использованием asn1, было бы здорово!

1 Ответ

1 голос
/ 14 декабря 2010

ASN.1 примерно соответствует уровню представления семислойного торта OSI . Он полагается на прикладной уровень , чтобы определить, какие типы информации обмениваются между конечными точками. Таким образом, не существует универсального заголовка или идентификатора, который бы указывал , какой протокол или синтаксис представлен потоком ASN.1. Это может подразумеваться номером порта или указываться дополнительным уровнем протокола (например, HTTP.)


РЕДАКТИРОВАТЬ (отвечая на ваш комментарий): Стандарт ASN.1 определяет четыре «класса» тегов: UNIVERSAL, APPLICATION, PRIVATE и CONTEXT-SPECIFIC. APPLICATION в основном означает, что тег определен для использования в конкретном приложении (т. Е. Он не предопределен как часть ASN.1.) Но тег APPLICATION не содержит достаточно информации для указания (или даже намека на это) какое приложение используется.

(На самом деле семантическое различие между «ПРИЛОЖЕНИЕМ», «ЧАСТНЫМИ» и «КОНТЕКСТ-СПЕЦИФИЧЕСКИМИ» очень мало; эти три класса используются в основном по историческим и стилистическим причинам.)

...