Hi,
I got a problem with a progam sending big UDP frames (size > MTU) if I
specify the sending interface (IP_MULTICAST_IF) and it seems there's an
issue with such case. So I tried Vista's SDK mcastws1 sample to be sure I
use API correctly, and wireshark filtering on multicast address
(229.230.231.234).
No interface specified, using "big" frames (~1542 with payload, > MTU)
mcastws1.exe -s -n 5 -m 229.230.231.234 -z 1500 -u -t 1
Frames are sent.
"Little frames" specifing 172.16.136.1 as sender interface :
mcastws1.exe -s -n 5 -m 229.230.231.234 -i 172.16.136.1 -z 1400 -u -t 1
Frames are sent.
Increasing frames size to 1500
mcastws1.exe -s -n 5 -m 229.230.231.234 -i 172.16.136.1 -z 1500 -u -t 1
Wireshark only see IGMP management frames. Remote listener don't receive
any frames, but a *local listenner got all frames*.
So maybe some layer filter these frames : I disable any other protocol than
IPv4 (QoS may be a potential disturber) without success.
Such experimentation succeed on XP but Vista run the same as 2008. Using a
upper version of winsock (2.0, 2.2) does not change anything.
I also tried without IP_MULTICAST_IF and modifying routing table to ensure
frames have the route I want they have, but it seems there's a
inpredictable delay before the routing is effectively changed for Multicast
or UDP frames, even waiting with NotifyRouteChange.
But routing works for TCP connections (using route.exe which use another
API than XP's route.exe. But NsiX APIs are not documented...).
So what's the problem ? So there's no way to send bid UDP multicast frames
on a specified interface on Windows 6 ??
(fu2 mpwpn)
|