У меня есть приложение для чтения Java, которое читается из многоадресного сокета на 64-битной платформе Linux (2.6.18). Размер гнезда был установлен в 2 МБ. Когда читатель не может читать достаточно быстро, сокет "переполняется", то есть пакеты удаляются из буфера.
Что я хотел бы знать, так это то, как ядро Linux выводит пакеты из буфера сокета. Я предполагаю, что сам сокет-буфера является буфером FIFO. Однако, если полно, что происходит? Отбросит ли следующий пакет (и содержимое буфера не изменится)? Или новый пакет заменит старый пакет в буфере? Если да, какой пакет (самый старый?, Самый младший?, Случайно выбранный пакет?)?
Спасибо за понимание.