Как переполнение буфера в сокете Linux?

У меня есть приложение для чтения Java, которое читает из многоадресного сокета на 64-битной платформе Linux (2.6.18). Размер сокета был установлен на 2 МБ. Когда считыватель не может прочитать достаточно быстро, сокет «переполняется», то есть пакеты удаляются из буфера.

Я хотел бы знать, как ядро ​​Linux удаляет пакеты из буфера сокетов. Я предполагаю, что буфер сокета сам по себе является буфером FIFO. Однако, если он полон, что происходит? Будет ли отброшен следующий пакет (и содержимое буфера не изменится)? Или новый пакет заменит старый пакет в буфере? Если да, какой пакет (самый старый? Самый младший? Случайно выбранный пакет?)?

Спасибо за понимание.

Ответы на вопрос(2)

Ваш ответ на вопрос