No reply on ping 224.0.0.1

10,583

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.

Share:
10,583
Gico
Author by

Gico

Updated on September 10, 2022

Comments

  • Gico
    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
    Gico about 10 years
    That'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
    Gico over 2 years
    Hi 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.