Я заметил разницу в производительности между sendto и recvfrom (UDP). Я отправляю около 100 Кбайт с сервера на клиент, используя WiFi (расчетная пропускная способность около 30 Мбит/с в обе стороны), а время отправки составляет около 4-5 мс (в зависимости от обстоятельств, но это значение сравнимо с идеальным). , 3 мс). На клиенте время приема в десять-пятнадцать раз больше, вроде 50-60мс. Я хотел бы, чтобы два истекших времени были очень похожи. Есть идеи?
Различная производительность между sendto и recvfrom
Ответы (1)
а время отправки около 4-5 мс (как бывает, но это значение сравнимо с идеальным, 3мс)
30 Мбит/с (где b означает биты) примерно (плюс-минус с учетом заголовков и т. д.) равно 3 МБ/с (где B означает байты). Для передачи 100 КБ требуется примерно 30 миллисекунд.
sendto
возвращается, как только запишет все данные в локальный буфер сетевого стека отправляющей машины. recv
, очевидно, должен ждать передачи данных, включая задержку и прочее, необходимое для всех уровней протоколов.
person
JeremyP
schedule
29.07.2013
Извините за плохую оценку времени отправки. Итак, если прошедшее время 4-5 мс на самом деле является временем записи данных в локальный буфер, sendto возвращает, даже если все данные фактически не отправлены?
- person user2485792; 29.07.2013