<< Click to Display Table of Contents >> Navigation: Technical Informations > Multicast unsubscribe management |
Clarification on the new version of NDASocket v8.0.1.18
The purpose of this release is to try to prevent multicast sockets from being unsubscribed "externally" and transparently by certain network devices.
Two different strategies have been implemented in NDASocket:
1.UDP_SAFETY_MULTICAST_RESET option.
When this parameter is YES, the UDP multicast socket is recreated periodically. This feature uses the parameter UDP_SAFETY_MULTICAST_PERIOD_IN_SECONDS (default = 300) This registry setting defines the useful period for the feature.
This option has been modified in the latest version with the addition of a DROP_MEMBERSHIP statement unsubscribing the old socket just before the ADD_MEMBERSHIP of the new socket. This change is necessary because without this, the ADD_MEMBERSHIP is ignored by the IP stack which rightly considers that we are already subscribed, which makes the option obsolete. This modification has the disadvantage of making the socket "deaf" for a few cycles ...
2.Option FILL_ARP_CACHE.
It allows for multicast sockets to periodically send a small frame composed of the string "ARP" in order to force a new name resolution at the ARP table. This option is enabled by the new registry key FILL_ARP_CACHE_PERIOD_IN_SECONDS (0 = disabled, other value = enabled).
The "ARP" frames are totally ignored by any NDASocket receiving them (they are just visible in the FULL_TRACE logs)
Note: The old option FILL_ARP_CACHE_IF_NEEDED is maintained for historical reasons but probably does not need to be activated on Windows >= 8. It implemented a workaround for an old bug specific to the IP stack (Article number: 233401 "Datagram UDPs may be silently discarded if greater than MTU")