English 中文(简体)
IPv6 multicast addresses: Is the Group ID field effectively 112 bits or 32 bits?
原标题:

I m trying to understand the rules for choosing an IPv6 multicast address Group ID, and the RFC seems somewhat inconsistent. For example, in RFC 2373 section 2.7 this diagram is shown:

|   8    |  4 |  4 |                  112 bits                   |
+------ -+----+----+---------------------------------------------+
|11111111|flgs|scop|                  group ID                   |
+--------+----+----+---------------------------------------------+

... but then in section 2.7.2 it shows this:

|   8    |  4 |  4 |          80 bits          |     32 bits     |
+------ -+----+----+---------------------------+-----------------+
|11111111|flgs|scop|   reserved must be zero   |    group ID     |
+--------+----+----+---------------------------+-----------------+

So my question is, are the upper 80 bits of the Group ID field usable or not? If they are usable, is it only under certain circumstances (e.g. when using non-Ethernet networking technology?) What problems should I expect to experience if I set these bits when multicasting over an Ethernet LAN?

最佳回答

According to Stevens UNP, Volume 1, Third edition, there are two formats defined for IPv6 multicast addresses, the flags field differentiates between them (flags=00PT):

  • if P = 0 then it s normal multicast address. 80 bits are all zero, the T flag tells between well-known and transient addresses,
  • if P = 1 then this is a unicast-based address, 80 bits contain length and value of the unicast prefix.

The book mentions RFC 3306 for the latter.

RFC 3307 [Haberman 2002] describes the allocation mechanism for the low-order 32 bits of an IPv6 group address (the group ID), independent of the setting of the P flag.
问题回答

Nikolai s description of the P bit in IPv6 multicast addresses is correct, but I don t think that it s the basis of the difference between the two addressing sections in RFC2373.

Section 2.7.2 describes the recommendation to use multicast addresses that use the lower 32 bits as they will map to unique multicast ethernet MAC addresses.

IPv6 multicast addresses map to an ethernet MAC address in the following format (described in rfc2464): 33:33:xx:xx:xx:xx, where xx:xx:xx:xx is the lower 32 bits of the IPv6 multicast address.





相关问题
How to use multicast on a multi-homed system (Java, Linux)

This is in Java, but I can always revert to C via JNI if needed. I have a system with two NICs, each connected to a distinct subnet. I want to use multicast (in particular, SDP) to discover other ...

.NET Alternatives to UDP Multicast

I am looking for an alternative to using UDP multicast on the .NET Framework and am looking for suggestions. I need to send messages to several web servers running quite a few ASP.NET applications. ...

Collection replication using multicast

need a technology (open source or build myself) usable from C# that allows me to in one process maintain a “master” collection of objects (says a Dictionary of Customer objects) and in n other “client”...

Determine the remaining TTL of a multicast packet in Java

If I have a Java program that listens to multicast data, how can I tell what the remaining TTL of the incoming datagram is? I know how to set the TTL on the sending multicast socket, but I want to ...

multicast ip address - blocked in call to recvfrom

i am writing a simple multicast application. i intend to run it on localhost. i have done the following: char *maddr; . . . sendfd = socket(...); struct sockaddr_in sasend; sasend.sin_family = ...

热门标签