I'm new to the whole UDP thing ('cause everyone loves TCP) and need to ask a few questions about Java's implementation.

I need somebody to tell me whether:

1. The DatagramPackets sent by Java are fragmented automatically due to
network configurations and data size.
2. The DatagramPackets are rearranged to be in the correct frag sequential order by Java after being fragmented automatically due to network configurations and data size... before the receive() call returns the result.
3. If fragmented DatagramPackets that're incomplete are dropped or generate Exceptions when dropped. (Some fragments received, others lost)

I'm concerned that Java drops it silently, or data is not arranged correctly... which would mean that I have to implement a pseudo TCP kind of thing to have both the benefits of UDP, as well as the checking of TCP.