16、在類型定義和信息對(duì)象集中使用擴(kuò)展標(biāo)記有什么區(qū)別?擴(kuò)展標(biāo)記是否不可見?
擴(kuò)展標(biāo)記就類型定義而言是不可見的,但就簡(jiǎn)單表約束和組件關(guān)系約束而言并非不可見。
類型本身是可擴(kuò)展的,與限制它是可擴(kuò)展的對(duì)象集之間是有區(qū)別的。在類型是可擴(kuò)展的情況下,它天生可以采用可擴(kuò)展約束允許的任何值。例如,
INTEGER(1..8, ...)
可以隨時(shí)假設(shè)任何有效值。將此與使用簡(jiǎn)單表約束進(jìn)行約束的 INTEGER類型進(jìn)行對(duì)比,在這種類型中,此類類型只能假定在該類型被編碼/解碼時(shí)恰好包含在信息對(duì)象集中的那些值。隨著程序的運(yùn)行,這可能會(huì)隨著時(shí)間的推移而變化,因?yàn)榭蓴U(kuò)展信息對(duì)象集中的對(duì)象集可能會(huì)在運(yùn)行時(shí)發(fā)生變化。
在BER、DER和 CER的情況下,這種區(qū)別不太重要,其中類型的可擴(kuò)展性在其編碼方式中不發(fā)揮作用,但在PER 中起主要作用。在 PER 中,使用擴(kuò)展標(biāo)記“...”定義的類型的值使用1 位前綴進(jìn)行編碼,當(dāng)設(shè)置為0 時(shí),意味著后面的值在擴(kuò)展根中,因此以優(yōu)化的形式編碼。(例如,上面示例中的值 1-8 將被編碼為3 位)。但是,當(dāng)設(shè)置為 1 時(shí),意味著后面的值以更通用的形式編碼。(例如,上例中不在 1-8 范圍內(nèi)的值占用16 位或更多位)。
17、你能解釋一下類型可擴(kuò)展性在PER 中是如何工作的嗎?
考慮以下兩個(gè)ASN.1 語(yǔ)法定義:
A::= SEQUENCE { --defined in v1
f1BOOLEAN,
f2BOOLEAN,
...,
}
A::= SEQUENCE { --defined in v2
f1BOOLEAN,
f2BOOLEAN,
...,
e1BOOLEAN OPTIONAL,
e2BOOLEAN
}
類型可擴(kuò)展性背后的目的是允許不理解新字段的V1 應(yīng)用程序接收具有它無法識(shí)別的字段的V2 消息,并將它們視為由V1 應(yīng)用程序發(fā)送,同樣,對(duì)于V2 應(yīng)用程序來說接收缺少字段的 V1 消息。如果 V2 應(yīng)用程序收到缺少?gòu)?qiáng)制擴(kuò)展添加的消息,它可以安全地假定該消息是由V1 應(yīng)用程序發(fā)起的。
只有在擴(kuò)展附加位圖中有一個(gè)位表示存在/不存在哪些擴(kuò)展附加值時(shí),才必須對(duì)擴(kuò)展標(biāo)記之后的強(qiáng)制字段進(jìn)行編碼。因此,在強(qiáng)制擴(kuò)展附加 y 之后定義了擴(kuò)展附加x,并且 x的值存在于編碼中,那么y 的值必須存在。此外,如果強(qiáng)制擴(kuò)展附加 y 是SEQUENCE 中的最后一個(gè)組件,并且在擴(kuò)展附加位圖中存在一個(gè)位,則該位必須設(shè)置為1,因?yàn)樵撐坏拇嬖诒砻飨⒌陌l(fā)起者知道這個(gè)擴(kuò)展添加,因此它的存在是強(qiáng)制性的。只有當(dāng)消息是從未定義強(qiáng)制擴(kuò)展添加的早期版本的消息定義中繼時(shí),才可以省略它(在這種情況下,擴(kuò)展添加位圖中將沒有位)。ITU-T 建議X.680(2008) 25.15 注2 中指出了這一點(diǎn):
作為擴(kuò)展添加但不包含在“ExtensionAdditionGroup”中的“ComponentType”如果未標(biāo)記為OPTIONAL 或DEFAULT,則應(yīng)始終對(duì)其進(jìn)行編碼,除非抽象值是從使用較早版本抽象語(yǔ)法的發(fā)送者中繼的其中未定義“ComponentType”。
換句話說,PER將標(biāo)記為 OPTIONAL的擴(kuò)展添加與非 OPTIONAL的擴(kuò)展添加完全相同。
審核編輯:劉清
-
編碼
+關(guān)注
關(guān)注
6文章
943瀏覽量
54838 -
CeR
+關(guān)注
關(guān)注
0文章
4瀏覽量
7274
原文標(biāo)題:?OSS Nokalva:ASN.1問答時(shí)間(4)
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
在眾核場(chǎng)景下EXT4該如何應(yīng)對(duì)才能發(fā)揮性能
![<b class='flag-5'>在</b>眾核場(chǎng)景<b class='flag-5'>下</b>EXT4該如何應(yīng)對(duì)才能發(fā)揮性能](https://file1.elecfans.com/web3/M00/04/3D/wKgZPGdyFbWAJvikAAAm_Ch0x44677.png)
Perforce Helix Core通過ISO 26262認(rèn)證!為汽車軟件開發(fā)團(tuán)隊(duì)提供無限可擴(kuò)展性、細(xì)粒度安全性、文件快速訪問等
![Perforce Helix Core通過ISO 26262認(rèn)證!為汽車軟件開發(fā)團(tuán)隊(duì)提供無限<b class='flag-5'>可</b><b class='flag-5'>擴(kuò)展性</b>、細(xì)粒度安全性、文件快速訪問等](https://file1.elecfans.com/web2/M00/0B/69/wKgZomcy-I2AIl-YAACo85I6JuQ231.png)
測(cè)試工作中的哎呀,當(dāng)時(shí)怎么沒有想到
![測(cè)試<b class='flag-5'>工作中</b>的哎呀,當(dāng)時(shí)怎么沒有想到](https://file1.elecfans.com//web2/M00/06/61/wKgaombaXr6AdCfOAAN9w_h8Eoc445.png)
RC4580IDR放大器的工作溫度是多少?
使用低成本MSPM0 MCU在無線電動(dòng)工具和園藝工具中實(shí)現(xiàn)可擴(kuò)展性
![使用低成本MSPM0 MCU<b class='flag-5'>在</b>無線電動(dòng)工具和園藝工具<b class='flag-5'>中</b>實(shí)現(xiàn)<b class='flag-5'>可</b><b class='flag-5'>擴(kuò)展性</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
來一發(fā)干貨,一篇文章教會(huì)你如何利用PCIe擴(kuò)展SSD硬盤存儲(chǔ)
![來<b class='flag-5'>一</b>發(fā)干貨,<b class='flag-5'>一</b>篇文章教會(huì)<b class='flag-5'>你</b>如何利用PCIe<b class='flag-5'>擴(kuò)展</b>SSD硬盤存儲(chǔ)](https://file1.elecfans.com/web2/M00/00/23/wKgZomaskqWAeoy0AACRSCvm0io249.png)
請(qǐng)問CYW20829中的HVDI參數(shù)指的是什么?
請(qǐng)問espconn_mesh_is_root_candidate()具體是什么功能?
為CYUSB3KIT-004 EZ-USB SX3開發(fā)套件供電,將圖像格式更改為Y16并使用Y16刻錄配置時(shí),不起作用的原因?
如何挑選智能物聯(lián)網(wǎng)平臺(tái)?了解這五大關(guān)鍵要素,助力企業(yè)智能化
在同步從fifo的例程中,如何理解U2P和P2U的工作方式?
NMI在TC377中是如何運(yùn)作的?
分布式大屏控制系統(tǒng)的可擴(kuò)展性設(shè)計(jì)
DSADC和普通ADC有什么區(qū)別嗎?
MEMS壓阻式壓力傳感器這些知識(shí)你都了解嗎
![MEMS壓阻式壓力傳感器這些知識(shí)<b class='flag-5'>你</b>都了解嗎](https://file1.elecfans.com/web2/M00/BA/5B/wKgZomWTsNOASoeEAAAN5dgFIw4279.jpg)
評(píng)論