我有一个Java阅读器应用程序,它在Linux 64位平台(2.6.18)上从多播套接字中读取数据。此套接字大小已设置为2 MB。当阅读器无法快速读取数据时,套接字会"溢出",即缓冲区中的数据包会被丢弃。
我想知道的是Linux内核如何将数据包从套接字缓冲区中丢弃。我认为套接字缓冲区本身就是一个FIFO缓冲区。但是,如果它已满,会发生什么情况?下一个数据包会被丢弃吗(并且缓冲区内容不会改变)?还是新数据包会替换缓冲区中的旧数据包?如果是后者,哪个数据包会被替换(最老的?最年轻的?随机选择的?)?
感谢任何见解。