1、選擇ASN.1 的原因是什么?
選擇ASN.1 的一些原因是:
ASN.1 允許實現者選擇最適合他們的任何編程語言,并在該語言中選擇最適合其應用程序的數據類型的綁定。例如,如果 ASN.1將類型定義為項目的集合,您可以自由地將其表示為鏈表、數組等,這取決于最適合您的語言/應用程序的方式。
ASN.1允許您以這樣一種方式定義消息,即如果將來向消息中添加新字段,您不理解新字段的舊應用程序將繼續與理解新字段的新應用程序一起正常工作。這樣您就不必同時將所有實現切換到消息的新版本。對于此類消息,較舊的實現意識到他們應該期望并忽略消息中的新字段。
ASN.1 允許您對消息中的字段施加約束。例如,您可以指示整數類型應該只攜帶值1、2、7-10,或者字符串的長度應該在20-30 個字節之間。
ASN.1 允許您表達消息字段之間的關系。例如,您可以指示如果給定字段包含 7,則必須存在另一個字段。
ASN.1 允許您定義OPTIONAL 字段,如果沒有數據,則傳輸很少或不傳輸數據。
ASN.1 允許消息規范的作者(例如,標準編寫者)以清晰簡潔的方式向實現者明確指出消息中字段的性質。
ASN.1 讓協議設計人員能夠自由地描述消息的布局,而無需深入研究在兩臺機器之間傳輸的數據的位和字節細節,從而提高了生產力。
通過使用正式的、可編譯的符號ASN.1 定義消息,可以通過使用將使用ASN.1 描述的消息轉換為C、C++或 Java等語言的工具以及編碼器/解碼器來提高生產力,以最小化或無需弄清楚如何序列化數據以進行傳輸。
2、使用可擴展性是否有任何權衡?
如果您希望中繼接收到的值(即,如果您希望解碼器將意外值返回給您,而不是被解碼器忽略),則使用可擴展性將導致生成稍微復雜的頭文件。在大多數情況下,它足以滿足“舊”版本忽略從“新”版本收到的擴展值,因為它通常不知道如何處理它們。
就您的應用程序代碼而言,通常它不會導致更大或更復雜的代碼。
如果您使用PER,如果您使用類型可擴展性,則編碼會稍大一些。類型可擴展性對 BER 編碼的大小沒有影響。
除非您提前知道永遠不需要擴展給定類型,否則您應該將其定義為可擴展的。
3、標記會影響PER 中的編碼數據嗎?
一般來說,無論標簽是什么,編碼數據看起來都是一樣的。
唯一的例外是選擇類型的編碼。在 PER 中,選擇類型的每個備選方案都由索引標識。這些索引以取決于每個備選方案的標簽的順序分配給備選方案。當使用自動標記時,索引確實對應于備選方案的定義順序。
4、PER中的開放類型值是如何編碼的?
在PER中開放類型的編碼與無約束的OCTETSTRING類型的值相同。這意味著長度可以是一個或兩個字節,或者如果長度是>16K字節,則編碼會被分割開來,等等。
審核編輯:劉清
-
解碼器
+關注
關注
9文章
1164瀏覽量
41763 -
JAVA
+關注
關注
20文章
2987瀏覽量
107247 -
編碼
+關注
關注
6文章
967瀏覽量
55579
原文標題:?OSS Nokalva:ASN.1問答時間(1)
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
瑞薩電子RA系列微控制器的可擴展性強的配置軟件包 (FSP)安裝下載與使用指南
聚徽分享高性能工控機選購指南:穩定性、擴展性、抗干擾能力如何平衡?
飛凌嵌入式ElfBoard ELF 1板卡-Regmap的優勢
云服務器和獨立服務器的區別在哪?一文讀懂如何選擇
瑞芯微RK3288解決方案:高性能、高擴展性的嵌入式系統設計理念與應用分析

IAR推動嵌入式開發:云就緒、可擴展的CI/CD和可持續自動化
Codima產品概覽:構建可擴展產品的核心架構

擴展您的Chart FX應用程序:標準化升級適應更多領域

訓練AI大模型需要什么樣的gpu
深度評測:云計算平臺的優勢和不足
公有云存儲和私有云存儲哪個好一些?
Perforce Helix Core通過ISO 26262認證!為汽車軟件開發團隊提供無限可擴展性、細粒度安全性、文件快速訪問等

RN3001A011EA1A3A堵煤控制器采用有線電纜的原因
使用低成本MSPM0 MCU在無線電動工具和園藝工具中實現可擴展性

評論