【发布时间】:2017-08-11 12:09:13
【问题描述】:
查看 3GPP MAP (http://www.3gpp.org/ftp/specs/archive/29_series/29.002/ASN.1/) 的 ASN.1 模块,我对第一个字段 (imsi) 使用 [0] 标记感到困惑。由于它不是 OPTIONAL 字段,而且它的类型也是已知的(OCTET STRING),这里标记的目的是什么?
需要注意的一点是,imsi 字段不直接解释为八位字节字符串,但它以半八位字节编码(如 BCD)保存 IMSI 的数字。这可能是该字段被标记的原因吗?
【问题讨论】:
-
鉴于字段的位置已知,我不明白为什么字段类型对其内容解释可能很重要...
-
会不会与全局标记模式有关(例如模块级别,在 DEFINITION 子句中设置)?
-
我在模块标题中看不到任何子句。所以我认为它应该是默认值。
-
默认值为 EXPLICIT,因此隐式标记此类型作为替代是有意义的。但它仍然没有解释为什么需要标记 - 为什么它不能只是一个基本的八位字节字符串......?我可以为您提供的另一个想法是,此标记字段允许您将来在
imsi字段前面添加另一个可选的基本 OCTET STRING 字段。 -
我会保留这个问题。不仅最终可能会出现更有知识的人,而且问题本身也提出了一个有趣的观点。
标签: asn.1