Forum: PC-Programmierung Ethernet Multicast


von dave (Gast)


Lesenswert?

Hallo,

ich würde für ein Projekt gerne Multicast - Pakete über Ethernet 
verschicken.
Prinzipiell funktioniert es ja so: Die Addressen 225.x.x.x - 238.x.x.x 
sind ja für Multicast reserviert. Wenn ich ein Paket an diese Adresse 
schicken, soll es jeder Teilnehmer erhalten, der den Kanal abboniert hat 
(über das igmp Protokoll). Der Sender weiß nicht wer den Stream 
abboniert hat, der Router ist alleine dafür zuständig dass die Pakete 
nur an den Empfänger geleitet werden, der sie will.

Ich habe das mal mit 2 unterschiedlichen einfachen 0815 Switches 
ausprobiert. Auf einem PC versende ich ein paar udp - Packete auf eine 
Broadcast - Adresse, mit einem anderen PC beobachte ich die einkommenden 
Pakete mit Wireshark. Die Multicast - Pakete werden anscheinend als 
Broadcasts erkannt, da sie auf jeden Port des Switches weitergeleitet 
werden, auch wenn sie der Empfänger nicht abboniert hat.

Meine Frage also: habe ich etwas falsch gemacht oder versteht nicht 
jeder 0815 10 euro switch das igmp protokoll, damit er die multicast 
pakete richtig weiterleitet ? Laut Recherche gibt es schon switches, die 
das können, aber für mich wäre es gut zu wissen ob das wirklich jeder 
halbwegs neue switch normalerweise kann oder nicht.

von Rolf Magnus (Gast)


Lesenswert?

> Prinzipiell funktioniert es ja so: Die Addressen 225.x.x.x - 238.x.x.x

224.x.x.x - 239.x.x.x

> Meine Frage also: habe ich etwas falsch gemacht oder versteht nicht
> jeder 0815 10 euro switch das igmp protokoll, damit er die multicast
> pakete richtig weiterleitet ?

Der 0815-Switch versteht nicht mal IP.

> Laut Recherche gibt es schon switches, die das können, aber für mich
> wäre es gut zu wissen ob das wirklich jeder halbwegs neue switch
> normalerweise kann oder nicht.

Wenn er "managed" ist, kann das schon sein. Sonst meines Wissens eher 
nicht.

von oszi40 (Gast)


Lesenswert?

Frage ist, ob sich jeder über Deine erzeugte Netzlast so richtig freut. 
Wahrscheinlich eher nicht.

IP-Multicast siehe http://de.wikipedia.org/wiki/Multicast

von Peter (Gast)


Lesenswert?

> der Router ist alleine dafür zuständig dass die Pakete
> nur an den Empfänger geleitet werden,
das ist doch schon die Lösung, hast du denn über einen Router geschickt 
der das machen könnte?

von g457 (Gast)


Lesenswert?

[ Multicast, Switch ]

Aaalso mal der Reihe nach: Ein 'Switch' arbeitet i.d.R. auf Layer 2, der 
hat also keine Ahnung von IP (Layer 3) und Co. Ergo kann ein 'Switch' 
auch kein IGMP/Multicast (das auf IP aufbaut).

Erst die 'großen' (managed) Switches Kratzen an Layer 3. IGMP und Co. 
wird aber normalerweise von einem Router (Layer 3 und höher) übernommen.

[ Multicast, Broadcast ]

Nein, die Multicast-Pakete werden nicht als 'Broadcast' erkannt, sondern 
der Switch weiss einfach (noch) nicht, wo der Empfänger sitzt, deswegen 
schickt er die Pakete überall (ausgenommen den Eingangsport) raus.

Broadcasts sind Pakete, die innerhalb eines Netzwerksegments an die 
dafür reservierten Adressen, die Broadcastadressen, gerichtet sind. 
Broadcasts richten sind also an die Teilnehmer eines Netzwerksegments 
und nicht an Abonennten einer Multicastgruppe.

So viel zu den Grundlagen. Du hast im Wesentlichen zwei Möglichkeiten: 
Erstens einen Router(!) einsetzen, der IGMP beherrscht oder, und das ist 
möglicherweise viel einfacher bevor Du jetzt das ganze Netzwerk 
umgräbst, Du nimmst Broadcasts statt der Multicasts. Nachteil der 
Broadcasts ist, dass sie im Netzwerksegment bleiben. Das kann aber 
unerheblich (oder erwünscht) sein, falls es sich eh um ein 
abgeschlossenes Netzwerk handelt.

Falls die Pakete 'raus' gehen sollen, wirst Du um einen IGMP-fähigen 
Router nicht (sinnvoll) rum kommen.

HTH

von dave (Gast)


Lesenswert?

>Der 0815-Switch versteht nicht mal IP.

muss er ja nicht zwangsweise, multicasts haben eine eigene mac - 
addresse, die aus der ip berechnet werden. mit igmp wirds halt dann 
kompliziert...

>> der Router ist alleine dafür zuständig dass die Pakete
>> nur an den Empfänger geleitet werden,
>das ist doch schon die Lösung, hast du denn über einen Router geschickt
>der das machen könnte?

ja, das wäre eh eine lösung. es ist aber so, dass ich mein system in 
verschiedene netzwerke einbinden möchte, und dazu nicht das netzwerk 
verändern will. umd die meisten netzwerkdosen sind an switches und nicht 
über router angeschlossen.

>Frage ist, ob sich jeder über Deine erzeugte Netzlast so richtig freut.
>Wahrscheinlich eher nicht.

Naja, der Vorteil von Multicast gegenüber Broadcast wäre ja genau die 
geringere Netzwerklast ;-)

>Nein, die Multicast-Pakete werden nicht als 'Broadcast' erkannt, sondern
>der Switch weiss einfach (noch) nicht, wo der Empfänger sitzt, deswegen
>schickt er die Pakete überall (ausgenommen den Eingangsport) raus.

der switch weiß ja schon, an welchen port welche mac-adresse hängt, also 
könnte er das paket nicht an einen port weiterleiten, weil er weiß dass 
dahinter eine andere mac addresse ist.

ich habe folgendes dazu in wikipedia gefunden (unter switches):

"Multicast-Adressen werden von einfachen Geräten wie Broadcast-Adressen 
verarbeitet oder höher entwickelte Geräte, die Multicasts verarbeiten 
können, senden diese nur an die in der SAT registrierten 
Multicast-Adress-Empfänger."

danke für die antworten, ich fürchte zusammenfassend kann man sagen dass 
ein "billiger" switch kein igmp versteht bzw. man sich nicht verlassen 
kann, dass er es tut und daher für multicast eher ungeeignet ist.

von Rolf Magnus (Gast)


Lesenswert?

>>Der 0815-Switch versteht nicht mal IP.
>
> muss er ja nicht zwangsweise, multicasts haben eine eigene mac -
> addresse, die aus der ip berechnet werden. mit igmp wirds halt dann
> kompliziert...

Ja, eben. Ohne igmp weiß der Switch aber nicht, wer alles interessiert 
an den Daten ist, also muß er sie im Prinzip wie Broadcasts behandeln 
und jedem angeschlossenen Teilnehmer schicken. Das ist ja auch genau 
das, was du beobachtet hast.

> Naja, der Vorteil von Multicast gegenüber Broadcast wäre ja genau die
> geringere Netzwerklast ;-)

Nein, der Vorteil von Multicast gegenüber Broadcast ist nicht eine 
niedrigere Last im Subnetz, sondern daß es auch über Subnetz-Grenzen 
hinweg funktioniert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.