No reply on ping 224.0.0.1
Solution 1
I spent some time now on investigation this issue and I decided to share what I learned.
As soon as you bind to some multicast group your reference count is incremented. References to 224.0.0.1 is always 0 as it is not possible to bind into this group (at least not on win7).
It seems that multicast ping is disabled on windows. I did not find the answer to that, but I found out that my HP printer is replying on ping 224.0.0.1.
D:\tools>ping 224.0.0.1
Pinging 224.0.0.1 with 32 bytes of data:
Reply from 10.13.72.103: bytes=32 time<1ms TTL=64
Reply from 10.13.72.103: bytes=32 time<1ms TTL=64
Reply from 10.13.72.103: bytes=32 time<1ms TTL=64
Reply from 10.13.72.103: bytes=32 time<1ms TTL=64
There is another option to check if someone is using multicast address and in which group they are. By running igmpquery tool, you get the membership report by all nodes. The tool actually sends an IGMP general query on 224.0.0.1 address, and after that get the response from all nodes:
Source Destination Protocol Length Info
10.11.72.28 224.0.0.1 IGMPv2 60 Membership Query, general
10.11.72.12 224.0.0.252 IGMPv2 60 Membership Report group 224.0.0.252
10.11.72.12 239.255.255.250 IGMPv2 60 Membership Report group 239.255.255.250
10.11.72.28 224.0.19.1 IGMPv2 46 Membership Report group 224.0.19.1
10.11.72.254 224.0.0.2 IGMPv2 60 Membership Report group 224.0.0.2
10.11.72.103 224.0.0.251 IGMPv1 60 Membership Report
The node will respond only if it's listening on some multicast address. The win node can join the 224.0.0.1 group, as long as it is capable of receiving IGMP requests. This can be disabled by setting the registry value IGMPLevel to 0.
By that I explained myself all the questions. The only thing that still bothering me, is that I did not found any official documentation that multicast ping is not supported on windows. Well at list not fully, as it can send the ping requests, but can not send an echo.
Solution 2
it's a very old post but it still does not have an accepted answer. I think we can find the answer on the "https://tldp.org/HOWTO/Multicast-HOWTO-7.html" page, in the section "IGMP version 1.". It states
No reports are sent for the all-hosts group. Membership in this group is permanent.
Gico
Updated on September 10, 2022Comments
-
Gico over 1 year
I am playing with multicast these days and I run into some odd things that I do not understand.
I create a chat multicast clients and everything seems to work ok. After that I read some linux documentation and figured out that by pinging the 224.0.0.1 should return me reply from all nodes that joined to some multicast group. I tried that on xp and on win7 machine. The behavior is the same on both of them. It seems that my client only joins to the group I defined (224.0.19.1). It does not join the 224.0.0.1 group.
From wireshark: [source ip] 224.0.0.22 IGMPv3 54 Membership Report / Join group 224.0.19.1 for any sources
And here is how i set my socket:
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, int.Parse(port)); m_socket.Bind(ipep); IPAddress ip = IPAddress.Parse(mcastGroup); m_socket.SetSocketOption( SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip, IPAddress.Any));
Then i checked in netsh:
C:\Users\user1>netsh interface ip show joins Interface 1: Loopback Pseudo-Interface 1 Scope References Last Address ---------- ---------- ---- --------------------------------- 0 2 Yes 239.255.255.250 Interface 11: LAN Scope References Last Address ---------- ---------- ---- --------------------------------- 0 0 Yes 224.0.0.1 0 1 Yes 224.0.0.252 0 1 Yes 224.0.19.1 0 1 Yes 230.230.230.230 0 2 Yes 239.255.255.250 Interface 15: Local Area Connection* 9 Scope References Last Address ---------- ---------- ---- --------------------------------- 0 0 Yes 224.0.0.1
And as you can notice there is no reference to the 224.0.0.1 address. Of course I did turn off the firewall on both machines.
Now the question is: Is this something not supported by windows? Not supported by .NET? Did I forget to implement something? I would appreciate any help. Thanx.
-
Gico about 10 yearsThat's true. But 224.0.0.1 is special type of group: "224.0.0.1 is the all-hosts group. If you ping that group, all multicast capable hosts on the network should answer, as every multicast capable host must join that group at start-up on all it's multicast capable interfaces." tldp.org/HOWTO/Multicast-HOWTO-2.html
-
Gico over 2 yearsHi thanks for feedback. Initially I used IGMPv3: From wireshark: [source ip] 224.0.0.22 IGMPv3 54 Membership Report / Join group 224.0.19.1 for any sources. Good indication thought. I do not have the environment more to check if there was any issue with diferent IGMP versions. I would try to play with it when time allows.