Skip to main content
edited body
Source Link
Ron Maupin
  • 101.1k
  • 26
  • 123
  • 199

First part of the question is whether there is a standard that prohibits use of IPv4 unicast addresses with multicast MAC address in an ethernet frame ?

The problem here is that you are dealing with two different standards on different network layers that are defined and maintained by two completely different groups. Ethernet is IEEE 802.3, but IP is defined by the IETF.

The IEEE standard says that a multicast (including broadcast) address cannot be a source address. The RFC for IPv4 multicast also requires a source address to be a unicast address.

The IEEE protocols have no idea about what is in the payload, and it could be IPv4, APRARP, IPX, IPv6, AppleTalk, etc. so ethernet has no idea if the network address is unicast or multicast. IP has no idea what data-link protocol is carrying it, and some data-link protocols have no address and some have no broadcast or multicast, so IP has no idea whether or not the data-link address is a multicast address, or if the data-link protocol even uses any addressing.

A particular host implementation is off-topic here.

Can stream (TCP) sockets work with multicast IP addresses ?

No. TCP sets up a connection between two hosts, and the connection needs both the source and destination IP and TCP addresses to identify the connection. Because an IP multicast address cannot be used a source address, then you will not be able to establish a connection using multicast. A TCP SYN sent to a multicast address would need a SYN/ACK from the multicast address to establish the connection, but the multicast address cannot be the source address, so the SYN/ACK would come from the unicast address of the sending host. That will prevent the establishment of the connection.

First part of the question is whether there is a standard that prohibits use of IPv4 unicast addresses with multicast MAC address in an ethernet frame ?

The problem here is that you are dealing with two different standards on different network layers that are defined and maintained by two completely different groups. Ethernet is IEEE 802.3, but IP is defined by the IETF.

The IEEE standard says that a multicast (including broadcast) address cannot be a source address. The RFC for IPv4 multicast also requires a source address to be a unicast address.

The IEEE protocols have no idea about what is in the payload, and it could be IPv4, APR, IPX, IPv6, AppleTalk, etc. so ethernet has no idea if the network address is unicast or multicast. IP has no idea what data-link protocol is carrying it, and some data-link protocols have no address and some have no broadcast or multicast, so IP has no idea whether or not the data-link address is a multicast address, or if the data-link protocol even uses any addressing.

A particular host implementation is off-topic here.

Can stream (TCP) sockets work with multicast IP addresses ?

No. TCP sets up a connection between two hosts, and the connection needs both the source and destination IP and TCP addresses to identify the connection. Because an IP multicast address cannot be used a source address, then you will not be able to establish a connection using multicast. A TCP SYN sent to a multicast address would need a SYN/ACK from the multicast address to establish the connection, but the multicast address cannot be the source address, so the SYN/ACK would come from the unicast address of the sending host. That will prevent the establishment of the connection.

First part of the question is whether there is a standard that prohibits use of IPv4 unicast addresses with multicast MAC address in an ethernet frame ?

The problem here is that you are dealing with two different standards on different network layers that are defined and maintained by two completely different groups. Ethernet is IEEE 802.3, but IP is defined by the IETF.

The IEEE standard says that a multicast (including broadcast) address cannot be a source address. The RFC for IPv4 multicast also requires a source address to be a unicast address.

The IEEE protocols have no idea about what is in the payload, and it could be IPv4, ARP, IPX, IPv6, AppleTalk, etc. so ethernet has no idea if the network address is unicast or multicast. IP has no idea what data-link protocol is carrying it, and some data-link protocols have no address and some have no broadcast or multicast, so IP has no idea whether or not the data-link address is a multicast address, or if the data-link protocol even uses any addressing.

A particular host implementation is off-topic here.

Can stream (TCP) sockets work with multicast IP addresses ?

No. TCP sets up a connection between two hosts, and the connection needs both the source and destination IP and TCP addresses to identify the connection. Because an IP multicast address cannot be used a source address, then you will not be able to establish a connection using multicast. A TCP SYN sent to a multicast address would need a SYN/ACK from the multicast address to establish the connection, but the multicast address cannot be the source address, so the SYN/ACK would come from the unicast address of the sending host. That will prevent the establishment of the connection.

Source Link
Ron Maupin
  • 101.1k
  • 26
  • 123
  • 199

First part of the question is whether there is a standard that prohibits use of IPv4 unicast addresses with multicast MAC address in an ethernet frame ?

The problem here is that you are dealing with two different standards on different network layers that are defined and maintained by two completely different groups. Ethernet is IEEE 802.3, but IP is defined by the IETF.

The IEEE standard says that a multicast (including broadcast) address cannot be a source address. The RFC for IPv4 multicast also requires a source address to be a unicast address.

The IEEE protocols have no idea about what is in the payload, and it could be IPv4, APR, IPX, IPv6, AppleTalk, etc. so ethernet has no idea if the network address is unicast or multicast. IP has no idea what data-link protocol is carrying it, and some data-link protocols have no address and some have no broadcast or multicast, so IP has no idea whether or not the data-link address is a multicast address, or if the data-link protocol even uses any addressing.

A particular host implementation is off-topic here.

Can stream (TCP) sockets work with multicast IP addresses ?

No. TCP sets up a connection between two hosts, and the connection needs both the source and destination IP and TCP addresses to identify the connection. Because an IP multicast address cannot be used a source address, then you will not be able to establish a connection using multicast. A TCP SYN sent to a multicast address would need a SYN/ACK from the multicast address to establish the connection, but the multicast address cannot be the source address, so the SYN/ACK would come from the unicast address of the sending host. That will prevent the establishment of the connection.