सामग्री पर जाएँ

इम्पेयरमेंट ​

बाधा स्क्रीन एक रिले चलाती है जो किसी क्लाइंट और उस लक्ष्य के बीच बैठता है जिससे वह बात करता है, और उसमें से दोनों दिशाओं में गुज़रने वाली चीज़ों को ख़राब करता है: ख़राब Wi-Fi, मोबाइल लिंक, उपग्रह की छलांग, गिरती-जुड़ती लिंक। इसका उपयोग यह देखने के लिए करें कि आपका क्लाइंट और आपका डिवाइस ऐसे नेटवर्क पर कैसा व्यवहार करते हैं जो आपके पास नहीं है।

आप क्लाइंट को असली लक्ष्य के बजाय रिले की ओर मोड़ते हैं; रिले सब कुछ लक्ष्य तक और जवाब क्लाइंट तक पहुँचा देता है, हर डेटाग्राम या स्ट्रीम पर वह करने के बाद जो उसकी प्रोफ़ाइल कहती है। आप प्रोफ़ाइल को चलते समय भी बदल सकते हैं, बिना पोर्ट गिराए।

रिले शुरू करना ​

  1. प्रोटोकॉल चुनें: डेटाग्राम के लिए UDP (OSC, अधिकांश शो-कंट्रोल और सेंसर ट्रैफ़िक), स्ट्रीम के लिए TCP (HTTP, MQTT, एक TCP डिवाइस)।
  2. सुनने का पता सेट करें: वह IP:port जिस पर रिले सुनता है। 0.0.0.0:9010 नेटवर्क से ट्रैफ़िक लेता है; 127.0.0.1:9010 केवल इसी कंप्यूटर से।
  3. लक्ष्य सेट करें: असली गंतव्य का IP:port, या कोई होस्ट नाम और पोर्ट जैसे device.local:9000।
  4. कोई प्रीसेट चुनें या प्रोफ़ाइल के मान सेट करें।
  5. रिले शुरू करें दबाएँ।
  6. अपने क्लाइंट को लक्ष्य के बजाय रिले के पोर्ट की ओर मोड़ें — उदाहरण के लिए 127.0.0.1:9000 के बजाय 127.0.0.1:9010।

रिले रोकें रिले बंद कर देता है; इसके बाद उसकी अब तक रोकी हुई कोई चीज़ बाहर नहीं जाती।

डिफ़ॉल्ट: UDP, सुनना 0.0.0.0:9010, लक्ष्य 127.0.0.1:9000, 40 ms विलंब, 15 ms जिटर और 2 % गिरावट।

सुनने का पता बाँधने का पता है, हमेशा IP:port। लक्ष्य का होस्ट नाम एक बार खोजा जाता है, जब आप रिले शुरू करें दबाते हैं, जैसे किसी OSC लक्ष्य का; जो नाम न मिले वह अस्वीकार कर दिया जाता है और कोई रिले शुरू नहीं होता। प्रोटोकॉल, सुनने का पता और लक्ष्य रिले के चलते हुए स्थिर रहते हैं; उन्हें बदलने के लिए उसे रोकें।

text
client ──► relay (0.0.0.0:9010) ──► target (127.0.0.1:9000)
client ◄── relay ◄───────────────── target

UDP ​

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

जवाब उसी क्लाइंट को जाते हैं जिसने सबसे हाल का डेटाग्राम भेजा: रिले एक बार में एक क्लाइंट की सेवा करता है।

TCP ​

क्लाइंट का रिले से बनाया हर कनेक्शन रिले के अपने एक नए कनेक्शन से लक्ष्य तक जोड़ा जाता है। हर कनेक्शन की दोनों स्ट्रीमें — क्लाइंट से लक्ष्य और लक्ष्य से क्लाइंट — चंक-दर-चंक ख़राब की जाती हैं, जैसे-जैसे रिले उन्हें पढ़ता है (एक बार में 16 KiB तक)। जिटर चाहे जो हो, एक स्ट्रीम हमेशा क्रम में पहुँचती है।

जब लक्ष्य कनेक्शन अस्वीकार करता है, तो क्लाइंट का कनेक्शन रीसेट कर दिया जाता है।

प्रोफ़ाइल ​

वे मान जो एक रिले लागू करता है, दोनों दिशाओं में। एक UDP रिले डेटाग्राम के मान पढ़ता है, एक TCP रिले स्ट्रीम के; बाकी छिपे रहते हैं।

UDP पर ​

मानक्या करता हैसीमा
ऑफ़लाइन — कुछ नहीं जाताहर डेटाग्राम दोनों तरफ़ गिरा दिया जाता है, जब तक आप टिक नहीं हटाते।चालू / बंद
लेटेंसीहर डेटाग्राम में जोड़ा जाता है।0–1000 ms
जिटरहर डेटाग्राम के लिए 0 से इस तक एक रैंडम अतिरिक्त विलंब — इसलिए डेटाग्राम क्रम से बाहर पहुँच सकते हैं।0–500 ms
पैकेट लॉसउन डेटाग्राम का हिस्सा जो कभी नहीं पहुँचते, हर एक अपने आप।0–100 %
बर्स्ट लॉससंभावना कि कोई डेटाग्राम गिरावटों की एक झड़ी शुरू करे: पल भर के लिए गिरती लिंक, बिखरी गिरावट के विपरीत।0–20 %
बर्स्ट की लंबाई, डेटाग्रामएक झड़ी औसतन कितने डेटाग्राम गिराती है। तब दिखता है जब बर्स्ट लॉस 0 से ऊपर हो; पहली बार बढ़ाने पर 5।1–1000
डुप्लिकेशनदो बार पहुँचाए गए डेटाग्राम का हिस्सा।0–100 %
दूषणउन डेटाग्राम का हिस्सा जिनके एक बाइट का एक बिट पलटा गया।0–100 %
क्रम बदलनाउन डेटाग्राम का हिस्सा जो रोके गए — विलंब से, और कम से कम 20 ms — ताकि उनके बाद वाले पहले पहुँचें।0–100 %
बैंडविड्थ, kbit/sबैंडविड्थ सीमा, किलोबिट प्रति सेकंड में; 0 का अर्थ कोई नहीं। डेटाग्राम इस दर पर लिंक के लिए कतार में लगते हैं; जिसे एक सेकंड से ज़्यादा प्रतीक्षा करनी पड़े वह थ्रॉटल होकर गिरा दिया जाता है।0, या 8–10 000 000

एक झड़ी ऐसे काम करती है: जो डेटाग्राम किसी झड़ी में नहीं है वह बर्स्ट लॉस संभावना से एक शुरू करता है; झड़ी का हर डेटाग्राम गिर जाता है, और हर एक उसे बर्स्ट की लंबाई, डेटाग्राम में 1 की संभावना से समाप्त करता है, इसलिए एक झड़ी औसतन उतने ही डेटाग्राम चलती है।

डेटाग्राम इस क्रम में तय होता है: ऑफ़लाइन, झड़ी, गिरावट, बैंडविड्थ, फिर हर कॉपी के लिए दोहराव, ख़राबी, विलंब और क्रम-बदल।

TCP पर ​

मानक्या करता हैसीमा
ऑफ़लाइन — कुछ नहीं जातादोनों तरफ़ कुछ नहीं बहता, और नए कनेक्शन लक्ष्य की प्रतीक्षा करते हैं, जब तक आप टिक नहीं हटाते — फिर सब कुछ आगे बढ़ जाता है।चालू / बंद
लेटेंसीएक स्ट्रीम के हर चंक में, दोनों दिशाओं में, जोड़ा जाता है।0–1000 ms
जिटरहर चंक के लिए 0 से इस तक एक रैंडम अतिरिक्त विलंब — उससे पहले के चंक से कभी आगे नहीं।0–500 ms
कनेक्शन रीसेटउन चंक का हिस्सा जो गुज़रने के बजाय अपना कनेक्शन रीसेट कर देते हैं: क्लाइंट और लक्ष्य दोनों को रीसेट मिलता है।0–100 %
अर्ध-खुलाउन चंक का हिस्सा जो अपना कनेक्शन आधा-खुला छोड़ देते हैं: दोनों तरफ़ और कुछ नहीं गुज़रता, और किसी को बताया नहीं जाता। रिले दोनों सिरे खुले, अछूते, तब तक रखता है जब तक वह न रुके।0–100 %
बैंडविड्थ, kbit/sहर कनेक्शन की हर स्ट्रीम के लिए एक बैंडविड्थ सीमा, किलोबिट प्रति सेकंड में; 0 का अर्थ कोई नहीं। एक सेकंड से ज़्यादा की कतार होने पर रिले पढ़ना बंद कर देता है, इसलिए भेजने वाला धीमा हो जाता है, जैसे किसी धीमी लिंक पर। कुछ भी नहीं गिराया जाता।0, या 8–10 000 000

गिरावट, झड़ियाँ, दोहराव, ख़राबी और क्रम-बदल TCP पर लागू नहीं होते: असली TCP स्ट्रीम जो खोती है उसे दोबारा भेजती है और ख़ुद को क्रम में ले आती है, इसलिए ख़राब लिंक पर क्लाइंट को जो मिलता है वह विलंब, एक धीमा भेजने वाला, रीसेट और ऐसे कनेक्शन हैं जो जवाब देना बंद कर देते हैं।

TIP

स्लाइडर 1000 ms विलंब और 500 ms जिटर पर रुक जाते हैं। रिले ख़ुद हर एक का 60 000 ms तक लेता है, उदाहरण के लिए किसी प्रयोग फ़ाइल से।

प्रीसेट ​

एक प्रीसेट एक क्लिक में हर मान सेट कर देता है। जब तक मान प्रीसेट के ही रहते हैं उसकी चिप जलती रहती है; कोई भी मान बदलते ही वह बुझ जाती है।

प्रीसेटUDP परTCP पर
LAN1 ms ±11 ms ±1
व्यस्त Wi-Fi20 ms ±30, 1 % गिरावट, झड़ियाँ 1 % × 3, 0.5 % दोहराया गया, 2 % क्रम-बदल20 ms ±30
4G60 ms ±25, 0.5 % गिरावट, 0.5 % क्रम-बदल, 20 000 kbit/s60 ms ±25, 20 000 kbit/s
सैटेलाइट300 ms ±30, 1 % गिरावट, 2000 kbit/s300 ms ±30, 2000 kbit/s
रुक-रुक कर30 ms ±20, झड़ियाँ 3 % × 1530 ms ±20, 0.2 % चंक आधे-खुले छोड़े गए
ऑफ़लाइनकुछ नहीं गुज़रताकुछ नहीं बहता

चलते समय इसे बदलना ​

रिले के चलते हुए कोई भी मान बदलें, या कोई दूसरा प्रीसेट चुनें: यह आपके आख़िरी बदलाव के एक चौथाई सेकंड बाद लागू हो जाता है, बिना पोर्ट या कनेक्शन गिराए। कंसोल हर नई प्रोफ़ाइल दर्ज करता है, और लाइव के नीचे की पंक्ति बताती है कि रिले अब क्या करता है — प्रीसेट का नाम, या संक्षेप में मान, जैसे 60 ms ±25 · loss 2% · 20000 kbps।

कोई डेटाग्राम या चंक उस समय लागू प्रोफ़ाइल से तय होता है जब वह आता है; जो पहले से रास्ते में है वह अपना विलंब रखता है।

काउंटर ​

लाइव बताता है कि रिले ने शुरू होने के बाद से क्या किया, दोनों दिशाएँ मिलाकर, सेकंड में चार बार अद्यतन होकर।

UDP पर:

काउंटरक्या
प्राप्तरिले तक पहुँचे डेटाग्राम।
आगे भेजे गएआगे भेजे गए डेटाग्राम; दोहराया गया एक दो बार गिना जाता है।
ड्रॉप हुएजानबूझकर खोए: ऑफ़लाइन, कोई झड़ी, या गिरावट।
थ्रॉटलबैंडविड्थ सीमा से, या इसलिए गिराए गए कि 10 000 पहले से रास्ते में थे।
डुप्लिकेट हुएदो बार भेजे गए डेटाग्राम।
दूषितपलटे बिट वाली कॉपियाँ।
क्रम बदले गएरोकी गई कॉपियाँ ताकि बाद वाली उनसे आगे निकल जाएँ।
मात्राआगे भेजे गए बाइट।

TCP पर:

काउंटरक्या
कनेक्शनक्लाइंटों ने रिले से बनाए कनेक्शन।
प्राप्तरिले ने पढ़े चंक, दोनों तरफ़।
आगे भेजे गएउसने आगे लिखे चंक।
रीसेटरीसेट किए गए कनेक्शन।
अर्ध-खुलेआधे-खुले छोड़े गए कनेक्शन।
रोके गएकितनी बार किसी स्ट्रीम को बैंडविड्थ सीमा का इंतज़ार करना पड़ा: भेजने वाला धीमा हुआ, कुछ नहीं गिराया गया।
मात्राआगे लिखे गए बाइट।

कैप्चर चालू होने पर इंस्पेक्टर रिले किए गए डेटाग्राम और चंक दिखाता है — दोनों दिशाएँ मिलाकर हर 25 ms में अधिकतम एक — हर एक का हश्र के साथ: forwarded +43ms, · corrupted, · reordered, · copy 2/2, dropped (loss), dropped (burst), dropped (offline), throttled, और TCP पर reset तथा half-open। → क्लाइंट से लक्ष्य है, ← लक्ष्य से क्लाइंट।

रिले किया फ़्रेम असली सॉकेट बताता है: लोकल वह पता है जिस पर रिले सुनता है और पीयर वह है जहाँ वह डेटाग्राम या चंक जा रहा था — लक्ष्य, या वह क्लाइंट जिसे जवाब वापस गया। दिशा फ़ैसले को ख़त्म करती है: forwarded +43ms · client→target, dropped (loss) · target→client। इसलिए एक रिले किया डेटाग्राम सिग्नल के रूप में सहेजें से रखा जा सकता है और उस पते पर निशाना लेता है जहाँ वह जा रहा था; एक TCP चंक किसी स्ट्रीम का टुकड़ा है और नहीं रखा जा सकता (देखें इंस्पेक्टर)।

वही ट्रैफ़िक, वही हश्र ​

हर फ़ैसला — कौन-सा डेटाग्राम खोता है, कितना विलंब पाता है, कहाँ ख़राब होता है — रिले के सीड से निकाला जाता है, हर दिशा के लिए अलग-अलग और, TCP पर, हर कनेक्शन के लिए। वही सीड और वही ट्रैफ़िक होने पर रिले वही डेटाग्राम गिराता है और उन्हें वैसे ही विलंबित करता है।

बाधा स्क्रीन हर बार रिले शुरू करने पर एक नया सीड लेती है। किसी रन को ठीक-ठीक दोहराने के लिए किसी प्रयोग में नेटवर्क बाधा नोड का उपयोग करें: वह रन के सीड से निकालता है, जिसे आप पिन कर सकते हैं (देखें किसी ख़राब रन को दोहराना)।

प्रयोगों में ​

दो नोड उसी रिले को किसी प्रयोग में रखते हैं:

  • नेटवर्क बाधा पहले चरण से पहले एक रिले खोलता है और रन समाप्त होने पर, चाहे जैसे भी समाप्त हो, उसे बंद कर देता है। उसके सुनने और लक्ष्य के पते केवल पैरामीटर लेते हैं; लक्ष्य एक होस्ट नाम हो सकता है, जो रन के शुरू होने पर खोजा जाता है। देखें नोड।
  • बाधा बदलें रन के एक रिले को उस चरण से किसी दूसरी प्रोफ़ाइल पर ले जाता है — साफ़, गिरावट वाली, ऑफ़लाइन, फिर साफ़ — और रन की रिपोर्ट गिनती है कि हर चरण ने क्या किया। देखें नोड।

किसी OSC या UDP नोड पर, बाधा से होकर भेजें उसके आगे एक नेटवर्क बाधा रखता है और नोड को रिले की ओर मोड़ देता है। देखें फ़ॉल्ट।