Using WinpkFilter for UDP receiving

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #14262
    pie
    Participant

      Здравствуйте!
      Принимаю Ethernet UDP поток. В Wireshark на ПК источнике отображаются все пакеты без потерь. В Wireshark на ПК приемнике уже отображаются пакеты с потерями. Эти потери обусловлены работой антивируса и брандмауэра. При их отключении потерь не наблюдается.
      Ищу решение для того, чтобы получить весь трафик без потерь, не отключая антивирус и т.п.

      Пробовал примеры capture, passthru, т.е. использование функции CNdisApi::ReadPacket(PETH_REQUEST pPacket), и получил тот же результат при приеме, что и в Wireshark, – набор пакетов с потерями.
      Есть ли способ при помощи WinpkFilter получить трафик до того, как он будет обработан другими программами и из него будут отброшены пакеты? Если есть, у какому примеру использования можно обратиться?
      Спасибо за ответ!

      #14263
      Vadim Smirnov
      Keymaster

        WinpkFilter использует похожий NDIS-фильтр-драйвер, что и Wireshark. Поэтому если Wireshark видит трафик с потерями, то WinpkFilter будет видеть его точно так же.

        Можно попробовать альтернативный вариант: отправлять пакеты напрямую из WinpkFilter, в обход сетевого стека, и таким же образом принимать их.

        #14264
        pie
        Participant

          отправлять пакеты напрямую из WinpkFilter, в обход сетевого стека, и таким же образом принимать их.

          Можно подробнее о таком сценарии использования WinpkFilter? Возможно, есть какой-то пример?

          #14265
          Vadim Smirnov
          Keymaster

            Примера нет, но WireSock работает схожим образом. Для Wireguard тоннеля он не прогоняет UDP пакеты через TCP/IP stack, а отправляет их напрямую в сеть и так же забирает из сети. Это дает чувствительный выигрыш в скорости.

          Viewing 4 posts - 1 through 4 (of 4 total)
          • You must be logged in to reply to this topic.