- n0 टीम द्वारा विकसित noq एक Rust में लिखा गया general-purpose QUIC implementation है, जो multipath और NAT traversal को सपोर्ट करता है
- मौजूदा iroh की Quinn-आधारित आर्किटेक्चर सीमाओं को हल करने के लिए इसे independent codebase के रूप में विकसित किया गया
- इसमें QUIC Multipath, NAT Traversal, Address Discovery, QLog extensions, WeakConnectionHandle जैसी कई सुविधाएँ शामिल हैं
- यह iroh v0.96 से production environment में उपयोग हो रहा है, और picoquic के साथ interoperability testing भी पूरी हो चुकी है
- आगे चलकर QUIC Working Group और Quinn टीम के साथ सहयोग जारी रखते हुए, इसे Rust-आधारित network application developers के लिए आधारभूत तकनीक के रूप में विकसित किया जाएगा
noq की घोषणा
- noq n0 टीम द्वारा विकसित एक general-purpose QUIC implementation है, जो multipath और NAT traversal फीचर्स को सपोर्ट करता है
- इसे iroh v0.96 से transport layer के रूप में इस्तेमाल किया जा रहा है, और यह केवल iroh तक सीमित नहीं है बल्कि सामान्य उपयोग के लिए भी उपयुक्त है
Quinn से noq की ओर बदलाव
- iroh पहले Quinn पर आधारित QUIC का उपयोग करता था, लेकिन NAT traversal और path switching जैसी कई जटिल सुविधाएँ थीं जिन्हें QUIC के बाहर संभालना पड़ता था
- इन संरचनात्मक सीमाओं के कारण बाहरी संशोधन कठिन थे, इसलिए Quinn का hard fork करने का निर्णय लिया गया
- Quinn के साथ सहयोग जारी रखते हुए, iroh की विशेष आवश्यकताओं को पूरा करने के लिए independent codebase के माध्यम से आगे बढ़ा गया
noq की प्रमुख विशेषताएँ
-
QUIC Multipath
- QUIC Multipath specification का पूर्ण implementation, जिससे iroh के relay और direct paths (IPV4, IPV6) को QUIC के first-class path concept में एकीकृत किया गया
- हर path के लिए अलग congestion control state बनाए रखते हुए सर्वोत्तम path चुना जा सकता है
- पहले iroh, QUIC के नीचे path manipulation करता था, लेकिन अब QUIC स्वयं इसे पहचानता और प्रबंधित करता है
- इसे iroh के बाहर भी इस्तेमाल किया जा सके, इस उद्देश्य से general-purpose multipath implementation के रूप में डिज़ाइन किया गया है
-
QUIC NAT Traversal
- QUIC NAT traversal draft की अपनी व्याख्या के आधार पर implementation किया गया है, और इसे production-grade stability वाले पहले उदाहरण के रूप में बताया गया है
- यह सैकड़ों हज़ार iroh डिवाइसों पर वास्तविक परिस्थितियों में टेस्ट किया जा चुका है
- QUIC layer में सीधे NAT hole punching करने से congestion controller और loss detection अधिक सटीक तरीके से काम करते हैं
-
QUIC Address Discovery
- iroh v0.32 से QUIC Address Discovery(QAD) का उपयोग किया जा रहा है
- STUN की जगह QUIC connection के माध्यम से client का public IP address सीखा जाता है
- encrypted packet transmission के जरिए protocol ossification को रोका जाता है और privacy protection बेहतर होती है
-
QLog extensions
- QLog standard draft के आधार पर QUIC connections की विभिन्न events को रिकॉर्ड किया जाता है
- पहले की तुलना में बहुत अधिक events सपोर्ट किए जाते हैं, और multipath-related events भी जोड़े गए हैं
- यह qvis जैसे visualization tools के साथ compatible है, और multi-path packet flow दिखाने वाला viewer prototype भी उपलब्ध है
-
WeakConnectionHandle
- ऐसा type जो connection को बनाए रखे बिना ज़रूरत पड़ने पर Connection object में promote किया जा सकता है
- यह
std::sync::Weak जैसा है, लेकिन Arc का उपयोग किए बिना भी काम करता है
- connection manager जैसी स्थितियों में इसका उपयोग काफ़ी उपयोगी हो सकता है
production में उपयोग और interoperability
- noq का उपयोग iroh v0.96 से production environment में किया जा रहा है
- इसकी अपनी multipath implementation के अलावा picoquic के साथ interoperability testing भी पूरी हो चुकी है
आगे की योजना
- noq को long-term foundational technology के रूप में विकसित किया जाएगा
- NAT traversal में सुधार और multipath-आधारित performance optimization पर काम किया जाएगा
- QUIC Working Group और Quinn टीम के साथ सहयोग जारी रहेगा
- QUIC implementation, P2P transport, और विविध network environments में काम करने वाले application developers के साथ सहयोग का विस्तार किया जाएगा
- Rust-आधारित QUIC multipath implementation को सीधे आज़माने के लिए documentation और example code उपलब्ध कराया जाएगा
Iroh का परिचय
- Iroh एक “dial-any-device” networking library है, जो protocol combination के माध्यम से flexible network configuration को सपोर्ट करती है
- यह पहले से ही सैकड़ों हज़ार डिवाइसों पर चल रही है और open source के रूप में उपलब्ध है
- documentation, code, और Discord channel के माध्यम से प्रोजेक्ट में भाग लिया जा सकता है
अभी कोई टिप्पणी नहीं है.