Double.Parse("1.234567E-06", System.Globalization.NumberStyles.Float);
Верно, что типичный заголовок IPv4 составляет 20 байтов, а заголовок UDP - 8 байтов. Однако можно включить параметры IP, которые могут увеличить размер заголовка IP до 60 байт. Кроме того, иногда промежуточным узлам необходимо инкапсулировать дейтаграммы внутри другого протокола, такого как IPsec (используется для VPN и т.п.), чтобы направить пакет к месту назначения. Так что, если вы не знаете MTU на вашем конкретном сетевом пути, лучше всего оставить разумный запас для другой информации заголовка, которую вы, возможно, не ожидали. Обычно для этого используется полезная нагрузка UDP размером 512 байт, хотя даже в этом случае не остается достаточно места для IP-заголовка максимального размера.
IPv4 минимальный размер буфера повторной сборки составляет 576, IPv6 имеет его 1500. Вычтите отсюда размер заголовка. См. Сетевое программирование UNIX, автор В. Ричард Стивенс :)
512 - ваш лучший выбор. Оно используется в других местах и представляет собой красивое четное число (половина от 1024).
Теоретический предел (в Windows) максимального размера пакета UDP составляет 65507 байт. Это задокументировано здесь :
Правильный максимальный размер сообщения UDP составляет 65507, что определяется по следующей формуле: 0xffff - (sizeof (IP Header) + sizeof (UDP Header)) = 65535- (20 + 8) = 65507
При этом, большинство протоколов ограничиваются гораздо меньшим размером - обычно 512 или иногда 8192. Вы можете часто безопасно превышают 548, если вы находитесь в надежной сети, но если вы транслируете через Интернет в целом, чем больше вы увеличиваете, тем выше вероятность того, что вы столкнетесь с проблемами и потерями при передаче пакетов.