1

For a LAN, it is effectively several additional layers of filters on hardware/software, maybe including switch(IGMP snooping)/NIC/kernel stack, etc. Otherwise it is similar to broadcast. I think I can roughly understand this part.

For WAN, if a host subscribe to an multicast address, without knowing where it might come from, then it seems this subscribing host needs to send out an IGMP packet, which needs to be delivered to ALL routers on the internet, so that a packet from ANY host sent to this multicast address can be routed to the subscriber. But that sounds like too much additional traffic, what did I miss?

2

3 Answers 3

2

This is description is based solely on my own understanding and may contain errors. It might be useful to help you find better resources...

Multicast is routable, which means that the whole internet does NOT get your subscribe message. Multicast is one to many NOT many to many. This is important because the "one" is the publisher, and the "many" are the subscribers. A new subscription only needs to be routed from the new subscriber to the existing publisher.

Some multicast addresses (including 224.0.0.1) are reserved for non-routable-multicast. Other addresses are used for routed-multicast. It's important to note that to publish a multicast stream on the internet you must have a multicast IP address allocated.

To make multicast efficient, each router must understand they are performing multicast routing. That's because every router from the publisher to a subscriber might be required to receive a packet once from the publisher and send it many times to other routers or end subscribers.

What this means is that your subscription request might trigger a chain of subscription requests. Each router must decide which other router to forward the request to. Fortunately that problem is very similar to normal one-to-one routing. A chain of multicast subscription requests can be routed very much like a single packet sent to a single client because the multicast IP is owned by the subscriber.

I've glossed over the complexities of routing and how it can change. There's some more information in this article: http://www.enterprisenetworkingplanet.com/netsp/article.php/3623181/Networking-101--Understanding-Multicast-Routing.htm


IPv4 vs IPv6

Theoretically there isn't much of a difference between the two. However, as noted earlier in this answer, every router must support multicast for it to work. A lot of IPv4 routers on the internet do not support multicast.

Individual ISPs managed to setup multicast on their own network by ensuring all their own routers support it. But too often it's simply not possible.

Also the multicast IP allocation is quite small under IPv4. I don't believe IANA are still offering them.i might be wrong.

As far as I'm aware IPv6 makes multicast a required part of the standard, and there is some expectation that routers may fully support it. Whether that actually ever happens remains to be seen.

IPv6 has a much larger allocation for multicast addresses. According to Wikipedia, IPv6 multicast addresses have a 64 bit network prefix with a 32 bit group I'd.

5
  • Thanks for so much information. What I imagined is this scenario, a user comes online and subscribed to a routable multicast group address. He is the first subscriber to this address, and no one has ever published anything to this address yet, hence nobody knows where the potential publisher will be located. Therefore, the subscriber's subscription (IGMP) message has to be delivered to pretty much ALL routers, so that whoever publishes in the future, the message can be delivered back to this subscriber. In that sense, it is very much different from a one-to-one routing. Is that correct?
    – QnA
    Commented May 20, 2020 at 21:10
  • @QnA I've just stumbled on IANA allocation for Unicast-Prefix-Based IPv4 associated with RFC 6304. If I've read correctly these addresses contain the stub of a one-to-one IP address allowing them to be routed the same way. This seems to be an idea first proposed for IPv6... see RFC 3306 Commented May 21, 2020 at 8:00
  • @QnA I don't think you are correct. From what I understand it's much closer to one-to-one. Rather that the subscription request being relayed "everywhere" the ownership of the IP is relayed. That doesn't need to be relayed every router on the internet. The core nodes will share this information and automatically form routing tables telling them where to send each packet / request next. The edge nodes (your ISP) either know they are responsible for the block of IPs (already knowing how it is broken up) or they assume it needs to be sent back to the core nodes via their default gateway. Commented May 21, 2020 at 8:11
  • In "the ownership of the IP is relayed", the IP is the subscriber's IP or publisher's? I am still a bit confused, I think the subscriber does not know the publisher's IP.
    – QnA
    Commented May 21, 2020 at 23:34
  • No. The multicast IP is relayed. This must happen before it's used Commented May 22, 2020 at 7:45
1

RFC 2236 (IGMPv2) explains the basic mechanism in sections 6 (Host State Diagram) and 7 (Router State Diagram). That document also claims that all IGMP messages are sent with TTL=1, so definitely not all hosts on the internet are contacted. Note that IGMP does not cover the protocol used between multicast routers.

0

Usually, multicast streams in Internet only live inside your ISP WAN (for example for IP TV), which is basically a "Wide" LAN. In this case, it's acceptable to achieve traditionnal routing with IGMP stuff & cie.

I never heard about "global, internet-wide available" multicast streams.

1
  • So in the ISP WAN, indeed every subscription will trigger an IGMP which will be relayed to ALL routers?
    – QnA
    Commented May 19, 2020 at 19:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .