В коде (строке 830) устанавливается размер исходящего буфера сокета (с которого отправлятся udp-пакеты) равный размеру отправляемого udp пакета (38 байт). Не могу понять - зачем это вообще нужно?
Для экономии памяти, очевидно. Возможно было актуально в какой-то момент времени, судя по остальным комментариям в этом файле.
может ли быть буфер настолько маленьким (какого вообще его минимальное значение)?
Как трактовать опции сокетов -- это внутреннее дело ядра. В тегах стоит linux, линуксовый
man 7 socket
говорит следующее:
SO_SNDBUF
Sets or gets the maximum socket send buffer in bytes. The kernel doubles this value
(to allow space for bookkeeping overhead) when it is set using setsockopt(2), and this
doubled value is returned by getsockopt(2). The default value is set by the
/proc/sys/net/core/wmem_default file and the maximum allowed value is set by the
/proc/sys/net/core/wmem_max file. The minimum (doubled) value for this option is 2048.