Я реализую передачу данных UDP. У меня есть несколько вопросов о буфере UDP.
Я использую UDPClient для отправки / получения UDP. а моя широкополосная полоса пропускания составляет 150 КБ / с (байтов / с, а не бит / с).
Я отправляю датаграмму 500B на 27 хостов
27 хостов отправляют обратно датаграмму размером 10 КБ, если они получают.
Итак, я должен получить 27 ответов, верно? однако вместо этого я получаю в среднем только 8–12.
Затем я попытался уменьшить размер ответа до 500 Байт, да, я получаю все.
Моя мысль заключается в том, что если все 27 хостов отправят ответ по 10 КБ почти одновременно, входящий трафик будет составлять 270 КБ / с (вероятно), что превышает мою входящую пропускную способность, поэтому происходит потеря. Я прав?
Но я думаю, даже если входящий трафик превышает пропускную способность, должна ли Windows помещать датаграмму в буфер и ждать получения?
Затем я подозреваю, что, возможно, ReceiveBufferSize моего UdpClient слишком мал? по умолчанию это 8092В ??
Я не знаю, в порядке ли я в этом отношении. Пожалуйста, помогите мне.