First, IGMP (like ICMP) is a data-link-level protocol that's implemented by the
operating system. It is something that application developers (who live above
the operating system) should never concern themselves with.
You are apparently referring to "source-specific multicast", which is a type of
IP multicast - using a special range of the IP multicast address space - that
also specifies a single IP *source* address (for one-to-many multicast). This
is more easily implemented - especially over wide-area networks - than
traditional many-to-many IP multicast, in which there is no specific multicast
source. Operating systems implement both kinds of IP multicast using the IGMP
protocol, but once again, application developers (like you) don't need to
concern yourself with the workings of the operating system.
But yes, we (the "LIVE555 Streaming Media" software) implements both kinds of
IP multicast: traditional 'any source' multicast (ASM), and 'source-specific
multicast (SSM). You can see several examples of this in the "testProgs" demo
applications (grep for "SSM" if you care).
Now, you were apparently referring to the difference between the following two
sets of socket options (i.e., for "setsockopt()" calls):
IP_ADD_MEMBERSHIP, IP_ADD_SOURCE_MEMBERSHIP (etc.), and
MCAST_JOIN_GROUP, MCAST_JOIN_SOURCE_GROUP (etc.)
These are used for two different APIs (to the *same* IGMP functionality). The
first set of socket options - that we use - are used with an API that uses IP4
IP addresses only (see RFC 3478, section 4). The second set of socket options
are used with an alternative API that uses IP addresses that might be either
IPv4 or IPv6 (see RFC 3478, section 5). (If only IPv4 addresses are being
used, then the two APIs are equivalent, but some older systems might not
support the second API; that's why we don't use it.)
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel