Hi Pawel,
"EatherReal" is a variation on a on a class of application commonly called "sniffers".
I co-authored an early version of a sniffer back in early 80' (Sniffer copyright 1983).
At that time (and apperently to this day) there was an option to set set the ethernet port into a "promiscuous" (Pro-mis-cu-ous, just incase this word gets filered) mode.
In the "P" mode the network interface does NOT filter out packets based on protocol type but asserted an interupt that would run a interupt service routine that we use to to transfer the data buffer off so we could write the data to disk (computer were to slow back then to decode and display on the fly).
So in Sniffers the UDP part of the stack never needs to get involved AND all data is handle the same, ie grab what you can as fast as you can.
To go beyond what I have said above I would have had to have dug into the internals of the UDP stack as imlemented on the OS you are using.
The last time I got that deep it was DECnet and LAT running on a VMS OS.
Let me summarize by saying what you have found.
UDP is an unreliable communications protocol.
If your data absolutely has to get there, use TCP.
Have fun,
Ben