सार्वभौमिक अद्वितीय पहचानकर्ता

From Vigyanwiki
सार्वभौमिक अद्वितीय पहचानकर्ता
UEFI variables on Linux screenshot.png
UUID/GUID UEFI वेरिएबल्स द्वारा उपयोग किया जाता है
Acronymयूयूआईडी
Organisation
No. of digits32
ExampleTemplate:कोड
WebsiteTemplate:आईईटीएफ आरएफसी

सार्वभौमिक अद्वितीय पहचानकर्ता (यूयूआईडी - यूयूआईडी) कंप्यूटर प्रणाली में जानकारी प्राप्त करने के लिए उपयोग की जाने वाली 128 बिट संख्या को उपयोग करता हैं। वैश्विक स्तर पर जीयूआईडी (GUID) शब्द का उपयोग भी किया जाता है।[1]

मानक विधियों के अनुसार उत्पन्न होने पर, यूयूआईडी व्यावहारिक उद्देश्यों को पूरा करने के लिए डुप्लिकेट रूप से प्रयोग में लाये जाते हैं। अधिकांशतः अन्य सांख्यकिक योजनाओं के विपरीत, उनकी विशिष्टता केंद्रीय पंजीकरण प्राधिकरण या उन्हें उत्पन्न करने वाले समूहों के बीच होने वाले समन्वय पर निर्भर नहीं करती है। जबकि यह संभावना है कि यूयूआईडी को डुप्लिकेट किया जाएगा पर इसका मान शून्य नहीं होता है,और इसका मान सामान्यतः नगण्य होने के कारण शून्य के अधिक समीप माना जाता है।[2][3]

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

यूयूआईडी को अपनाना व्यापक है, कई कंप्यूटिंग प्लेटफॉर्म उन्हें उत्पन्न करने और उनके शाब्दिक प्रतिनिधित्व को पार्स करने के लिए समर्थन प्रदान करते हैं।

इतिहास

1980 के दशक में अपोलो कंप्यूटर ने मूल रूप से नेटवर्क कंप्यूटिंग प्रणाली (NCS) में और बाद में ओपन सॉफ्टवेयर फाउंडेशन (OSF) वितरित कंप्यूटिंग पर्यावरण (डीसीई) में यूयूआईडी का उपयोग किया गया हैं। इस प्रकार डीसीई यूयूआईडी का प्रारंभिक डिज़ाइन NCS यूयूआईडी पर आधारित था,[4] जिसका डिजाइन इसके अतिरिक्त (64-बिट कंप्यूटिंग या 64-बिट) अद्वितीय पहचानकर्ताओं से प्रेरित था और अपोलो कंप्यूटर द्वारा डिजाइन किए गए ऑपरेटिंग प्रणाली डोमेन/ओएस में व्यापक रूप से परिभाषित और उपयोग किया गया था। इसके पश्चात, माइक्रोसाॅफ्ट विंडोज प्लेटफ़ॉर्म ने डीसीई डिज़ाइन को विश्व स्तर पर अद्वितीय पहचानकर्ता (GUIDs) के रूप में अपनाया गया था। [rfc:4122 आरएफसी 4122] ने यूयूआईडी के लिए URN नाम स्थान पंजीकृत किया[1]और इसी तकनीकी सामग्री के साथ, पहले के विनिर्देशों को दोहराया गया था।

जब जुलाई 2005 में आरएफसी 4122 को प्रस्तावित IETF मानक के रूप में प्रकाशित किया गया था, ITU ने भी पिछले मानकों और आरएफसी 4122 के प्रारंभिक संस्करणों के आधार पर यूयूआईडी को मानकीकृत किया गया था।

मानक

वितरित कंप्यूटिंग पर्यावरण (डीसीई) के मुख्य भाग के रूप में यूयूआईडी को ओपन सॉफ्टवेयर फाउंडेशन (ओएसएफ) द्वारा मानकीकृत किया गया है।[5][6]

यूयूआईडी को मानकीकरण के लिए अंतर्राष्ट्रीय संगठन/अंतर्राष्ट्रीय इलेक्ट्रोटेक्निकल कमीशन 11578:1996 सूचना प्रौद्योगिकी - ओपन सिस्टम इंटरकनेक्शन - सुदूर प्रणाली संदेश (RPC) और हाल ही में ITU-T Rec में X.667 या मानकीकरण के लिए अंतर्राष्ट्रीय संगठन/अंतर्राष्ट्रीय इलेक्ट्रोटेक्निकल कमीशन 9834-8:2005 द्वारा प्रलेखित किया गया है।[7]

इंटरनेट इंजीनियरिंग टास्क फोर्स (IETF) ने मानक-ट्रैक आरएफसी 4122 प्रकाशित किया, जो तकनीकी रूप से ITU-T Rec के X.667 या आईएसओ/आईईसी 9834-8 के समकक्ष माना जाता हैं।

प्रारूप

इसके विहित शाब्दिक प्रतिनिधित्व में, एक यूयूआईडी के 16 ऑक्टेट (कंप्यूटिंग) को 32 हेक्साडेसिमल (बेस-16) अंकों के रूप में दर्शाया जाता है, जो कुल योग के लिए 8-4-4-4-12 के रूप में हाइफ़न द्वारा अलग किए गए पांच समूहों में प्रदर्शित होता है। 36 अक्षरों का (32 हेक्साडेसिमल वर्ण और 4 हाइफ़न)। उदाहरण के लिए:

123e4567-e89b-12d3-a456-426614174000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

चार बिट M और 1- से 3-बिट N फ़ील्ड यूयूआईडी के प्रारूप को ही कोड करते हैं।

अंकों के चार बिट M यूयूआईडी संस्करण हैं, और अंकों के 1 से 3 सबसे महत्वपूर्ण बिट हैं N यूयूआईडी वैरिएंट को कोड करें। (नीचे सार्वभौमिक अद्वितीय पहचानकर्ता#वेरिएंट|देखें।) उदाहरण में, M है 1, और एन है a (10xx2), जिसका अर्थ है कि यह संस्करण-1, संस्करण-1 यूयूआईडी है; यानी, एक समय-आधारित DCE/आरएफसी 4122 यूयूआईडी।

विहित 8-4-4-4-12 प्रारूप स्ट्रिंग यूयूआईडी के 16 बाइट्स के लिए रिकॉर्ड लेआउट पर आधारित है:

यूयूआईडी record layout
नाम लंबाई(बाईट्स) लंबाई(हेक्स डिजिट्स) लंबाई(बिट्स) संदर्भ
time_low 4 8 32 पूर्णांक समय के निम्न 32 बिट दे रहा है
time_mid 2 4 16 पूर्णांक समय के मध्य 16 बिट देता है
time_hi_and_version 2 4 16 सबसे महत्वपूर्ण बिट्स में 4-बिट "संस्करण", उसके बाद उस समय के उच्च 12 बिट्स
clock_seq_hi_and_res clock_seq_low 2 4 16 सबसे महत्वपूर्ण बिट्स में 1 से 3-बिट "वैरिएंट", उसके बाद 13 से 15-बिट क्लॉक सीक्वेंस
node 6 12 48 48-बिट नोड आईडी

ये फ़ील्ड संस्करण 1 और 2 यूयूआईडी (अर्थात, समय-आधारित यूयूआईडी) के अनुरूप हैं, लेकिन समान 8-4-4-4-12 प्रतिनिधित्व का उपयोग सभी यूयूआईडी के लिए किया जाता है, यहाँ तक कि अलग-अलग निर्मित यूयूआईडी के लिए भी किया जाता हैं।

आरएफसी 4122 धारा 3 के लिए आवश्यक है कि इनपुट पर केस-असंवेदनशील होने के साथ-साथ अक्षरों को लोअर केस में उत्पन्न किया जाए।

Microsoft GUIDs को कभी-कभी आस-पास के कोष्ठक के साथ प्रदर्शित किया जाता है:

{123e4567-e89b-12d3-a456-426652340000}

इस प्रारूप को विंडोज रजिस्ट्री प्रारूप से भ्रमित नहीं होना चाहिए, जो मध्य कोष्ठक के भीतर प्रारूप को संदर्भित करता है।[8]

आरएफसी 4122 यूयूआईडी के लिए समान संसाधन का नाम (URN) नेमस्पेस परिभाषित करता है। URN के रूप में प्रस्तुत किया गया यूयूआईडी इस प्रकार दिखाई देता है:[1]: urn:uuid:123e4567-e89b-12d3-a456-426655440000

एनकोडिंग

यूयूआईडी का बाइनरी एन्कोडिंग प्रणाली के बीच भिन्न होता है। संस्करण 1 यूयूआईडी, आजकल सबसे सरल संस्करण, बड़े एंडियन प्रारूप में एन्कोड किया गया है। उदाहरण के लिए, 00112233-4455-6677-8899-aabbccddeeff बाइट्स के रूप में एन्कोड किया गया है 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff इसका मुख्य उदाहरण हैं।[9][10]

वैरिएंट 2 यूयूआईडी, ऐतिहासिक रूप से माइक्रोसाॅफ्ट के कंपोनेंट ऑब्जेक्ट मॉडल या COM/OLE लाइब्रेरी में उपयोग किया जाता है, छोटे-एंडियन प्रारूप का उपयोग करता है, किन्तु यूयूआईडी के पहले तीन घटकों के साथ मिश्रित-एंडियन दिखाई देता है, जो कि छोटे-एंडियन और अंतिम दो बड़े-एंडियन के कारण होता है स्ट्रिंग के रूप में स्वरूपित होने पर विलुप्त बाइट डैश के रूप में होता हैं।[11] उदाहरण के लिए, 00112233-4455-6677-c899-aabbccddeeff को 33 22 11 00 55 44 77 66 88 99 aa bb cc dd ee ff बाइट्स के रूप में एन्कोड किया गया है।[12][13] वैरिएंट 2 में '88' बाइट 'c8' क्यों बन जाती है, इस बारे में विवरण के लिए वैरिएंट पर अनुभाग देखें।

संस्करण

यूयूआईडी का भिन्न क्षेत्र, या N स्थिति उनके प्रारूप और एन्कोडिंग को इंगित करता है। आरएफसी 4122 1 से 3 बिट्स की लंबाई के चार रूपों को परिभाषित करता है:

  • संस्करण 0 (एक-बिट पैटर्न 0xxx द्वारा दर्शाया गया है2, एन =0..7) 1988 के आसपास विकसित अब अप्रचलित अपोलो नेटवर्क कंप्यूटिंग प्रणाली 1.5 यूयूआईडी प्रारूप के साथ पश्चगामी संगतता के लिए है। यूयूआईडी के पहले 6 ऑक्टेट 48-बिट टाइमस्टैम्प हैं (1 जनवरी 1980 UTC के बाद से समय की 4-माइक्रोसेकंड इकाइयों की संख्या) , अगले 2 ऑक्टेट आरक्षित हैं, अगला ऑक्टेट पता परिवार है, और अंतिम 7 ऑक्टेट पता परिवार द्वारा निर्दिष्ट फॉर्म में 56-बिट होस्ट आईडी हैं। चूंकि विवरण में भिन्न, आधुनिक संस्करण-1 यूयूआईडी के साथ समानता स्पष्ट है। वर्तमान यूयूआईडी विनिर्देशन में भिन्न बिट्स NCS यूयूआईडी में पता परिवार ऑक्टेट के उच्च बिट्स के साथ मेल खाते हैं। चूंकि पता परिवार 0..255 की सीमा में मान रख सकता है, केवल मान 0..13 कभी परिभाषित किए गए थे। तदनुसार, संस्करण-0 बिट पैटर्न 0xxx ऐतिहासिक NCS यूयूआईडी के साथ विरोध से बचा जाता है, यदि कोई अभी भी डेटाबेस में उपस्तिथ है।[14]
  • संस्करण 1 (10xx2, एन =8..b, 2 बिट्स) को मूल इंटरनेट ड्राफ्ट के लेखकों के नाम पर आरएफसी 4122/डीसीई 1.1 यूयूआईडी, या Leach-Salz यूयूआईडी के रूप में संदर्भित किया जाता है।
  • वैरिएंट 2 (110x2, N = c..d, 3 बिट्स) को आरएफसी में आरक्षित, माइक्रोसाॅफ्ट काॅर्पोरेशन पश्चगामी संगतता के रूप में चित्रित किया गया है और इसका उपयोग माइक्रोसाॅफ्ट विंडोज प्लेटफ़ॉर्म पर प्रारंभिक GUID के लिए किया गया था। यह वैरिएंट 1 से केवल बाइनरी स्टोरेज या ट्रांसमिशन में एंडियननेस से भिन्न होता है: संस्करण -1 यूयूआईडी नेटवर्क (बिग-एंडियन) बाइट ऑर्डर का उपयोग करते हैं, जबकि संस्करण -2 GUIDs यूयूआईडी के कुछ उपक्षेत्रों के लिए नेटिव (लिटिल-एंडियन) बाइट ऑर्डर का उपयोग करते हैं।
  • आरक्षित को 3-बिट वैरिएंट बिट पैटर्न 111x2 (एन =e..f) के रूप में परिभाषित किया गया है।

संस्करण 1 और 2 वर्तमान यूयूआईडी विनिर्देश द्वारा उपयोग किए जाते हैं। उनके शाब्दिक अभ्यावेदन में, संस्करण बिट्स को छोड़कर संस्करण 1 और 2 समान हैं। बाइनरी प्रतिनिधित्व में, अंतहीनता अंतर है।[1]जब संस्करण 1 के बिग-एंडियन बाइट ऑर्डर और संस्करण 2 के लिटिल-एंडियन बाइट ऑर्डर के बीच कनवर्ट करने के लिए बाइट स्वैपिंग की आवश्यकता होती है, तो ऊपर दिए गए फ़ील्ड स्वैपिंग को परिभाषित करते हैं। पहले तीन क्षेत्र अहस्ताक्षरित 32- और 16-बिट पूर्णांक हैं और अदला-बदली के अधीन हैं, जबकि अंतिम दो क्षेत्रों में बिना व्याख्या के बाइट्स हैं, अदला-बदली के अधीन नहीं हैं। यह बाइट स्वैपिंग संस्करण 3, 4 और 5 के लिए भी लागू होती है, जहां विहित क्षेत्र यूयूआईडी की सामग्री के अनुरूप नहीं होते हैं।[1]

जबकि कुछ महत्वपूर्ण GUID, जैसे घटक वस्तु मॉडल I अज्ञात इंटरफ़ेस के लिए पहचानकर्ता, नाममात्र रूप से भिन्न-2 यूयूआईडी हैं, माइक्रोसाॅफ्ट विंडोज सॉफ़्टवेयर में उत्पन्न और उपयोग किए जाने वाले और GUIDs के रूप में संदर्भित कई पहचानकर्ता मानक संस्करण-1 आरएफसी 4122/डीसीई हैं 1.1 नेटवर्क-बाइट-ऑर्डर यूयूआईडी, न कि लिट्ल-एंडियन वैरिएंट-2 यूयूआईडी। माइक्रोसॉफ्ट का वर्तमान संस्करण guidgen उपकरण मानक संस्करण -1 यूयूआईडी का उत्पादन करता है। कुछ माइक्रोसॉफ्ट दस्तावेज बताते हैं कि GUID यूयूआईडी के लिए समानार्थी है,[15] जैसा आरएफसी 4122 में मानकीकृत है। आरएफसी 4122 स्वयं कहता है कि यूयूआईडी को GUID के रूप में भी जाना जाता है। यह सब बताता है कि GUID, जबकि मूल रूप से माइक्रोसाॅफ्ट द्वारा उपयोग किए जाने वाले यूयूआईडी के प्रकार का उल्लेख करते हुए, यूयूआईडी के लिए केवल वैकल्पिक नाम बन गया है, जिसमें संस्करण-1 और संस्करण-2 दोनों GUID उपस्तिथ हैं।

संस्करण

दोनों प्रकार 1 और 2 के लिए, पांच संस्करण मानकों में परिभाषित किए गए हैं, और विशिष्ट उपयोग स्थितियों में प्रत्येक संस्करण अन्य की तुलना में अधिक उपयुक्त हो सकता है। संस्करण द्वारा इंगित किया गया है M स्ट्रिंग प्रतिनिधित्व में होता हैं।

संस्करण-1 यूयूआईडी समय और नोड आईडी (सामान्यतः मैक पता) से उत्पन्न होते हैं, संस्करण-2 यूयूआईडी पहचानकर्ता (सामान्यतः समूह या उपयोगकर्ता आईडी), समय और नोड आईडी से उत्पन्न होते हैं, संस्करण 3 और 5 नामस्थान पहचानकर्ता और नाम हैशिंग द्वारा उत्पन्न निर्धारक यूयूआईडी उत्पन्न करते हैं, और संस्करण-4 यूयूआईडी अनियमितता या छद्म यादृच्छिकतायास्यूडो-रैंडम नंबर का उपयोग करके उत्पन्न होते हैं।

निल यूयूआईडी

शून्य यूयूआईडी, विशेष मामला, यूयूआईडी है 00000000-0000-0000-0000-000000000000, अर्थात, सभी बिट शून्य पर व्यव्सथित किया गया हैं।[1]

संस्करण 1 (दिनांक-समय और मैक पता)

संस्करण 1 नोड के 48-बिट मैक पते को जोड़ता है (अर्थात, यूयूआईडी उत्पन्न करने वाला कंप्यूटर), 60-बिट टाइमस्टैम्प के साथ, मध्यरात्रि 15 अक्टूबर 1582 समन्वित यूनिवर्सल टाइम (यूटीसी) के बाद से 100-नैनोसेकंड अंतराल की संख्या है। वह इस तिथि पर जिसके द्वारा जॉर्जियाई कैलेंडर को पहली बार कैथोलिक चर्च और पापल राज्यों के बाहर अपनाया गया था। आरएफसी 4122 बताता है कि समय का मान लगभग 3400 ई.[1]: 3 का उपयोग किए गए एल्गोरिदम के आधार पर, जिसका अर्थ है कि 60-बिट टाइमस्टैम्प हस्ताक्षरित मात्रा है। चूँकि कुछ सॉफ़्टवेयर, जैसे कि लिब्यूड लाइब्रेरी, टाइमस्टैम्प को अहस्ताक्षरित मानते हैं, 5236 AD में रोलओवर समय डालते हैं।[16] इस प्रकार ITU-T Rec द्वारा परिभाषित रोलओवर का उपयोग X.667 3603 ईस्वी के समय का है।[17]: v

एक 13-बिट या 14-बिट यूनिकफाइंग क्लॉक सारणी के टाइमस्टैम्प को उन स्थितियों को संभालने के लिए बढ़ाता है जहां प्रोसेसर क्लॉक पर्याप्त तेजी से आगे नहीं बढ़ता है, या जहां कई प्रोसेसर और यूयूआईडी जनरेटर प्रति नोड हैं। जब यूयूआईडी प्रणाली क्लॉक की तुलना में तेज़ी से उत्पन्न होते हैं, तो टाइमस्टैम्प फ़ील्ड के निचले बिट्स को उच्च-रिज़ॉल्यूशन टाइमस्टैम्प का अनुकरण करने के लिए हर बार यूयूआईडी उत्पन्न होने पर इसे बढ़ाकर उत्पन्न किया जा सकता है। अंतरिक्ष (नोड) और समय (अंतराल और घड़ी अनुक्रम) में बिंदु के अनुरूप प्रत्येक संस्करण 1 यूयूआईडी के साथ, दो उचित रूप से उत्पन्न संस्करण -1 यूयूआईडी के अनायास ही समान होने की संभावना व्यावहारिक रूप से शून्य है। चूंकि समय और घड़ी क्रम कुल 74 बिट्स हैं, 274 (1.8×1022, या 18 सेक्सटिलियन) संस्करण-1 यूयूआईडी प्रति नोड आईडी 163 बिलियन प्रति सेकंड प्रति नोड आईडी की अधिकतम औसत दर पर उत्पन्न किया जा सकता है।[1]

अन्य यूयूआईडी संस्करणों के विपरीत, नेटवर्क कार्ड से मैक पतों पर आधारित संस्करण -1 और -2 यूयूआईडी केंद्रीय पंजीकरण प्राधिकरण द्वारा जारी किए गए पहचानकर्ता पर अपनी विशिष्टता के लिए विश्वास करते हैं, अर्थात् मैक पते का संगठनात्मक रूप से अद्वितीय पहचानकर्ता (ओयूआई) भाग , जो IEEE द्वारा नेटवर्किंग उपकरण के निर्माताओं को जारी किया जाता है।[18] नेटवर्क-कार्ड मैक पतों पर आधारित संस्करण-1 और संस्करण-2 यूयूआईडी की विशिष्टता भी नेटवर्क-कार्ड निर्माताओं पर निर्भर करती है कि वे अपने कार्ड के लिए अद्वितीय मैक पते ठीक से निर्दिष्ट करते हैं, जो कि अन्य निर्माण प्रक्रियाओं की तरह त्रुटि के अधीन है। इसके अतिरिक्त कुछ ऑपरेटिंग प्रणाली अंतिम उपयोगकर्ता को मैक पता, विशेष रूप से ओपेन Wrt को अनुकूलित करने की अनुमति देते हैं।[19]

नोड आईडी के लिए नोड के नेटवर्क कार्ड मैक पते का उपयोग करने का मतलब है कि संस्करण -1 यूयूआईडी को उस कंप्यूटर पर वापस ट्रैक किया जा सकता है जिसने इसे बनाया था। दस्तावेज़ों को कभी-कभी उन कंप्यूटरों में खोजा जा सकता है जहाँ वे शब्द संसाधन सॉफ़्टवेयर द्वारा एम्बेड किए गए यूयूआईडी के माध्यम से बनाए या संपादित किए गए थे। मेलिसा (कंप्यूटर वायरस) के निर्माता का पता लगाते समय इस गोपनीयता का उपयोग किया गया था।[20]

आरएफसी 4122 संस्करण-1 (या 2) यूयूआईडी में मैक पते को यादृच्छिक 48-बिट नोड आईडी से परिवर्तित करने की अनुमति देता है, या तो क्योंकि नोड में मैक पता नहीं है, या क्योंकि यह इसका पर्दाफाश करना वांछनीय नहीं है। उस स्थिति में, आरएफसी के लिए आवश्यक है कि नोड आईडी के पहले ऑक्टेट का कम से कम महत्वपूर्ण बिट 1 पर सेट होना चाहिए।[1] यह मैक पतों में बहुस्त्र्पीय बिट से मेल खाता है, और इसे सेट करने से यूयूआईडी को अलग करने में सहायता मिलती है जहां नेटवर्क कार्ड से मैक पते के आधार पर यूयूआईडी से यादृच्छिक रूप से नोड आईडी उत्पन्न होती है, जिसमें सामान्यतः यूनिकास्ट मैक पते होते हैं।[1]

संस्करण 2 (दिनांक-समय और मैक पता, डीसीई सुरक्षा संस्करण)

आरएफसी 4122 संस्करण 2 को डीसीई सुरक्षा यूयूआईडी के लिए सुरक्षित रखता है, किन्तु यह कोई विवरण प्रदान नहीं करता है। इस कारण से, कई यूयूआईडी कार्यान्वयन संस्करण 2 को छोड़ देते हैं। चूंकि, संस्करण-2 यूयूआईडी के विनिर्देश डीसीई 1.1 प्रमाणीकरण और सुरक्षा सेवा विनिर्देश द्वारा प्रदान किए जाते हैं।[21]

संस्करण-2 यूयूआईडी संस्करण 1 के समान हैं, सिवाय इसके कि क्लॉक क्रम के कम से कम महत्वपूर्ण 8 बिट्स को स्थानीय डोमेन नंबर से बदल दिया जाता है, और टाइमस्टैम्प के कम से कम महत्वपूर्ण 32 बिट्स को निर्दिष्ट स्थानीय डोमेन के भीतर पूर्णांक पहचानकर्ता द्वारा प्रतिस्थापित किया जाता है। POSIX प्रणाली पर, स्थानीय-डोमेन नंबर 0 और 1 क्रमशः उपयोगकर्ता आईडी (उपयोगकर्ता पहचानकर्ता) और समूह आईडी (समूह पहचानकर्ता) के लिए होते हैं, और अन्य स्थानीय-डोमेन नंबर साइट-परिभाषित होते हैं।[21] गैर-पॉज़िक्स प्रणाली पर, सभी स्थानीय डोमेन नंबर साइट-परिभाषित होते हैं।

यूयूआईडी में 40-बिट डोमेन/पहचानकर्ता सम्मलित करने की क्षमता ट्रेडऑफ़ के साथ आती है। ओर, 40 बिट प्रति नोड आईडी लगभग 1 ट्रिलियन डोमेन/पहचानकर्ता मान की अनुमति देते हैं। दूसरी ओर, संस्करण 1 में 60 बिट्स की तुलना में क्लॉक मान को 28 सबसे महत्वपूर्ण बिट्स तक छोटा कर दिया गया है, संस्करण 2 यूयूआईडी में घड़ी प्रत्येक 429.49 सेकंड में केवल बार टिकेगी, 7 मिनट से थोड़ा अधिक, इसके विपरीत संस्करण 1 के लिए प्रत्येक 100 नैनोसेकंड। और संस्करण 1 में 14 बिट्स की तुलना में केवल 6 बिट्स के घड़ी अनुक्रम के साथ, 16,384 घड़ी अनुक्रम की तुलना में प्रति नोड/डोमेन/पहचानकर्ता प्रति 7 मिनट की घड़ी की टिक पर केवल 64 अद्वितीय यूयूआईडी उत्पन्न किए जा सकते हैं। संस्करण 1 के लिए मान।[22] इस प्रकार, संस्करण 2 उन स्थितियों के लिए उपयुक्त नहीं हो सकता है जहां यूयूआईडी आवश्यक हैं, प्रति नोड/डोमेन/पहचानकर्ता, प्रत्येक सात मिनट में लगभग से अधिक की दर से किया जाता हैं।

संस्करण 3 और 5 (नामस्थान नाम-आधारित)

संस्करण-3 और संस्करण-5 यूयूआईडी क्रिप्टोग्राफ़िक हैश फ़ंक्शन द्वारा नामस्थान पहचानकर्ता और नाम से उत्पन्न होते हैं। संस्करण 3 हैशिंग एल्गोरिथम के रूप में एमडी5 का उपयोग करता है, और संस्करण 5 एसएचए-1 का उपयोग करता है।[1]

नेमस्पेस आइडेंटिफ़ायर अपने आप में यूयूआईडी है। विनिर्देश यूनिफ़ॉर्म रिसोर्स लोकेटर, पूरी तरह से योग्य डोमेन नाम, वस्तु पहचानकर्ता और X.500 LDAPs के लिए नामस्थान का प्रतिनिधित्व करने के लिए यूयूआईडी प्रदान करता है, किन्तु किसी भी वांछित यूयूआईडी का उपयोग नेमस्पेस डिज़ाइनर के रूप में किया जा सकता है।

किसी दिए गए नाम स्थान और नाम के अनुरूप संस्करण-3 यूयूआईडी निर्धारित करने के लिए, नाम स्थान का यूयूआईडी बाइट्स की स्ट्रिंग में रूपांतरित होता है, जो इनपुट नाम के साथ जुड़ा होता है, फिर MD5 के साथ हैश किया जाता है, जिससे 128 बिट्स मिलते हैं। फिर 6 या 7 बिट्स को निश्चित मानों से बदल दिया जाता है, 4-बिट संस्करण (जैसे 00112 संस्करण 3 के लिए), और 2- या 3-बिट यूयूआईडी संस्करण (जैसे 102 आरएफसी 4122 यूयूआईडी, या 1102 को (माइक्रोसाॅफ्ट GUID का संकेत) इंगित करता है। चूंकि 6 या 7 बिट इस प्रकार पूर्व निर्धारित हैं, केवल 121 या 122 बिट यूयूआईडी की विशिष्टता में योगदान करते हैं।

संस्करण-5 यूयूआईडी समान हैं, किन्तु MD5 केअतिरिक्त SHA-1 का उपयोग किया जाता है। चूंकि SHA-1 160-बिट डाइजेस्ट उत्पन्न करता है, डाइजेस्ट संस्करण से पहले 128 बिट्स तक छोटा हो जाता है और संस्करण बिट्स को बदल दिया जाता है।

संस्करण-3 और संस्करण-5 यूयूआईडी में वह गुण है जो ही नामस्थान और नाम ही यूयूआईडी में मैप करेगा। चूंकि, न तो नामस्थान और न ही यूयूआईडी से नाम निर्धारित किया जा सकता है, यदि उनमें से निर्दिष्ट हो, ब्रूट-बल खोज को छोड़कर उपयोग करता हैं। आरएफसी 4122 संस्करण 3 (MD5) की तुलना में संस्करण 5 (SHA-1) की अनुशंसा करता है, और सुरक्षा क्रेडेंशियल के रूप में किसी भी संस्करण के यूयूआईडी के उपयोग के विरुद्ध चेतावनी देता है।[1]

संस्करण 4 (यादृच्छिक)

एक संस्करण 4 यूयूआईडी बेतरतीब ढंग से उत्पन्न होता है। अन्य यूयूआईडी की तरह, संस्करण 4 को इंगित करने के लिए 4 बिट का उपयोग किया जाता है, और संस्करण (10)2 को इंगित करने के लिए 2 या 3 बिट (1102 संस्करण 1 और 2 के लिए क्रमशः) का उपयोग किया जाता है। इस प्रकार, संस्करण 1 (अर्थात, अधिकांश यूयूआईडी) के लिए यादृच्छिक संस्करण -4 यूयूआईडी में 6 पूर्वनिर्धारित संस्करण और संस्करण बिट्स होंगे, कुल 2 के लिए यादृच्छिक रूप से उत्पन्न भाग के लिए 122122 बिट्स छोड़कर, या 5.3×1036 (5.3 बड़ी संख्याओं के नाम) संभावित संस्करण-4 संस्करण-1 यूयूआईडी का उपयोग करता हैं। आधे से अधिक संभावित संस्करण-4 संस्करण-2 यूयूआईडी (विरासत GUIDs) हैं क्योंकि कम यादृच्छिक बिट उपलब्ध है, संस्करण के लिए 3 बिट्स का उपभोग किया जा रहा है।

टक्कर

हैश टकराव तब होता है जब ही यूयूआईडी से अधिक बार उत्पन्न होता है और अलग-अलग संदर्भों को सौंपा जाता है। मानक संस्करण-1 और संस्करण-2 यूयूआईडी के स्थितियों में नेटवर्क कार्ड से अद्वितीय मैक पते का उपयोग करते हुए, टक्कर होने की संभावना नहीं है, केवल बढ़ी हुई संभावना के साथ, जब कार्यान्वयन मानकों से भिन्न होता है।

संस्करण-1 और संस्करण-2 यूयूआईडी के विपरीत मैक एड्रेस का उपयोग करके उत्पन्न किया गया, संस्करण-1 और -2 यूयूआईडी के साथ जो विभिन्न विधियों से उत्पन्न नोड आईडी, हैश-आधारित संस्करण-3 और संस्करण-5 यूयूआईडी और रैंडम संस्करण-4 यूयूआईडी का उपयोग करते हैं। कार्यान्वयन समस्याओं के बिना भी टक्कर हो सकती है, यद्यपि संभावना इतनी कम है कि इसे सामान्य रूप से अनदेखा किया जा सकता है। जन्मदिन की समस्या के विश्लेषण के आधार पर इस संभावना की ठीक-ठीक गणना की जा सकती है।[23]

उदाहरण के लिए, कम से कम टकराव की 50% संभावना रखने के लिए जनरेट किए जाने वाले रैंडम वर्शन-4 यूयूआईडी की संख्या 2.71 क्विंटिलियन है, जिसकी गणना इस प्रकार की गई है:[24]

यह संख्या लगभग 85 वर्षों के लिए प्रति सेकंड 1 बिलियन यूयूआईडी उत्पन्न करने के बराबर है। इतने सारे यूयूआईडी वाली फ़ाइल, प्रति यूयूआईडी 16 बाइट्स पर, लगभग 45 एक्साबाइट होगी।

संस्करण -4 यूयूआईडी की सबसे छोटी संख्या जो p होने के लिए विवादित सूत्र को खोजने की संभावना के लिए उत्पन्न होनी चाहिए, उक्त सूत्र को इस प्रकार अनुमानित किया जाता है:

इस प्रकार, 103 ट्रिलियन संस्करण-4 यूयूआईडी के भीतर डुप्लिकेट खोजने की संभावना अरब में है।

उपयोग करता है

फाइल प्रणाली

महत्वपूर्ण उपयोगों में सम्मलित हैं ext2/ext3/ext4 फाइल प्रणाली उपयोक्ता स्थान उपकरण (e2fsprogs उपयोग-लाइनेक्स द्वारा प्रदान किए गए libuuid का उपयोग करता है), लॉजिकल वॉल्यूम मैनेजर (लिनक्स)Linux), LUKS एन्क्रिप्टेड विभाजन, GNOME, KDE, और macOS,[25] जिनमें से अधिकांश थिओडोर त्सो द्वारा मूल कार्यान्वयन से प्राप्त किए गए हैं।[16]

सोलारिस (ऑपरेटिंग प्रणाली) (ओपन सॉफ्टवेयर फाउंडेशन कार्यान्वयन का उपयोग करके) में यूयूआईडी के उपयोगों में से कर्नेल पैनिक के स्थितियों में क्रैश डंप डेटा को फॉल्ट मैनेजमेंट इवेंट के साथ जोड़ने के उद्देश्य से चल रहे ऑपरेटिंग प्रणाली उदाहरण की पहचान करता है।[26]

विभाजन लेबल और विभाजन यूयूआईडी दोनों सुपरब्लॉक (फाइल प्रणाली) में संग्रहीत हैं। वे दोनों विभाजन केअतिरिक्त फाइल प्रणाली का भाग हैं। उदाहरण के लिए, ext2–4 में यूयूआईडी होता है, जबकि NTFS या FAT32 में नहीं होता है।

सुपरब्लॉक फ़ाइल प्रणाली का भाग है, इस प्रकार पूरी तरह से विभाजन के भीतर समाहित है, इसलिए कर रहा है dd if=/dev/sda1 of=/dev/sdb1 sda1 और sdb1 दोनों को ही लेबल और यूयूआईडी के साथ छोड़ देता है।

कॉम में

माइक्रोसाॅफ्ट के कंपोनेंट ऑब्जेक्ट मॉडल (COM) में उपयोग किए जाने वाले GUID के कई प्रकार हैं:

  • IID - इंटरफ़ेस पहचानकर्ता, (जो प्रणाली पर पंजीकृत हैं, वे विंडोज रजिस्ट्री में संग्रहीत हैं [HKEY_CLASSES_ROOT\Interface][27] )
  • CLSID - वर्ग पहचानकर्ता, (पर संग्रहीत [HKEY_CLASSES_ROOT\CLSID])
  • LIBID - लाइब्रेरी पहचानकर्ता टाइप करें, (पर संग्रहीत [HKEY_CLASSES_ROOT\TypeLib][28])
  • CATID - श्रेणी पहचानकर्ता, (एक वर्ग पर इसकी उपस्थिति इसे कुछ वर्ग श्रेणियों से संबंधित के रूप में पहचानती है, जो सूचीबद्ध है [HKEY_CLASSES_ROOT\Component Categories][29])

डेटाबेस कुंजियों के रूप में

यूयूआईडी सामान्यतः डेटाबेस टेबल में अनूठी कुंजी के रूप में उपयोग की जाती हैं। इस प्रकार NEWID माइक्रोसाॅफ्ट SQL सर्वर संस्करण 4 ट्रांसैक्ट-SQL में फ़ंक्शन मानक यादृच्छिक संस्करण -4 यूयूआईडी देता है, जबकि NEWSEQUENTIALID फ़ंक्शन यूयूआईडी के समान 128-बिट पहचानकर्ता लौटाता है जो अगले प्रणाली रीबूट तक अनुक्रम में बढ़ने के लिए प्रतिबद्ध हैं।[30] ओरेकल डाटाबेस SYS_GUID नाम के अतिरिक्त फ़ंक्शन मानक GUID नहीं लौटाता है। इसकेअतिरिक्त, यह मेजबान पहचानकर्ता और प्रक्रिया या थ्रेड पहचानकर्ता के आधार पर 16-बाइट 128-बिट रॉ मान देता है, जो कुछ तक GUID के समान है।[31] पोस्टग्रे SQL में सम्मलित है, UUID को डेटा के द्वारा इसके प्रकार[32] और प्रारुप के कारण उक्त कार्यों के उपयोग के माध्यम से यूयूआईडी के अधिकांश संस्करण उत्पन्न कर सकते हैं।[33][34] MySQL प्रदान करता है UUID फ़ंक्शन, जो मानक संस्करण-1 यूयूआईडी उत्पन्न करता है।[35]

संस्करण 3, 4, और 5 के मानक यूयूआईडी की यादृच्छिक प्रकृति, और मानक संस्करण 1 और 2 के भीतर फ़ील्ड का क्रम यूयूआईडी को प्राथमिक कुंजी के रूप में उपयोग किए जाने पर संदर्भ या प्रदर्शन के डेटाबेस इलाके के साथ समस्याएं उत्पन्न कर सकता है। उदाहरण के लिए, 2002 में जिमी निल्सन ने माइक्रोसाॅफ्ट SQL सर्वर के साथ प्रदर्शन में महत्वपूर्ण सुधार की सूचना दी जब कुंजी के रूप में उपयोग किए जा रहे संस्करण -4 यूयूआईडी को प्रणाली समय के आधार पर गैर-यादृच्छिक प्रत्यय सम्मलित करने के लिए संशोधित किया गया था। इस तथाकथित काॅम्ब (संयुक्त समय-GUID) दृष्टिकोण ने यूयूआईडी को गैर-मानक बना दिया और डुप्लिकेट होने की अधिक संभावना है, जैसा कि निल्सन ने स्वीकार किया, किन्तु निल्सन को केवल आवेदन के भीतर विशिष्टता की आवश्यकता थी।[36] संस्करण 1 और 2 यूयूआईडी को फिर से क्रमित और एन्कोडिंग करके, जिससे कि टाइमस्टैम्प पहले आए, सम्मिलन प्रदर्शन हानि को टाला जा सकता है।[37] कुछ वेब फ्रेमवर्क, जैसे लारावेल, टाइमस्टैम्प पहले यूयूआईडी के लिए समर्थन करते हैं जो अनुक्रमित डेटाबेस कॉलम में कुशलतापूर्वक संग्रहीत किए जा सकते हैं। यह संस्करण 4 प्रारूप का उपयोग करके काॅम्ब यूयूआईडी बनाता है, किन्तु जहां पहले 48-बिट्स UUIDv1 की तरह टाइमस्टैम्प बनाते हैं।[38][39] काॅम्ब यूयूआईडी विचार के आधार पर अधिक निर्दिष्ट स्वरूपों में सम्मलित हैं:

  • ULID , जो संस्करण 4 को इंगित करने के लिए उपयोग किए गए 4 बिट्स को हटा देता है, और डिफ़ॉल्ट रूप से बेस32 एन्कोडिंग का उपयोग करता है।[40]
  • यूयूआईडी संस्करण 6 से 8, तीन काॅम्ब यूयूआईडी स्वरूपों का औपचारिक रूप से प्रस्तावित किया जाता हैं।[41]

यह भी देखें

संदर्भ

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 Leach, P.; Mealling, M.; Salz, R. (2005). A Universally Unique IDentifier (UUID) URN Namespace. Internet Engineering Task Force. doi:10.17487/RFC4122. RFC 4122. Retrieved 2017-01-17.
  2. "Universally Unique Identifiers (UUID)". H2. Retrieved 21 March 2021.
  3. ITU-T Recommendation X.667: Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1 Object Identifier components. Standard. October 2012.
  4. Zahn, Lisa (1990). Network Computing Architecture. Prentice Hall. p. 10. ISBN 978-0-13-611674-5.
  5. "सीडीई 1.1: दूरस्थ प्रक्रिया कॉल". The Open Group. 1997.
  6. "DCE 1.1: प्रमाणीकरण और सुरक्षा सेवाएँ". The Open Group. 1997.
  7. "ITU-T स्टडी ग्रुप 17 - ऑब्जेक्ट आइडेंटिफ़ायर (OID) और रजिस्ट्रेशन अथॉरिटीज़ की सिफारिशें". ITU.int. Retrieved 2016-12-20.
  8. "Registry Keys and Entries for a Type 1 Online Store". Microsoft Developer Network. Microsoft.
  9. Steele, Nick. "Breaking Down UUIDs".
  10. "UUID Versions Explained".
  11. Chen, Raymond. "Why does COM express GUIDs in a mix of big-endian and little-endian? Why can't it just pick a side and stick with it?". The Old New Thing. Retrieved 31 October 2022.
  12. Leach, Paul. "UUIDs and GUIDs".
  13. "Guid.ToByteArray Method".
  14. "uuid.c".
  15. "Globally Unique Identifiers". Microsoft Developer Network. Microsoft.
  16. 16.0 16.1 "ext2/e2fsprogs.git - Ext2/3/4 filesystem userspace utilities". Kernel.org. Retrieved 9 January 2017.
  17. "Recommendation ITU-T X.667". www.itu.int. October 2012. Retrieved 19 December 2020.
  18. "Registration Authority". IEEE Standards Association.
  19. "MAC Address Setup". OpenWRT. 15 September 2021.{{cite web}}: CS1 maint: url-status (link)
  20. Reiter, Luke (1999-04-02). "Tracking Melissa's Alter Egos". ZDNet. Retrieved 2017-01-16.
  21. 21.0 21.1 Cite error: Invalid <ref> tag; no text was provided for refs named dce_spec
  22. Kuchling, A. M. "What's New in Python 2.5". Python.org. Retrieved 23 January 2016.
  23. Jesus, Paulo; Baquero, Carlos; Almaeida, Paulo. "ID Generation in Mobile Environments" (PDF). Repositorium.Sdum.Uminho.pt.
  24. Mathis, Frank H. (June 1991). "A Generalized Birthday Problem". SIAM Review. 33 (2): 265–270. CiteSeerX 10.1.1.5.5851. doi:10.1137/1033051. ISSN 0036-1445. JSTOR 2031144. OCLC 37699182.
  25. gen_uuid.c in Apple's Libc-391, corresponding to Mac OS X 10.4
  26. "Crashdump Restructuring in Solaris". Blogs.Oracle.com. Oracle. Retrieved 9 January 2017.
  27. "Interface Pointers and Interfaces". Windows Dev Center - Desktop app technologies. Microsoft. Retrieved 15 December 2015. You reference an interface at run time with a globally unique interface identifier (IID). This IID, which is a specific instance of a globally unique identifier (GUID) supported by COM, allows a client to ask an object precisely whether it supports the semantics of the interface, without unnecessary overhead and without the confusion that could arise in a system from having multiple versions of the same interface with the same name.
  28. "Registering a Type Library". Microsoft Developer Network. Microsoft. Retrieved 15 December 2015.
  29. "Categorizing by Component Capabilities". Windows Dev Center - Desktop app technologies. Microsoft. Retrieved 15 December 2015. A listing of the CATIDs and the human-readable names is stored in a well-known location in the registry.
  30. "NEWSEQUENTIALID (Transact-SQL)". Microsoft Developer Network. Microsoft. 2015-08-08. Retrieved 2017-01-14.
  31. "Oracle Database SQL Reference". Oracle.
  32. "Section 8.12 UUID Type". PostgreSQL 9.4.10 Documentation. PostgreSQL Global Development Group. 13 February 2020.
  33. "uuid-ossp". PostgreSQL: Documentation: 9.6. PostgreSQL Global Development Group. 12 August 2021.
  34. "pgcrypto". PostgreSQL: Documentation: 9.6. PostgreSQL Global Development Group. 12 August 2021.
  35. "Section 13.20 Miscellaneous Functions". MySQL 5.7 Reference Manual. Oracle Corporation.
  36. Nilsson, Jimmy (2002-03-08). InformIT. InformIT. Retrieved 2012-06-20.
  37. "Storing UUID Values in MySQL". Percona. 2014-12-19. Archived from the original on 2020-11-29. Retrieved 2021-02-10.
  38. "Helpers - Laravel - The PHP Framework For Web Artisans". Laravel.com.
  39. Cabrera, Italo Baeza (31 January 2020). "Laravel: The mysterious "Ordered UUID"". Medium (in English).
  40. "Universally Unique Lexicographically Sortable Identifier". GitHub. ULID. 10 May 2021.
  41. Peabody, Brad; Davis, Kyzer R. (7 October 2021). "draft-peabody-dispatch-new-uuid-format-01". tools.ietf.org (in English).


बाहरी संबंध

मानक

ITU-T यूयूआईडी Generator

Technical Articles

Miscellaneous

Implementation in various languages