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

ब्रॉडकास्ट ​

ब्रॉडकास्ट स्क्रीन (ब्रॉडकास्ट और डिस्कवरी) एक साथ कई गंतव्यों को एक UDP पेलोड भेजती है, और दूसरी तरफ़ सुनती है कि कौन जवाब देता है। इसका उपयोग किसी नेटवर्क पर डिवाइस खोजने, यह जाँचने कि कोई मल्टीकास्ट स्ट्रीम किसी रिसीवर तक पहुँचती है, या ऐसे डिवाइस की भूमिका निभाने के लिए करें जो discovery प्रोब का जवाब देता है।

  • एमिटर होस्टों की एक सूची, किसी ब्रॉडकास्ट पते, किसी मल्टीकास्ट ग्रुप, या किसी सबनेट के हर होस्ट को भेजता है — एक बार, या बार-बार एक बीकन के रूप में।
  • डिस्कवरी लिसनर एक पोर्ट पर सुनता है, मल्टीकास्ट ग्रुप जॉइन करता है, उससे बात करने वाले हर पीयर को सूचीबद्ध करता है, और प्रोब का जवाब दे सकता है।

DANGER

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

भेजना ​

  1. मोड चुनें (नीचे)।
  2. गंतव्य दर्ज करें: फ़ील्ड का नाम मोड के साथ बदल जाता है। IPv4 पता वाले नेटवर्क पर, मेरा सबनेट लें इसे इस मशीन के पते से भर देता है।
  3. पेलोड चुनें और उसे लिखें।
  4. एक बार भेजें दबाएँ: हर गंतव्य पर एक डेटाग्राम जाता है।

मोड ​

मोडगंतव्यक्या होता हैडिफ़ॉल्ट
सूचीलक्ष्य: कॉमा, सेमीकोलन या नई पंक्तियों से अलग किए IP:port या host:port; स्पेस उन्हें अलग नहीं करता। कोई नाम खोजा जाता है, उसका IPv4 पता लिया जाता है जब उसके पास हो।हर एक पर एक डेटाग्राम127.0.0.1:9000, 127.0.0.1:9001
ब्रॉडकास्टपता: 255.255.255.255:port, या .255 पर समाप्त होता पताएक डेटाग्राम जिसे स्थानीय नेटवर्क का हर होस्ट पाता है। राउटर इसे आगे नहीं भेजते।255.255.255.255:9000
मल्टीकास्टपता: 224.0.0.0 से 239.255.255.255 तक का एक ग्रुप, एक पोर्ट के साथग्रुप को एक डेटाग्राम; केवल वे listeners इसे पाते हैं जिन्होंने उसे जॉइन किया।239.1.1.1:9000
स्वीपCIDR ब्लॉक, a.b.c.d/nn, और एक पोर्टब्लॉक के हर उपयोगी होस्ट को एक डेटाग्राम, unicast के रूप में — उन डिवाइसों के लिए जो ब्रॉडकास्ट अनदेखा करते हैं192.168.1.0/24, पोर्ट 9000

किसी स्वीप में नेटवर्क और ब्रॉडकास्ट पते छोड़ दिए जाते हैं (/31 या /32 को छोड़कर), और जो base नेटवर्क का अपना नहीं है उसे उसी तक नीचे ले जाया जाता है: 192.0.2.77/30 192.0.2.77 और 192.0.2.78 को स्वीप करता है। एक स्वीप अधिकतम 1024 होस्ट तक पहुँचता है, इसलिए सबसे चौड़ा ब्लॉक /22 (1022 होस्ट) है; उससे चौड़ा ब्लॉक उसे संकरा करने वाले prefix के साथ अस्वीकार कर दिया जाता है।

ब्रॉडकास्ट, मल्टीकास्ट ग्रुप, स्वीप और डिस्कवरी लिसनर के joins केवल IPv4 हैं: IPv6 में ब्रॉडकास्ट नहीं होता। एक सूची IPv6 होस्ट भी नाम दे सकता है (सॉकेट विकल्प देखें)।

मेरा सबनेट लें इस मशीन के पते x.y.z.w से सूची में x.y.z.10:9000, x.y.z.11:9000, ब्रॉडकास्ट में x.y.z.255:9000 और स्वीप में x.y.z.0/24 भरता है। यह एक /24 नेटवर्क मान लेता है।

पेलोड ​

पेलोडक्या भेजा जाता है
OSCएक OSC संदेश: OSC पता और टाइप किए आर्ग्युमेंट, जैसे OSC स्क्रीन पर। डिफ़ॉल्ट /hello/discover और टेक्स्ट who-is-there।
टेक्स्टटेक्स्ट UTF-8 के रूप में, ठीक जैसा लिखा है, बिना किसी terminator के। डिफ़ॉल्ट HELLO-PROBE।
रॉ hexHex बाइट बाइट दर बाइट — किसी कैप्चर किए फ़्रेम को दोबारा भेजने या कोई binary discovery प्रोटोकॉल बोलने के लिए। hex अंकों के जोड़े; उनके बीच कुछ और अनदेखा कर दिया जाता है। डिफ़ॉल्ट 48 45 4c 4c 4f।

सॉकेट विकल्प ​

सॉकेट विकल्प तीन और सेटिंग खोलता है:

विकल्पक्याडिफ़ॉल्ट
बाइंड (स्रोत)स्थानीय IP:port जिससे डेटाग्राम बाहर जाते हैं। नेटवर्क कार्ड चुनने के लिए इसे पिन करें, या ऐसा स्रोत पोर्ट जिस पर कोई डिवाइस जवाब देता हो। 0.0.0.0:0: कोई भी।0.0.0.0:0
TTL / हॉपएक डेटाग्राम कितने राउटर पार कर सकता है, 1–255। मल्टीकास्ट के लिए यह मल्टीकास्ट hop सीमा है: 1 इसे इस नेटवर्क पर रखता है।1
इसी होस्ट पर वापस लूप करेंकेवल मल्टीकास्ट: ग्रुप के डेटाग्राम इस मशीन को भी पहुँचाएँ, ताकि यहाँ कोई listener उन्हें सुन सकेचालू

डिफ़ॉल्ट बाइंड (स्रोत) के साथ डेटाग्राम एक IPv4 सॉकेट से बाहर जाते हैं, या IPv6 सॉकेट से जब हर गंतव्य IPv6 हो। दोनों मिलाने वाली सूची IPv4 सॉकेट से भेजी जाती है, और उसके IPv6 गंतव्य विफल होते हैं; उन्हें अपनी अलग सूची के रूप में भेजें, या बाइंड (स्रोत) को किसी IPv6 पते पर पिन करें।

नतीजा ​

अंतिम प्रेषण दिखाता है कि क्या बाहर गया: लक्ष्य, पैकेट, मात्रा और त्रुटियाँ, और जिन पहले आठ गंतव्यों तक वह पहुँचा ("… +n more" बाकी के लिए)। एक गंतव्य को त्रुटि बाकी को नहीं रोकती; कंसोल पंक्ति बताती है कि कितने विफल हुए।

बीकन के रूप में दोहराना ​

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

  1. मोड, गंतव्य और पेलोड वैसे ही सेट करें जैसे एक अकेले भेजाव के लिए।
  2. बीकन के रूप में दोहराएँ के नीचे, दर (/s) सेट करें, और अगर इसे अपने आप रुकना चाहिए तो राउंड या सेकंड।
  3. बीकन शुरू करें दबाएँ। बीकन रोकें — या कंसोल पट्टी में उसका जॉब रोकना — इसे समाप्त कर देता है।
फ़ील्डक्याडिफ़ॉल्ट
दर (/s)प्रति सेकंड दौर; 0 से ऊपर होना चाहिए2
राउंडइतने दौर के बाद रुकें; 0 — कोई सीमा नहीं0
सेकंडइतने सेकंड के बाद रुकें; 0 — कोई सीमा नहीं0

दर गुणा गंतव्यों की संख्या प्रति सेकंड अधिकतम 50 000 डेटाग्राम हो सकती है। इसलिए एक /24 (254 होस्ट) का स्वीप प्रति सेकंड अधिकतम लगभग 196 बार दोहरा सकता है। जब तक बीकन चलता है, अंतिम प्रेषण लक्ष्य (हर दौर के गंतव्य, पहली रिपोर्ट से), कुल योग, राउंड और PPS (प्रति सेकंड डेटाग्राम) दिखाता है, सेकंड में चार बार अपडेट होते हुए, और एक बार भेजें अनुपलब्ध रहता है। जिस बीकन के 32 से ज़्यादा डेटाग्राम विफल हुए हों और एक भी न गया हो — कोई route नहीं, ब्रॉडकास्ट की अनुमति नहीं — वह अपने आप रुक जाता है और कारण बताता है।

डिवाइसों की प्रतीक्षा में सुनना ​

डिस्कवरी लिसनर एक UDP पोर्ट bind करता है और उसे भेजने वाले हर पीयर को दर्ज करता है: जो किसी प्रोब का जवाब देता है, या जो कोई डिवाइस अपने आप घोषित करता है।

  1. बाइंड पता सेट करें, यानी वह पोर्ट जिस पर डिवाइस भेजते हैं।
  2. मल्टीकास्ट के लिए, मल्टीकास्ट ग्रुप जॉइन करें में ग्रुप सूचीबद्ध करें।
  3. सुनें दबाएँ। सेटिंग तब तक लॉक रहती है जब तक आप सुनना बंद करें न दबाएँ।
फ़ील्डक्याडिफ़ॉल्ट
बाइंड पताकहाँ सुनना है, IP:port। 0.0.0.0 हर नेटवर्क कार्ड पर सुनता है।0.0.0.0:9000
मल्टीकास्ट ग्रुप जॉइन करेंजॉइन करने वाले IPv4 मल्टीकास्ट ग्रुप, कॉमा से अलग; ख़ाली — केवल unicast और ब्रॉडकास्ट239.1.1.1
इंटरफ़ेसजिस नेटवर्क कार्ड पर ग्रुप जॉइन करने हैं उसका IPv4 पता; ख़ाली — सिस्टम चुनता हैख़ाली
पोर्ट साझा करेंऐसे पोर्ट पर सुनें जिसे कोई दूसरा प्रोग्राम भी उपयोग करता है (SO_REUSEADDR)। यह तभी काम करता है जब वह प्रोग्राम भी साझा करने दे।चालू
प्रोब का जवाब देंप्रोब का जवाब दें, जैसे कोई डिवाइस देता (नीचे)बंद

पीयर ​

पीयर सूचीबद्ध करता है कि किसने कुछ भेजा, सबसे नया पहले, और उसके ऊपर देखे गए पीयर की संख्या, सुने गए पैकेट और भेजे गए जवाब:

कॉलमक्या
पीयरभेजने वाले का IP:port; उसका बिंदु बताता है कि वह पिछले 3 सेकंड में सुना गया या नहीं
प्रोटोकॉलosc जब उसका अंतिम डेटाग्राम OSC के रूप में डिकोड हुआ, वरना udp
पैकेटउसने कितने भेजे
आयुउसके अंतिम डेटाग्राम से सेकंड
अंतिम संदेशउसका अंतिम डेटाग्राम: OSC पता और आर्ग्युमेंट, या टेक्स्ट की शुरुआत

सूची सेकंड में कई बार रीफ़्रेश होती है और अधिकतम 512 पीयर रखती है; उसके बाद पैकेट तो गिने जाते रहते हैं पर नए पीयर को पंक्ति नहीं मिलती।

प्रोब का जवाब देना ​

प्रोब का जवाब दें के साथ, listener एक डिवाइस की भूमिका निभाता है: वह हर मिले डेटाग्राम का जवाब, सुनने वाले पोर्ट से, भेजने वाले के पते और पोर्ट पर वापस देता है।

फ़ील्डक्याडिफ़ॉल्ट
पेलोडजवाब: OSC, टेक्स्ट या hex, जैसे भेजने के लिएOSC /hello/here और टेक्स्ट signal-lab
जवाब में विलंब (ms)जवाब देने से पहले इतनी प्रतीक्षा करें, जैसे कोई धीमा डिवाइस करता0
केवल यदि इसमें होकेवल उन डेटाग्राम का जवाब दें जिनके डिकोड किए टेक्स्ट में यह है — OSC पता और आर्ग्युमेंट, या टेक्स्ट की शुरुआत; ख़ाली — हर एकख़ाली

listener कभी अपने ही जवाब जैसे डेटाग्राम का जवाब नहीं देता, ताकि एक-दूसरे की ओर इशारा करते दो listeners अनंत तक जवाब न देते रहें।

फ़ायरवॉल और साझा पोर्ट ​

दूसरी मशीनों से आने वाला ब्रॉडकास्ट और मल्टीकास्ट ट्रैफ़िक ज़्यादातर Windows फ़ायरवॉल डिफ़ॉल्ट रूप से रोक देते हैं: जब ऐप पेशकश करे तो Signal Lab को निजी नेटवर्कों पर अनुमति दें। ब्रॉडकास्ट कभी किसी राउटर को पार नहीं करता। ऐसे पोर्ट पर सुनने के लिए जो असली सेवा के पास पहले से है, दोनों पक्षों को साझा करने देना चाहिए (यहाँ पोर्ट साझा करें); इसके बिना, लिया गया पोर्ट उसे चालू करने के संकेत के साथ अस्वीकार कर दिया जाता है। देखें समस्या निवारण।

इंस्पेक्टर में ​

कैप्चर चालू रहते, स्क्रीन का ट्रैफ़िक अपने पेलोड के अनुसार प्रोटोकॉल osc या udp के साथ दिखता है:

स्रोतक्याकितने
broadcastएक बार भेजें: हर डेटाग्राम, फ़ैसले fan-out, broadcast, multicast या sweep के साथ; विफल वाला error: … के साथहर एक
beaconबीकन के दौरहर 50 ms में अधिकतम एक दौर
discoverylistener को मिलने वाले डेटाग्रामहर 40 ms में अधिकतम एक
discoveryउसके जवाब, फ़ैसले auto-reply के साथहर एक

किसी बीकन या listener से Inspector जो छोड़ देता है वह गिना जाता है: अगला फ़्रेम जो वह खींचता है, अपने फ़ैसले में वह संख्या लाता है, +n not shown (किसी बीकन के लिए, हर दौर के हर छोड़े गए गंतव्य के लिए एक फ़्रेम)। देखें इंस्पेक्टर।

सर्वर या Docker में ​

किसी सर्वर पर, स्क्रीन सर्वर के नेटवर्क पर भेजती और सुनती है। Docker में, ब्रॉडकास्ट, मल्टीकास्ट और डिस्कवरी स्थानीय नेटवर्क तक केवल तभी पहुँचते हैं जब कंटेनर होस्ट का नेटवर्क उपयोग करे (किसी Linux होस्ट पर --network host)। Docker के डिफ़ॉल्ट bridge नेटवर्क के साथ, या Docker Desktop के साथ, केवल उन होस्टों तक unicast काम करता है जिन तक कंटेनर पहुँच सकता है।

अन्यत्र ​

  • signallab send udp एक होस्ट को एक डेटाग्राम भेजता है; कोई कमांड-लाइन ब्रॉडकास्ट, मल्टीकास्ट या स्वीप नहीं है।
  • एक UDP डेटाग्राम चरण एक या अधिक होस्टों को टेक्स्ट डेटाग्राम भेजता है, और एक UDP की प्रतीक्षा चरण एक की प्रतीक्षा करता है। देखें UDP और TCP।
  • नियमों से जवाब देने वाले डिवाइस की भूमिका निभाने के लिए — कई नियम, जो आया उससे बने जवाब — कोई UDP डिवाइस या OSC डिवाइस एमुलेटर उपयोग करें। देखें एमुलेटर।

समस्याएँ ​

जो आप देखते हैंसामान्य कारण
… is not a broadcast addressब्रॉडकास्ट 255.255.255.255:port या .255 पर समाप्त होता पता लेता है। किसी और सबनेट मास्क के लिए स्वीप उपयोग करें।
… is not a multicast groupपता 224.0.0.0–239.255.255.255 से बाहर है।
… spans … addresses, and a sweep reaches at most 1024 hostsब्लॉक /22 से चौड़ा है; इसे संकरा करें।
Set the port to sweepपोर्ट 0 है।
… is over the … pps limitदर गुणा गंतव्यों की संख्या प्रति सेकंड 50 000 से ऊपर है: दर (/s) घटाएँ, या गंतव्य संकरा करें।
… is already in use — turn on “share the port” to listen alongside itपोर्ट किसी और प्रोग्राम के पास है; पोर्ट साझा करें पर टिक करें।
Cannot join the multicast group …ग्रुप या इंटरफ़ेस इस मशीन पर उपयोग करने योग्य नहीं है — उस पते वाला कोई नेटवर्क कार्ड नहीं, या कोई मल्टीकास्ट route नहीं।
भेजा, पर कोई जवाब नहींडिवाइस किसी और पोर्ट पर सुनते हैं; यहाँ का फ़ायरवॉल उनके जवाब बाहर रखता है; आपके बीच कोई राउटर है; या, Docker में, कंटेनर होस्ट नेटवर्क पर नहीं है।
प्रोब बाहर जाते हैं, पर डिस्कवरी लिसनर कोई जवाब नहीं सुनताबहुत से डिवाइस उसी पते और पोर्ट पर जवाब देते हैं जहाँ से प्रोब आया था — emitter का अपना सॉकेट, जिसे स्क्रीन पढ़ती नहीं। उस पोर्ट पर सुनें जिस पर डिवाइस जवाब देते हैं, या प्रोब किसी प्रयोग से भेजें: जवाब की प्रतीक्षा करें वाला एक UDP डेटाग्राम चरण एक ही पोर्ट पर भेजता और सुनता है।

हर त्रुटि संदेश त्रुटि संदेश में सूचीबद्ध है।