0

I have a network setup that I want to use to research igmp.
I have two routers and a switch, three raspberry pis are connected to the switch with different ip address subnets.

I have already configured the dynamic routing protocols on the routers and turned on igmp.

I have issues with the raspberry pis and I do not know where to begin to configure them for multicast.

I am new to unix and linux backgrounds and I would love any input to point me in the right direction.

2
  • You'd typically need to have some software (maybe written by you) that opens a socket and listens on a multicast address. The OS won't listen for multicast packets unless it has a reason to. Commented Mar 12, 2024 at 9:51
  • thank you but i am new to coding as i am a hardware guy. Do you think i can find software like that online?? Commented Mar 12, 2024 at 10:59

1 Answer 1

1

End-hosts do not need to be configured for multicast; they can just use it. Multicast routing (PIM or DVMRP) is only needed between the routers.

Usually, multicast group joins are done dynamically, not statically. That is, you don't configure the OS with the groups you want to join – instead, the actual programs that would consume multicast traffic have to ask the OS to join the group they want. (And if there aren't any such programs, then what's the point of receiving multicast?)

(This is only needed to receive data. Hosts can send multicast without doing anything special.)

For example, if you were receiving an MPEG video stream, you'd use something like VLC to interpret the multicast data – therefore VLC asks the OS to join the group you specify, and the OS automatically sends the necessary IGMP or MLD packets. (This is done using the setsockopt() call with IP_ADD_MEMBERSHIP; widely documented elsewhere, such as TLDP.) Once VLC quits, the OS automatically leaves the group.

Tools like msend/mreceive could be used to send and receive a "test" multicast stream, or you could use e.g. Python sockets to temporarily join the group you want.

2
  • Thank you for your response. I saw something about python sockets online but i am not sure how to go about it. I would appreciate any further input as i do my own personal research Commented Mar 12, 2024 at 13:31
  • Start with researching unicast first (i.e. how a normal program talks to a normal server via TCP or UDP) – it's the baseline knowledge and multicast only builds on top of that. "Sockets" are the typical interface for networking in most programming languages, not necessarily Python (though it's probably an easy one to get into). In the end, the point is that multicast is usually a building block for something else (VoIP? IPTV? LAN chat?) and usually not a goal in itself, so even if you want IGMP specifically it might be easiest to implement something that exists and not start blank. Commented Mar 12, 2024 at 13:37

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.