免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7216 | 回复: 14
打印 上一主题 下一主题

急!求ASN.1(标准的数据描述语言)相关知识 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-28 09:18 |只看该作者 |倒序浏览
遇到一份台湾话单协议格式是用这种语言描述的,不知道如何解码。在网上查到资料极少。如下:
http://fanqiang.chinaunix.net/a3/b5/20010525/150710.html
http://www.ctiforum.com/standard/standard/asn.1/asn1/asn1.htm
http://www.ctiforum.com/standard/standard/asn.1/asn/asn2.htm

    大概讲一下什么是ASN.1:
ASN.1 (Abstract Syntax Notation One) 是一种用于描述结构化客体的结构和内容的语言。它原来是作为X.409的一部分而开发的,后来才自己独立成为一个标准。ASN.1在OSI的ISO 8824/ITU X.208(说明语法)和ISO 8825/ITU X.209(说明基本编码规则)规范。它被广泛用于通讯协议说明书中。

    请教高手对这种数据如何进行解码?

论坛徽章:
0
2 [报告]
发表于 2005-01-28 09:21 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

agentX,pdu都跟它有关吧?我前一阵子在http://www.faqs.org/rfcs/rfcsearch.html
查过不少资料,后来改方法了也就不了了之。

论坛徽章:
0
3 [报告]
发表于 2005-01-28 10:11 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

看snmp++、net-snmp等的源代码。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-01-28 10:15 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

[quote]原帖由 "fieryfox"]看snmp++、net-snmp等的源代码。[/quote 发表:


对,snmp++里面有一个类是对asn.1进行编码和解码的,
你可以参考一下。只不过是c++写的。

论坛徽章:
0
5 [报告]
发表于 2005-01-28 13:49 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

网上流传有很多 ASN.1 编码解码的 CODE 啊。
关于他的标准,你可以搜索一下有个叫做 asn.1 complete
的 e-book, 很详细的说明了 ber, per 等编解码方式。

你还可以找一下 h.323 的实现, asn.1 在里面用得很广泛。
H.225, h.245, h.450.x q931 之类的都是由 asn.1 描述的。

论坛徽章:
0
6 [报告]
发表于 2005-01-31 11:36 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

到大家说的地方看看,继续学习中...
看了不少文档,还是有些摸不着头脑。
ASN差不多只是对数据结构和编码方式的描述,是不是有某种算法对所有使用ASN完成的数据都能解码呢?

论坛徽章:
0
7 [报告]
发表于 2005-01-31 12:36 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

在http://www.infosecurity.org.cn论坛上找到两本书,一本是原版英文,一个是中文版。附在这里。
无法上传,文件名放在这里吧:
asn1_layman_guide.pdf
ASN1 BER DER 编码子集入门指南.pdf

论坛徽章:
0
8 [报告]
发表于 2005-01-31 14:35 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

首先ASN.1一般都是描述的某种协议的传输数据结构。它的好处是无二意性。不知道你们光是用来描述,还是底层用编码成ASN.1来传输。
一般用ASN。1写出协议的数据结构,然后生成C语言的数据结构,通信双方使用一致的协议文件就能通过编解码程序来进行通信了。

如果你那个协议简单的话,你可以自己写一个大的数据结构对应。如果和底层通信相关那就要知道是BER编码还是DER编码,编码不同数据包长度不同。

论坛徽章:
0
9 [报告]
发表于 2005-01-31 15:04 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

可以参照asn.1的标准文档说明。不知道你所的话单是否是交换机话单,如果是,那么在话单说明文档的开头应该列出了相关的参考文档说明,要稍微留心一下。
通常ASN.1标准的格式是(只能算简单的提示):tag+length+context.
tag是由一定的算法生成,这个通常是固定的,文档中会列出,不需要多费心;
length通常变化不到,区分一下长度是一个字节,还是多个字节,正常情况下长度是一个字节就够用了(在话单中),所以很多程序中考虑不周全,没有处理多个字节。
context根据文档中的说明进行解析即可。

论坛徽章:
0
10 [报告]
发表于 2005-01-31 15:34 |只看该作者

急!求ASN.1(标准的数据描述语言)相关知识

to crackpot :
    我只需要将数据解读出来即可。你说“一般用ASN。1写出协议的数据结构,然后生成C语言的数据结构”,有这样的程序吗?从何处入手?我们使用的正是C语言。协议非常复杂,全英文的,一百七八十页呢。为了这个我看了将近500页书了,还是似懂非懂。能否给个例子点播一下?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP