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.
> 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.
Frage ist, ob sich jeder über Deine erzeugte Netzlast so richtig freut.
Wahrscheinlich eher nicht.
IP-Multicast siehe http://de.wikipedia.org/wiki/Multicast
> 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?
[ 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
>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.
>>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.