Steve Folly
2006-12-05 21:28:12 UTC
I know... I know... Before anyone replies with the obvious...
Yes, I *know* UDP is unreliable and it is not guaranteed that my app will
receive all UDP packets sent to it - routers dropping packets, buffer
overflows, etc.
But, there is just one scenario (below) that took me by surprise, and was
wondering if someone could explain.
In summary - the first fragmented UDP packet received at a host after
reconnecting the network cable is dropped.
More detail...
My set up is 2 hosts (both Windows XP SP2) connected directly to each other
by single cross-over ethernet cable.
1. Disconnect and then re-connect the network cable.
2. Send a single (unfragmented) UDP packet from host A to host B.
3. Host B receives the packet with no problem.
4. Send another unfragmented UDP packet for A to B.
5. Again, host B receives the packet.
4. Disconnect and re-connect the cable again.
5. Send a single (fragmented) UDP packet from A to B.
6. Host B does *NOT* receive the packet.
7. Send another fragmented UDP packet from A to B.
8. Host B now *DOES* receive the packet.
Just to reiterate, I know I must not expect guaranteed delivery of UDP
packets, but it was this one scenario that threw me a bit - since there is
no router involved, and with one 2KB packet, I was hardly expecting an
overflow!
Thanks for any insight.
Yes, I *know* UDP is unreliable and it is not guaranteed that my app will
receive all UDP packets sent to it - routers dropping packets, buffer
overflows, etc.
But, there is just one scenario (below) that took me by surprise, and was
wondering if someone could explain.
In summary - the first fragmented UDP packet received at a host after
reconnecting the network cable is dropped.
More detail...
My set up is 2 hosts (both Windows XP SP2) connected directly to each other
by single cross-over ethernet cable.
1. Disconnect and then re-connect the network cable.
2. Send a single (unfragmented) UDP packet from host A to host B.
3. Host B receives the packet with no problem.
4. Send another unfragmented UDP packet for A to B.
5. Again, host B receives the packet.
4. Disconnect and re-connect the cable again.
5. Send a single (fragmented) UDP packet from A to B.
6. Host B does *NOT* receive the packet.
7. Send another fragmented UDP packet from A to B.
8. Host B now *DOES* receive the packet.
Just to reiterate, I know I must not expect guaranteed delivery of UDP
packets, but it was this one scenario that threw me a bit - since there is
no router involved, and with one 2KB packet, I was hardly expecting an
overflow!
Thanks for any insight.
--
Regards,
Steve.
Regards,
Steve.