如标准所述(http://rsdn.ru/article/ASN/ASN.xml),在编码OBJECT IDENTIFIER时,必须将SID1设置为0,1或2,并且SID2应具有相应的值,以便仅接近解码SID1和SID2。
那么,为什么评估编码SID2的公式是SID1 * 40 + SID2?什么是40岁?
答案 0 :(得分:2)
这是ASN.1早期的遗产。 OID树中的弧0和1每个限制为40个子项(0-39),而Arc 2对子项数没有限制。为了节省线路上的比特,前两个OID节点以单个字节表示(即使对于Arc 2,如果其子节点小于47)。选择“40”只是为方便起见而选择的任意数字,以便于计算将前两个OID弧拟合为单个字节。
答案 1 :(得分:1)
这来自OID命名空间限制(IIRC,X.208)。当根命名空间是itu-t或iso时,只有三个顶级根(itu-t,iso和joint-itu-t),第二级限制为40弧(0-39)。因此,可以用单个字节明确地编码前两个弧。