Назад | Перейти на главную страницу

Как измерить потерю буфера сокета UDP в Windows Server 2008 R2?

Есть ли способ просмотреть / измерить потерю буфера сокета UDP в Windows Server 2008 R2? Я пробовал netstat -s и смотрел доступные счетчики perfmon, но мне ничего не показалось в качестве меры размера или потери буфера сокета.

Если нет возможности просмотреть его через какой-либо механизм, предоставляемый Windows, я должен отметить, что сетевая карта на этом сервере представляет собой двухпортовый серверный адаптер Intel Gigabit ET. Может быть, есть какая-то утилита от Intel, которая может показать эту информацию?

заранее спасибо

Под «потерей буфера» я предполагаю, что вы имеете в виду потери, вызванные заполнением буфера. (Потери UDP в сети могут быть обнаружены только путем разработки алгоритма уровня сеанса для отслеживания и подтверждения получения всех пакетов.)

Потери исходящего буфера будут сообщаться на уровне API сокета в виде ошибок, возвращаемых от Отправить() (или его эквивалент), например WSAENOBUFS, WSAEWOULDBLOCK, или WSAEMSGSIZE.

Насколько мне известно, о входящих убытках явно нигде не сообщается. Однако вы можете использовать ioctl(FIONREAD) чтобы определить, сколько данных находится во входящем буфере. Если он почти заполнен, и вы обнаруживаете убытки, можно с уверенностью сказать, что эти убытки являются результатом переполнения буфера.