Как отметил Гоз, существует очередь пакетов.Фактически, существует более одного в разных местах всего конвейера, который заканчивается в вашем приложении.Обычно на NIC есть несколько буферов, а некоторые управляются ядром.Буферы ядра часто могут быть измерены для отдельных сокетов с помощью setsockopt ().
Как уже отмечал Гоз, UDP-пакеты могут быть потеряны по пути к вам, или они могут работать в другом порядке.Если вам нужны как надежность, так и порядок, и если вы не можете использовать TCP вместо этого, вам придется реализовать какой-то протокол, который будет обеспечивать оба поверх UDP, например протокол скользящего окна .