¿Cómo se desborda un búfer de socket de Linux?

Tengo una aplicación de lector Java que lee desde un socket de multidifusión en una plataforma Linux de 64 bits (2.6.18). El tamaño del socket se ha establecido en 2 MB. Cuando el lector no puede leer lo suficientemente rápido, el socket se desborda, es decir, los paquetes se caen del búfer.

Lo que me gustaría saber es cómo el kernel de Linux elimina los paquetes del buffer del socket. Supongo que el búfer de socket en sí es un búfer FIFO. Sin embargo, si está lleno, ¿qué pasa? ¿Se descartará el siguiente paquete (y el contenido del búfer no cambia)? ¿O el nuevo paquete reemplazará un paquete viejo en el búfer? En caso afirmativo, ¿qué paquete (el más antiguo ?, el más joven ?, ¿un paquete elegido al azar?)?

Gracias por cualquier idea.

Respuestas a la pregunta(2)

Su respuesta a la pregunta