Какой размер буфера достаточен для UDP-случая recvfrom?

я использую recvfrom получить многоадресные данные udp. Насколько я знаю, он получает не более 1 дейтаграммы в вызове (это правильно?). Какой размер буфера будет достаточно для такого вызова тогда? Я предполагаю, что это должно быть ~ MTU UDP для этой машины, но как я могу узнать это во время выполнения?

Я не хочу «переоценивать» размер буфера, потому что на самом деле у меня есть кольцевые буферы под сценой, и я не хочу тратить слишком много дополнительной памяти.

1

Решение

Максимальный размер датаграммы UDP составляет 64 КБ. Если вы не выделяете много буферов, просто используйте этот размер.

0

Другие решения

Максимальный размер IPv4 UDP датаграмма полезная нагрузка составляет 65507 байт, но вы не получите их, кроме как через петлю. Лучшее, что вы можете сделать в реальной сети — это MTU минус 28. Общепринятый практический предел без фрагментации составляет 534 байта.

0

По вопросам рекламы [email protected]