एब्सट्रैक्ट सिंटैक्स नोटेशन वन (ASN.1) क्या है?

8 मई 2024

एब्सट्रैक्ट सिंटेक्स नोटेशन वन (ASN.1) एक मानकीकृत नोटेशन है जिसका उपयोग डेटा संरचनाओं को परिभाषित करने के लिए किया जाता है जिसे विभिन्न प्लेटफार्मों पर क्रमबद्ध और डिसेरलाइज़ किया जा सकता है। यह प्लेटफ़ॉर्म-स्वतंत्र तरीके से डेटा का वर्णन करने के लिए एक रूपरेखा प्रदान करता है, जो इसे संचार प्रोटोकॉल के लिए महत्वपूर्ण बनाता है।

अमूर्त वाक्यविन्यास संकेतन क्या है?

ASN.1 क्या है?

एब्सट्रैक्ट सिंटैक्स नोटेशन वन (ASN.1) प्लेटफ़ॉर्म-स्वतंत्र तरीके से डेटा संरचनाओं को निर्दिष्ट करने के लिए अंतर्राष्ट्रीय दूरसंचार संघ (ITU-T) द्वारा विकसित एक मानकीकृत नोटेशन है। यह जटिल का वर्णन करने के लिए एक औपचारिक भाषा की पेशकश करके दूरसंचार, नेटवर्किंग और सुरक्षा प्रोटोकॉल में महत्वपूर्ण भूमिका निभाता है डेटा संरचनाएं. ASN.1 डेटा सिंटैक्स को एन्कोडिंग से अलग करता है, जिससे डेटा को विभिन्न प्रणालियों में निर्बाध रूप से प्रसारित और संसाधित किया जा सकता है।

इसके एन्कोडिंग नियम, जैसे बेसिक एन्कोडिंग नियम (बीईआर), विशिष्ट एन्कोडिंग नियम (डीईआर), और पैक्ड एन्कोडिंग नियम (पीईआर), यह सुनिश्चित करते हैं कि संरचनात्मक निष्ठा बनाए रखते हुए क्रमबद्ध डेटा कुशलतापूर्वक प्रसारित किया जाता है। ASN.1 न केवल डेटा के प्रकार और मूल्यों को परिभाषित करता है, बल्कि यह भी परिभाषित करता है कि ये डेटा संरचनाएं एक-दूसरे से कैसे संबंधित हैं, जिससे यह उन क्षेत्रों में अपरिहार्य हो जाता है जहां सटीक और अंतर-संचालित डेटा विनिमय आवश्यक है। यह सुरक्षा में विशेष रूप से उपयोगी है अनुप्रयोगों, डिजिटल प्रमाणपत्र और दूरसंचार मानक जहां डेटा प्रबंधन में स्थिरता महत्वपूर्ण है।

ASN.1 सिंटैक्स उदाहरण

यहां ASN.1 सिंटैक्स का एक उदाहरण दिया गया है जो नाम और उम्र वाले व्यक्ति के लिए एक सरल संदेश संरचना प्रदर्शित करता है:

Person DEFINITIONS ::= BEGIN PersonRecord ::= SEQUENCE { name UTF8String, age INTEGER } END

इस उदाहरण में, मॉड्यूल व्यक्ति नामक एक संरचना शामिल है व्यक्तिरिकॉर्ड जिसे एक के रूप में परिभाषित किया गया है दृश्य. इस क्रम में दो फ़ील्ड शामिल हैं:

  1. नामहै, जो एक है UTF8स्ट्रिंग.
  2. उम्र, जो कि ए पूर्णांक.

ASN.1 एन्कोडिंग उदाहरण

मान लीजिए हम दो क्षेत्रों वाले किसी व्यक्ति के लिए एक संरचना परिभाषित करना चाहते हैं: नाम (एक स्ट्रिंग) और उम्र (पूर्णांक)। इसे ASN.1 में इस प्रकार लिखा जाएगा:

Person DEFINITIONS ::= BEGIN PersonRecord ::= SEQUENCE { name UTF8String, age INTEGER } END

डेटा उदाहरण

मान लें कि हम "ऐलिस" नाम के एक व्यक्ति का प्रतिनिधित्व करना चाहते हैं जो 30 वर्ष का है।

एन्कोडिंग उदाहरण

यदि हम एन्कोडिंग के लिए BER (बेसिक एन्कोडिंग नियम) का उपयोग करते हैं, तो "ऐलिस, 30" का डेटा निम्नानुसार क्रमबद्ध किया जाएगा:

  1. अनुक्रम पहचानकर्ता: 0x30 (एक अनुक्रम का संकेत)
  2. लंबाई: 0x0C (पूरे अनुक्रम के लिए 12 बाइट्स)
  3. UTF8स्ट्रिंग पहचानकर्ता: 0x0C (UTF8String का संकेत)
  4. नाम की लंबाई: 0x05 ("ऐलिस" नाम के लिए 5 बाइट्स)
  5. नाम का मान: 0x41 0x6C 0x69 0x63 0x65 (UTF-8 एन्कोडेड "ऐलिस")
  6. पूर्णांक पहचानकर्ता: 0x02 (पूर्णांक का संकेत)
  7. उम्र की लम्बाई: 0x01 (पूर्णांक के लिए 1 बाइट)
  8. आयु का मान: 0x1E (30 हेक्साडेसिमल में)

इस प्रकार, BER-एन्कोडेड डेटा इस तरह दिखेगा:

30 0C 0C 05 41 6C 69 63 65 02 01 1E

यह हेक्साडेसिमल प्रतिनिधित्व ASN.1 में परिभाषित डेटा संरचना से मेल खाता है, जो दिखाता है कि इसका उपयोग सिस्टम के बीच लगातार डेटा का आदान-प्रदान करने के लिए कैसे किया जा सकता है।

ASN.1 प्रकार और मूल्य

ASN.1 (एब्स्ट्रैक्ट सिंटैक्स नोटेशन वन) मानकीकृत तरीके से विभिन्न संरचनाओं का प्रतिनिधित्व करने के लिए डेटा प्रकारों और मूल्यों का एक व्यापक सेट प्रदान करता है। ये डेटा प्रकार विभिन्न प्लेटफार्मों पर प्रभावी संचार सुनिश्चित करते हैं। यहां कुछ सामान्य ASN.1 प्रकार और मानों का विवरण दिया गया है:

पूर्णांक


एक पूर्णांक प्रकार पूर्णांक मान (सकारात्मक और नकारात्मक दोनों) का प्रतिनिधित्व करता है। यह किसी भी आकार का हो सकता है और अक्सर संख्यात्मक पहचानकर्ताओं या गणनाओं के लिए उपयोग किया जाता है।

उदाहरण:

age INTEGER ::= 30

बूलियन


RSI बूलियन प्रकार तार्किक सही या गलत मूल्यों का प्रतिनिधित्व करता है। इसका उपयोग आमतौर पर झंडे और बाइनरी निर्णयों के लिए किया जाता है।

उदाहरण:

isActive BOOLEAN ::= TRUE

ऑक्टेट स्ट्रिंग


एक OCTET STRING में ऑक्टेट्स का एक क्रम होता है (बाइट्स), आमतौर पर छवियों जैसे बाइनरी डेटा के लिए उपयोग किया जाता है, फ़ाइलों, या क्रिप्टोग्राफ़िक कुंजियाँ।

उदाहरण:

rawData OCTET STRING ::= 'E04FD020EA3A6910A2D808002B30309D'H

नल

NULL प्रकार किसी मान की अनुपस्थिति को दर्शाता है। अक्सर वैकल्पिक फ़ील्ड में प्लेसहोल्डर के रूप में उपयोग किया जाता है।

उदाहरण:

nothing NULL ::= NULL

वस्तु पहचानकर्ता


एक वस्तु पहचानकर्ता (ओआईडी) एक विश्व स्तर पर विशिष्ट पहचानकर्ता है जिसका उपयोग विशिष्ट मानकों, प्रोटोकॉल या वस्तुओं को संदर्भित करने के लिए किया जाता है।

उदाहरण:

myObjectIdentifier OBJECT IDENTIFIER ::= { iso member-body us(1) ansi-x9-57(100) }

enumerated


यह एक पूर्णांक के समान है लेकिन मानों की पूर्वनिर्धारित सूची तक सीमित है। ENUMERATED प्रकार विकल्पों या स्थितियों का प्रतिनिधित्व करने के लिए उपयोगी है।

उदाहरण:

status ENUMERATED { active(0), inactive(1), pending(2) }

UTF8स्ट्रिंग


यह UTF-8 का उपयोग करके एन्कोड किया गया एक स्ट्रिंग प्रकार है। यह विशेष वर्णों या गैर-लैटिन वर्णमाला वाले पाठ्य डेटा का प्रतिनिधित्व करने के लिए आदर्श है।

उदाहरण:

fullName UTF8String ::= "Alice Smith"

दृश्य


एक अनुक्रम विभिन्न डेटा फ़ील्ड का एक संग्रह है, जो प्रोग्रामिंग में एक संरचना या रिकॉर्ड की तरह कार्य करता है। फ़ील्ड अनिवार्य या वैकल्पिक हो सकते हैं.

उदाहरण:

PersonRecord ::= SEQUENCE { name UTF8String, age INTEGER, address UTF8String OPTIONAL }

के अनुक्रम


एक अनुक्रम एक सरणी के समान, एक ही प्रकार के तत्वों का एक संग्रह है।

उदाहरण:

PhoneNumbers ::= SEQUENCE OF UTF8String

SET


यह एक अनुक्रम की तरह है, लेकिन इसके फ़ील्ड को किसी विशेष क्रम में प्रदर्शित होने की आवश्यकता नहीं है।

उदाहरण:

Identity SET { firstName UTF8String, lastName UTF8String }

ASN.1 मैक्रोज़

ASN.1 में, डेटा संरचनाओं के लिए पुन: प्रयोज्य टेम्पलेट्स को परिभाषित करके कुछ संरचनाओं के विनिर्देशन को सरल बनाने के लिए मैक्रोज़ पेश किए गए थे। हालाँकि ASN.1 के बाद के संशोधनों में मैक्रोज़ को बड़े पैमाने पर अन्य तंत्रों द्वारा प्रतिस्थापित कर दिया गया है, पुराने विनिर्देशों के साथ काम करने के लिए उनके ऐतिहासिक उपयोग को समझना महत्वपूर्ण है।

मैक्रोज़ ने फ़ंक्शंस या टेम्पलेट्स के समान भूमिका निभाई प्रोग्रामिंग की भाषाएँ. उन्होंने उपयोगकर्ताओं को एक पुन: प्रयोज्य पैटर्न को परिभाषित करने की अनुमति दी जिसे आवश्यकतानुसार विशिष्ट विवरणों के साथ विस्तारित किया जा सकता है, इस प्रकार अतिरेक को कम किया जा सकता है और जटिल परिभाषाओं को सरल बनाया जा सकता है।

मैक्रो सिंटैक्स

मैक्रो को निम्नलिखित सामान्य संरचना का उपयोग करके परिभाषित किया गया है:

MyMacro MACRO ::= BEGIN -- Macro definition content goes here END

मैक्रो का उदाहरण

एक सरल उदाहरण में एक मैक्रो को परिभाषित करना शामिल हो सकता है जो एक बनाता है टैग किया गया प्रकार:

TaggedType MACRO ::= BEGIN TYPE NOTATION ::= Type VALUE NOTATION ::= value INTEGER END

यहाँ, प्रकार संकेतन और मूल्य संकेतन प्लेसहोल्डर हैं जो मैक्रो का उपयोग होने पर भरे जाते हैं।

ASN.1 के विकास के साथ, मैक्रोज़ को अधिक शक्तिशाली और द्वारा प्रतिस्थापित कर दिया गया है flexपैरामीटरयुक्त प्रकार और सूचना वस्तु वर्ग जैसे ible निर्माण। पैरामीटरयुक्त प्रकार टेम्प्लेट निर्दिष्ट करने का एक तरीका प्रदान करते हैं जिन्हें विभिन्न डेटा प्रकारों के साथ पुन: उपयोग किया जा सकता है, जबकि सूचना ऑब्जेक्ट वर्ग बाधाओं और संबंधों को अधिक स्पष्ट रूप से निर्दिष्ट करने की अनुमति देते हैं।

ASN.1 एन्कोडिंग नियम

ASN.1 एन्कोडिंग नियम परिभाषित करते हैं कि कैसे ASN.1 में वर्णित डेटा संरचनाओं को ट्रांसमिशन या भंडारण के लिए उपयुक्त बाइनरी प्रारूप में क्रमबद्ध और डिसेरलाइज़ किया जाना चाहिए। प्रत्येक एन्कोडिंग नियम आकार, प्रसंस्करण गति या कठोरता जैसी विशिष्ट आवश्यकताओं के आधार पर दक्षता और प्रयोज्यता के विभिन्न स्तर प्रदान करता है।

यहां ASN.1 में कुछ सामान्य एन्कोडिंग नियमों की सूची और स्पष्टीकरण दिया गया है:

  • बुनियादी एन्कोडिंग नियम (बीईआर). बीईआर एक है flexible एन्कोडिंग नियम जो एन्कोडिंग के लिए टाइप-लेंथ-वैल्यू (TLV) प्रारूप का उपयोग करता है। प्रत्येक तत्व अपने प्रकार को इंगित करने के लिए एक पहचानकर्ता से शुरू होता है, उसके बाद मूल्य की लंबाई, और अंत में, स्वयं मूल्य। बीईआर अनिश्चित-लंबाई एन्कोडिंग की अनुमति देता है, जो प्रदान करता है flexक्षमता लेकिन अन्य नियमों की तुलना में बड़े एन्कोडेड डेटा का परिणाम हो सकता है।
  • विशिष्ट एन्कोडिंग नियम (डीईआर). डीईआर बीईआर का एक सबसेट है जो विशिष्ट नियमों को लागू करके लगातार एन्कोडिंग सुनिश्चित करता है, जैसे कि सबसे छोटी संभव लंबाई एन्कोडिंग का उपयोग करना। यह डेटा संरचनाओं का स्पष्ट बाइनरी प्रतिनिधित्व प्रदान करता है। DER का उपयोग सुरक्षा प्रोटोकॉल और डिजिटल प्रमाणपत्रों में व्यापक रूप से किया जाता है क्योंकि यह गारंटी देता है कि समान ASN.1 संरचना हमेशा समान रूप से एन्कोड करती है।
  • कैनोनिकल एन्कोडिंग नियम (सीईआर). सीईआर भी बीईआर का एक उपसमूह है जिसे स्पष्ट एन्कोडिंग के लिए डिज़ाइन किया गया है। यह डीईआर के समान है लेकिन कुछ प्रकार की अनिश्चित-लंबाई एन्कोडिंग की अनुमति देता है, जो बड़े डेटा सेट के लिए उपयोगी है। सीईआर स्ट्रीमिंग अनुप्रयोगों के लिए आदर्श है जहां डेटा संरचनाएं पूर्वनिर्धारित लंबाई में फिट नहीं हो सकती हैं।
  • पैक्ड एन्कोडिंग नियम (पीईआर). PER को अनावश्यक मेटाडेटा को हटाकर अत्यधिक कुशल बनाने के लिए डिज़ाइन किया गया है। यह प्रत्येक फ़ील्ड के लिए आवश्यक बिट्स की न्यूनतम संख्या का उपयोग करके एन्कोडिंग को अनुकूलित करता है, जो अक्सर पूर्वनिर्धारित श्रेणियों या बाधाओं पर आधारित होता है। बीईआर, डीईआर और सीईआर की तुलना में पीईआर काफी छोटे डेटा आकार का उत्पादन करता है, जो इसे मोबाइल संचार जैसे बैंडविड्थ-संवेदनशील अनुप्रयोगों के लिए उपयुक्त बनाता है।
  • XML एन्कोडिंग नियम (XER). XER ASN.1 संरचनाओं को XML प्रतिनिधित्व में मैप करता है, जिससे यह मानव-पठनीय बन जाता है। इसका उद्देश्य डेटा एक्सचेंज के लिए XML की लोकप्रियता का लाभ उठाकर इंटरऑपरेबिलिटी में सुधार करना है। एक्सईआर विशेष रूप से उपयोगी है जहां डेटा को मनुष्यों द्वारा समीक्षा या संशोधित करने या मौजूदा एक्सएमएल-आधारित वर्कफ़्लो में एकीकृत करने की आवश्यकता होती है।

JSON एन्कोडिंग नियम (JER). JER ASN.1 संरचनाओं को JSON प्रतिनिधित्व में मैप करता है, जिससे वे पढ़ने योग्य और प्रयोग करने योग्य बन जाते हैं वेब अनुप्रयोग. यह वेब सेवाओं में JSON की लोकप्रियता का लाभ उठाता है। JER आधुनिक वेब-आधारित प्रणालियों के लिए उपयोगी है जो डेटा इंटरचेंज और भंडारण के लिए JSON पर निर्भर हैं।


अनास्ताज़िजा
स्पासोजेविक
अनास्ताज़ीजा ज्ञान और जुनून के साथ एक अनुभवी सामग्री लेखक हैं cloud कंप्यूटिंग, सूचना प्रौद्योगिकी और ऑनलाइन सुरक्षा। पर phoenixNAP, वह डिजिटल परिदृश्य में सभी प्रतिभागियों के लिए डेटा की मजबूती और सुरक्षा सुनिश्चित करने के बारे में ज्वलंत सवालों के जवाब देने पर ध्यान केंद्रित करती है।