Zum Inhalt springen

Broadcast ​

Die Ansicht Broadcast (Broadcast & Erkennung) sendet eine UDP-Nutzlast an viele Ziele auf einmal und hört auf der anderen Seite mit, wer antwortet. Nutzen Sie sie, um Geräte in einem Netzwerk zu finden, zu prüfen, ob ein Multicast-Strom einen Empfänger erreicht, oder ein Gerät zu spielen, das auf Erkennungsanfragen antwortet.

  • Der Sender sendet an eine Liste von Hosts, eine Broadcast-Adresse, eine Multicast-Gruppe oder jeden Host eines Subnetzes — einmal oder immer wieder als Beacon.
  • Die Erkennungsempfänger hört auf einem Port, tritt Multicast-Gruppen bei, listet jeden Peer auf, der mit ihr spricht, und kann auf Anfragen antworten.

DANGER

Broadcast, Multicast und ein Sweep erreichen jedes Gerät im Netzwerksegment, nicht nur das, an das Sie denken, und ein Beacon tut das immer weiter. Prüfen Sie zuerst, in welchem Netzwerk Sie sind, und senden Sie nur an Netzwerke, die Ihnen gehören oder die Sie testen dürfen. Die Grenzen unten sind Leitplanken, keine Erlaubnis.

Senden ​

  1. Wählen Sie den Modus (unten).
  2. Geben Sie das Ziel ein: Der Name des Feldes ändert sich mit dem Modus. In einem Netzwerk mit einer IPv4-Adresse füllt mein Subnetz verwenden es aus der Adresse dieses Computers.
  3. Wählen Sie die Nutzdaten und schreiben Sie sie.
  4. Drücken Sie Einmal senden: Ein Datagramm geht an jedes Ziel.

Modi ​

ModusZielWas geschiehtStandard
ListeZiele: Einträge IP:port oder host:port, getrennt durch Kommas, Semikolons oder Zeilenumbrüche — ein Leerzeichen trennt sie nicht. Ein Name wird nachgeschlagen, seine IPv4-Adresse genommen, wenn er eine hat.Ein Datagramm an jedes127.0.0.1:9000, 127.0.0.1:9001
BroadcastAdresse: 255.255.255.255:port oder eine Adresse, die auf .255 endetEin Datagramm, das jeder Host im lokalen Netzwerk empfängt. Router reichen es nicht weiter.255.255.255.255:9000
MulticastAdresse: eine Gruppe von 224.0.0.0 bis 239.255.255.255, mit einem PortEin Datagramm an die Gruppe; nur Empfänger, die ihr beigetreten sind, erhalten es239.1.1.1:9000
SweepCIDR-Block, a.b.c.d/nn, und ein PortEin Datagramm an jeden nutzbaren Host des Blocks, als Unicast — für Geräte, die Broadcast ignorieren192.168.1.0/24, Port 9000

Bei einem Sweep werden die Netzwerk- und die Broadcast-Adresse übersprungen (außer bei einem /31 oder /32), und eine Basis, die nicht die des Netzwerks selbst ist, wird darauf abgerundet: 192.0.2.77/30 überstreicht 192.0.2.77 und 192.0.2.78. Ein Sweep erreicht höchstens 1024 Hosts, der breiteste Block ist also ein /22 (1022 Hosts); ein breiterer wird mit dem Präfix abgelehnt, auf das er zu verengen ist.

Broadcast, Multicast-Gruppen, Sweeps und die Beitritte des Erkennungsempfängers gibt es nur über IPv4: IPv6 kennt keinen Broadcast. Eine Liste darf auch IPv6-Hosts nennen (siehe Socket-Optionen).

mein Subnetz verwenden füllt x.y.z.10:9000, x.y.z.11:9000 in Liste, x.y.z.255:9000 in Broadcast und x.y.z.0/24 in Sweep, aus der Adresse x.y.z.w dieses Computers. Es setzt ein /24-Netzwerk voraus.

Nutzdaten ​

NutzdatenWas gesendet wird
OSCEine OSC-Nachricht: OSC-Adresse und typisierte Argumente, wie in der Ansicht OSC. Standardmäßig /hello/discover mit dem Text who-is-there.
TextDer Text als UTF-8, genau wie eingegeben, ohne Abschlusszeichen. Standardmäßig HELLO-PROBE.
rohes HexDas Hex-Bytes Byte für Byte — um einen mitgeschnittenen Frame erneut zu senden oder ein binäres Erkennungsprotokoll zu sprechen. Hex-Ziffernpaare; alles andere dazwischen wird ignoriert. Standardmäßig 48 45 4c 4c 4f.

Socket-Optionen ​

Socket-Optionen öffnet drei weitere Einstellungen:

OptionWasStandard
QuelladresseDas lokale IP:port, von dem die Datagramme ausgehen. Legen Sie es fest, um die Netzwerkkarte zu wählen oder einen Quellport, auf den ein Gerät antwortet. 0.0.0.0:0: beliebig.0.0.0.0:0
TTL / HopsWie viele Router ein Datagramm überqueren darf, 1–255. Bei Multicast ist das das Multicast-Hop-Limit: 1 hält es in diesem Netzwerk.1
auch an diesen Host zurückgebenNur Multicast: Die Datagramme der Gruppe auch an diesen Computer zustellen, damit ein Empfänger hier sie hörtan

Mit dem Standard-Quelladresse gehen die Datagramme von einem IPv4-Socket aus, oder von einem IPv6-Socket, wenn jedes Ziel IPv6 ist. Eine Liste, die beides mischt, wird vom IPv4-Socket gesendet, und ihre IPv6-Ziele scheitern; senden Sie sie als eigene Liste, oder legen Sie Quelladresse auf eine IPv6-Adresse fest.

Das Ergebnis ​

Letzte Aussendung zeigt, was hinausging: Ziele, Pakete, Datenmenge und Fehler, und die ersten acht Ziele, die es erreichte („… +n mehr“ für den Rest). Ein Fehler an einem Ziel hält die anderen nicht auf; die Zeile der Konsole nennt, wie viele scheiterten.

Als Beacon wiederholen ​

Ein Beacon sendet dieselbe Runde — ein Datagramm an jedes Ziel — nach einem Zeitplan, bis Sie ihn stoppen. Geräte, die auf eine regelmäßige Ankündigung hören, brauchen einen.

  1. Richten Sie Modus, Ziel und Nutzdaten ein wie für ein einzelnes Senden.
  2. Stellen Sie unter Als Beacon wiederholen die Rate (/s) ein und, wenn er von selbst enden soll, Runden oder Sekunden.
  3. Drücken Sie Beacon starten. Beacon stoppen — oder das Stoppen seines Jobs in der Leiste der Konsole — beendet ihn.
FeldWasStandard
Rate (/s)Runden pro Sekunde; muss über 0 liegen2
RundenNach so vielen Runden stoppen; 0 — keine Grenze0
SekundenNach so vielen Sekunden stoppen; 0 — keine Grenze0

Die Rate mal die Anzahl der Ziele darf höchstens 50 000 Datagramme pro Sekunde betragen. Ein Sweep über ein /24 (254 Hosts) kann sich also höchstens etwa 196-mal pro Sekunde wiederholen. Während der Beacon läuft, zeigt Letzte Aussendung Ziele (die Ziele in jeder Runde, ab dem ersten Bericht), die Summen, Runden und PPS (Datagramme pro Sekunde), viermal pro Sekunde aktualisiert, und Einmal senden steht nicht zur Verfügung. Ein Beacon, der mehr als 32 fehlgeschlagene Datagramme und kein einziges gesendetes hatte — keine Route, Broadcast nicht erlaubt —, hält von selbst an und sagt, warum.

Auf Geräte hören ​

Die Erkennungsempfänger belegt einen UDP-Port und zeichnet jeden Peer auf, der an ihn sendet: was auf eine Anfrage antwortet, oder was ein Gerät von selbst ankündigt.

  1. Setzen Sie Empfangsadresse, den Port, an den die Geräte senden.
  2. Für Multicast listen Sie die Gruppen in Multicast-Gruppen beitreten auf.
  3. Drücken Sie Empfangen. Die Einstellungen sind gesperrt, bis Sie Empfang beenden drücken.
FeldWasStandard
EmpfangsadresseWo gehört wird, IP:port. 0.0.0.0 hört auf jeder Netzwerkkarte.0.0.0.0:9000
Multicast-Gruppen beitretenIPv4-Multicast-Gruppen, denen beigetreten wird, kommagetrennt; leer — nur Unicast und Broadcast239.1.1.1
SchnittstelleDie IPv4-Adresse der Netzwerkkarte, auf der den Gruppen beigetreten wird; leer — das System wähltleer
Port teilenAuf einem Port hören, den auch ein anderes Programm verwendet (SO_REUSEADDR). Es funktioniert nur, wenn dieses Programm das Teilen ebenfalls erlaubt.an
Suchanfragen beantwortenAuf Anfragen antworten, wie ein Gerät es täte (unten)aus

Peers ​

Gegenstellen listet auf, wer etwas gesendet hat, das Neueste zuerst, mit der Anzahl der gesehenen Peers, der gehörten Pakete und der gesendeten Antworten darüber:

SpalteWas
GegenstelleDas IP:port des Absenders; sein Punkt zeigt, ob es in den letzten 3 Sekunden gehört wurde
Prot.osc, wenn sein letztes Datagramm als OSC dekodiert wurde, sonst udp
PaketeWie viele es gesendet hat
AlterSekunden seit seinem letzten Datagramm
Letzte NachrichtSein letztes Datagramm: die OSC-Adresse und die Argumente oder der Anfang des Textes

Die Liste wird ein paar Mal pro Sekunde aktualisiert und hält bis zu 512 Peers; darüber hinaus werden Pakete weiter gezählt, aber neue Peers erhalten keine Zeile.

Auf Anfragen antworten ​

Mit Suchanfragen beantworten spielt der Empfänger ein Gerät: Er beantwortet jedes Datagramm, das er empfängt, vom Empfangsport zurück an Adresse und Port des Absenders.

FeldWasStandard
NutzdatenDie Antwort: OSC, Text oder Hex, wie beim SendenOSC /hello/here mit dem Text signal-lab
Antwortverzögerung (ms)So lange vor dem Antworten warten, wie es ein langsames Gerät täte0
Nur wenn es enthältNur Datagramme beantworten, deren dekodierter Text dies enthält — die OSC-Adresse und die Argumente oder der Anfang des Textes; leer — jedesleer

Der Empfänger beantwortet nie ein Datagramm, das mit seiner eigenen Antwort identisch ist, sodass zwei aufeinander gerichtete Empfänger nicht endlos hin und her antworten.

Firewalls und geteilte Ports ​

Broadcast- und Multicast-Verkehr von anderen Rechnern wird von den meisten Windows-Firewalls standardmäßig blockiert: Lassen Sie Signal Lab in privaten Netzwerken zu, wenn die App es anbietet. Broadcast überquert nie einen Router. Um auf einem Port zu hören, den der echte Dienst bereits hat, müssen beide Seiten das Teilen erlauben (Port teilen hier); ohne das wird ein belegter Port mit dem Hinweis abgelehnt, es einzuschalten. Siehe Fehlersuche.

Im Inspektor ​

Ist der Mitschnitt gestartet, erscheint der Verkehr der Ansicht je nach Nutzdaten mit dem Protokoll osc oder udp:

QuelleWasWie viele
broadcastEinmal senden: jedes Datagramm, mit dem Urteil fan-out, broadcast, multicast oder sweep; ein fehlgeschlagenes mit error: …jedes einzelne
beaconDie Runden eines Beaconshöchstens eine Runde alle 50 ms
discoveryDatagramme, die der Empfänger empfängthöchstens eines alle 40 ms
discoverySeine Antworten, mit dem Urteil auto-replyjede einzelne

Was der Inspektor von einem Beacon oder dem Empfänger auslässt, wird gezählt: Der nächste Frame, den er zeichnet, trägt die Zahl in seinem Urteil, +n not shown (bei einem Beacon ein Frame für jedes ausgelassene Ziel jeder Runde). Siehe Inspektor.

Auf einem Server oder in Docker ​

Auf einem Server sendet und hört die Ansicht im Netzwerk des Servers. In Docker erreichen Broadcast, Multicast und die Erkennung das lokale Netzwerk nur, wenn der Container auf einem Linux-Host das Netzwerk des Hosts verwendet (--network host). Mit dem standardmäßigen Bridge-Netzwerk von Docker oder mit Docker Desktop funktioniert nur Unicast an Hosts, die der Container erreicht.

Anderswo ​

  • signallab send udp sendet ein Datagramm an einen Host; es gibt keinen Broadcast, Multicast oder Sweep auf der Kommandozeile.
  • Ein Schritt UDP-Datagramm sendet ein Text-Datagramm an einen oder mehrere Hosts, und ein Schritt Auf UDP warten wartet auf eines. Siehe UDP und TCP.
  • Um ein Gerät zu spielen, das nach Regeln antwortet — mehrere Regeln, Antworten aus dem Eingetroffenen gebaut —, verwenden Sie einen Emulator UDP-Gerät oder OSC-Gerät. Siehe Emulatoren.

Probleme ​

Was Sie sehenÜbliche Ursache
… is not a broadcast addressBroadcast nimmt 255.255.255.255:port oder eine Adresse, die auf .255 endet. Für eine andere Subnetzmaske verwenden Sie Sweep.
… is not a multicast groupDie Adresse liegt außerhalb von 224.0.0.0–239.255.255.255.
… spans … addresses, and a sweep reaches at most 1024 hostsDer Block ist breiter als ein /22; verengen Sie ihn.
Set the port to sweepPort ist 0.
… is over the … pps limitDie Rate mal die Anzahl der Ziele liegt über 50 000 pro Sekunde: Senken Sie die Rate (/s) oder verengen Sie das Ziel.
… is already in use — turn on “share the port” to listen alongside itEin anderes Programm hat den Port; haken Sie Port teilen an.
Cannot join the multicast group …Die Gruppe oder Schnittstelle ist auf diesem Computer nicht nutzbar — keine Netzwerkkarte mit dieser Adresse oder keine Multicast-Route.
Gesendet, aber niemand antwortetDie Geräte hören auf einem anderen Port; die Firewall hier hält ihre Antworten fern; ein Router liegt dazwischen; oder, in Docker, der Container ist nicht im Netzwerk des Hosts.
Anfragen gehen hinaus, aber der Erkennungsempfänger hört keine AntwortenViele Geräte antworten an die Adresse und den Port, von dem eine Anfrage kam — den eigenen Socket des Senders, den die Ansicht nicht liest. Hören Sie auf dem Port, an den die Geräte antworten, oder senden Sie die Anfrage aus einem Experiment: Ein Schritt UDP-Datagramm mit auf eine Antwort warten sendet und hört auf demselben Port.

Jede Fehlermeldung steht unter Fehlermeldungen.