怎么知道我收到了什么样的asn1

时间:2010-12-14 02:03:17

标签: network-programming network-protocols asn.1

我慢慢地想到了asn1符号。从结构体编码asn1似乎很容易。但是,将asn1解码为我的应用程序会更难。我想知道我是否有一个应用程序接收数据说udp端口600,这可能是一些asn1结构,我怎么知道我应该解码哪个asn1结构?

因此,当我收到asn1数据包时,我们首先确定它的类型并根据其类型对其进行解码吗?

或者我的asn1编译器是否为我处理了这个?

找到这些东西的例子很难......即使是谷歌;-)。

使用asn1概述构建简单网络服务器的教程非常棒!

1 个答案:

答案 0 :(得分:1)

ASN.1大致对应Presentation LayerOSI seven-layer cake。它依赖于Application Layer来确定端点之间交换的信息类型。因此,没有通用标头或标识符指示 ASN.1流正在呈现哪种协议或语法。这可以通过端口号暗示,或者通过附加协议层(例如,HTTP)明确表示。


编辑(回复您的评论):ASN.1 standard定义了四个“类”标签:UNIVERSAL,APPLICATION,PRIVATE和CONTEXT-SPECIFIC。 APPLICATION基本上意味着标签被定义为在特定应用程序中使用(即,它不是作为ASN.1的一部分预先定义的。)但是APPLICATION标签没有足够的信息来指定(甚至提示)哪个应用程序正在使用中。

(实际上,“APPLICATION”,“PRIVATE”和“CONTEXT-SPECIFIC”之间的语义差别很小;这三个类主要用于历史和文体方面。)