none
No UDP multicast traffic over WLAN adapter after re-connect RRS feed

  • Question

  • Hi,

    we have a software that communicates via UDP multicast packets over WLAN to our devices. These devices offer a hosted network, where a PC client can connect to. After a successful connection, the PC client sends an UDP multicast packet and the device (same UDP multicast domain) responds with another UDP multicast packet. Finally the PC client disconnects from the hosted network and could connect to another device.

    We did some tests on different operating systems (Windows Vista, Windows 7 32/64bit, Windows 8 64bit, Windows 8.1 64bit and Windows 10 64bit) and had a problem with Windows 8.1 (Version 6.3.9600). 

    When a PC client, on Windows 8.1, connects to a device over the hosted network, then all UDP multicast packets are send and received, as expected. When disconnecting and re-connecting to the same device, no UDP multicast packets are received any more on the PC client. Wireshark showed, that the PC sends out UDP multicast packets and the device sends a response, but on Windows 8.1 no UDP multicast packet arrives. The same reply arrives at all other PC clients, which are running on different OS than Windows 8.1.

    When the WLAN adapter gets disabled and re-enabled, then everything works fine for the first run until the PC client disconnects and re-connects again. 

    We figured out a workaround for the problem, but it seems to be an ugly hack. When joining another UDP multicast group and leave it immediately (setsockopt IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP) then the problem is gone and the UDP packets arrive at the PC, even after a disconntect. 

    This problem is reproducible with socat (www.dest.unreach.org/socat). The following command runs on the device (or PC) and serves as an echo server.
    socat udp4-recvfrom:8888,ip-add-membership=234.0.0.1:wlan0,fork udp4-datagram:234.0.0.1:8888,so-bindtodevice=wlan0,ip-multicast-loop=0

    On Windows 8.1 the following command can be used to send an UDP multicast packet and wait for the response:
    echo TESTMESSAGE | socat.exe - udp4-datagram:234.0.0.1:8888,ip-multicast-loop=0,ip-add-membership=234.0.0.1:192.168.247.2,ip-multicast-if=192.168.247.2

    Would be great to know if someone else detected such a problem.

    Regards,
    Bertram

    Friday, April 15, 2016 6:51 AM