This is the main difference between UDP and TCP. UDP does not stream - data is sent as random, short messages that can arrive out of order or not at all.
UDP data have to be in order! Thats why it is used in VOIP and live streams for example.
Your voice have to transfered in the right order to be understandable.
A question:
Why do you have to specify the size of the package you want to recieve?
UDP is a stream that has no specified lenght... how should you know how long a phone call takes? or how long a livestream is broadcasted?
As he stated if you need them to arrive in order. You have to write code to check the order when it arrives..