ब्रॉडकास्ट
ब्रॉडकास्ट स्क्रीन (ब्रॉडकास्ट और डिस्कवरी) एक साथ कई गंतव्यों को एक UDP पेलोड भेजती है, और दूसरी तरफ़ सुनती है कि कौन जवाब देता है। इसका उपयोग किसी नेटवर्क पर डिवाइस खोजने, यह जाँचने कि कोई मल्टीकास्ट स्ट्रीम किसी रिसीवर तक पहुँचती है, या ऐसे डिवाइस की भूमिका निभाने के लिए करें जो discovery प्रोब का जवाब देता है।
- एमिटर होस्टों की एक सूची, किसी ब्रॉडकास्ट पते, किसी मल्टीकास्ट ग्रुप, या किसी सबनेट के हर होस्ट को भेजता है — एक बार, या बार-बार एक बीकन के रूप में।
- डिस्कवरी लिसनर एक पोर्ट पर सुनता है, मल्टीकास्ट ग्रुप जॉइन करता है, उससे बात करने वाले हर पीयर को सूचीबद्ध करता है, और प्रोब का जवाब दे सकता है।
DANGER
ब्रॉडकास्ट, मल्टीकास्ट और स्वीप नेटवर्क सेगमेंट के हर डिवाइस तक पहुँचते हैं, केवल उस तक नहीं जो आपके मन में है, और एक बीकन यही करता रहता है। पहले जाँचें कि आप किस नेटवर्क पर हैं, और केवल उन्हीं नेटवर्कों पर भेजें जो आपके हैं या जिन्हें परखने की आपको अनुमति है। नीचे की सीमाएँ सुरक्षा घेरे हैं, अनुमति नहीं।
भेजना
- मोड चुनें (नीचे)।
- गंतव्य दर्ज करें: फ़ील्ड का नाम मोड के साथ बदल जाता है। IPv4 पता वाले नेटवर्क पर, मेरा सबनेट लें इसे इस मशीन के पते से भर देता है।
- पेलोड चुनें और उसे लिखें।
- एक बार भेजें दबाएँ: हर गंतव्य पर एक डेटाग्राम जाता है।
मोड
| मोड | गंतव्य | क्या होता है | डिफ़ॉल्ट |
|---|---|---|---|
| सूची | लक्ष्य: कॉमा, सेमीकोलन या नई पंक्तियों से अलग किए 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। |
| रॉ hex | Hex बाइट बाइट दर बाइट — किसी कैप्चर किए फ़्रेम को दोबारा भेजने या कोई 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" बाकी के लिए)। एक गंतव्य को त्रुटि बाकी को नहीं रोकती; कंसोल पंक्ति बताती है कि कितने विफल हुए।
बीकन के रूप में दोहराना
एक बीकन एक ही दौर — हर गंतव्य पर एक डेटाग्राम — एक शेड्यूल पर भेजता है, जब तक आप उसे रोकें। जो डिवाइस किसी नियमित घोषणा की प्रतीक्षा करते हैं, उन्हें इसकी ज़रूरत होती है।
- मोड, गंतव्य और पेलोड वैसे ही सेट करें जैसे एक अकेले भेजाव के लिए।
- बीकन के रूप में दोहराएँ के नीचे, दर (/s) सेट करें, और अगर इसे अपने आप रुकना चाहिए तो राउंड या सेकंड।
- बीकन शुरू करें दबाएँ। बीकन रोकें — या कंसोल पट्टी में उसका जॉब रोकना — इसे समाप्त कर देता है।
| फ़ील्ड | क्या | डिफ़ॉल्ट |
|---|---|---|
| दर (/s) | प्रति सेकंड दौर; 0 से ऊपर होना चाहिए | 2 |
| राउंड | इतने दौर के बाद रुकें; 0 — कोई सीमा नहीं | 0 |
| सेकंड | इतने सेकंड के बाद रुकें; 0 — कोई सीमा नहीं | 0 |
दर गुणा गंतव्यों की संख्या प्रति सेकंड अधिकतम 50 000 डेटाग्राम हो सकती है। इसलिए एक /24 (254 होस्ट) का स्वीप प्रति सेकंड अधिकतम लगभग 196 बार दोहरा सकता है। जब तक बीकन चलता है, अंतिम प्रेषण लक्ष्य (हर दौर के गंतव्य, पहली रिपोर्ट से), कुल योग, राउंड और PPS (प्रति सेकंड डेटाग्राम) दिखाता है, सेकंड में चार बार अपडेट होते हुए, और एक बार भेजें अनुपलब्ध रहता है। जिस बीकन के 32 से ज़्यादा डेटाग्राम विफल हुए हों और एक भी न गया हो — कोई route नहीं, ब्रॉडकास्ट की अनुमति नहीं — वह अपने आप रुक जाता है और कारण बताता है।
डिवाइसों की प्रतीक्षा में सुनना
डिस्कवरी लिसनर एक UDP पोर्ट bind करता है और उसे भेजने वाले हर पीयर को दर्ज करता है: जो किसी प्रोब का जवाब देता है, या जो कोई डिवाइस अपने आप घोषित करता है।
- बाइंड पता सेट करें, यानी वह पोर्ट जिस पर डिवाइस भेजते हैं।
- मल्टीकास्ट के लिए, मल्टीकास्ट ग्रुप जॉइन करें में ग्रुप सूचीबद्ध करें।
- सुनें दबाएँ। सेटिंग तब तक लॉक रहती है जब तक आप सुनना बंद करें न दबाएँ।
| फ़ील्ड | क्या | डिफ़ॉल्ट |
|---|---|---|
| बाइंड पता | कहाँ सुनना है, 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 में अधिकतम एक दौर |
discovery | listener को मिलने वाले डेटाग्राम | हर 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 डेटाग्राम चरण एक ही पोर्ट पर भेजता और सुनता है। |
हर त्रुटि संदेश त्रुटि संदेश में सूचीबद्ध है।