En Linux, se puede especificar por defecto del sistema reciben tamaño de búfer para los paquetes de red, por ejemplo UDP, usando los siguientes comandos:Especificación UDP recibir tamaño del búfer en tiempo de ejecución en Linux
sysctl -w net.core.rmem_max=<value>
sysctl -w net.core.rmem_default=<value>
Pero me pregunto, ¿es posible para una aplicación (por ejemplo, en c
) para anular los valores predeterminados del sistema especificando el tamaño del búfer de recepción por socket UDP en tiempo de ejecución?
justo lo que estaba buscando :) También me pregunto si especifico el tamaño del buffer en un valor pequeño, ¿será estático? ¿O el sistema redimensionará dinámicamente el buffer para manejar la presión del tráfico, si hay alguno? –
He ampliado un poco mi respuesta para mencionar el autotuning TCP de Linux; en Linux, si el autoajuste está habilitado, probablemente no deberías ajustar el tamaño del buffer usando 'setsockopt'; pero en otros sistemas, es posible que aún quieras hacerlo. –
autotuning se aplica solo a TCP o se aplica a TCP y UDP? – kumar