Захват сетевых пакетов с точной отметкой времени
Я перехватываю сетевые пакеты (транспортный поток) вместе со временем его прибытия, используя библиотеку winpcap. Но я сталкиваюсь с некоторыми проблемами. Когда бы я ни проигрывал аудио на своем компьютере или копировал большой файл из сети, информация о времени моих захваченных пакетов искажалась. Некоторые временные метки пакетов очень близки друг к другу, в то время как другие немного далеки. Есть какое-либо решение (программное / аппаратное обеспечение), чтобы исправить это. Мне нужна точная временная метка сетевых пакетов.
1 ответ
Вы можете повысить приоритет процесса приложения захвата до высокого с помощью диспетчера задач.
Но вам действительно нужно подумать, чего вы пытаетесь достичь и почему. Вы хотите знать, когда пакет поступает в NIC, когда он обрабатывается ядром, когда ядро помещает его в буфер сокета программы захвата, когда программа захвата считывает его из буфера, когда ядро помещает его в буфер сокетов некоторых других программ, или когда другая программа читает его из буфера сокетов?
Все эти временные метки различны, и когда система находится под нагрузкой, различия обязательно станут больше. Информация о времени из программы захвата, скорее всего, будет отражать то время, когда программа захвата считывает пакет из своего собственного буфера сокетов. Увеличение приоритета процесса приложения захвата сделает это более плавным, но сделает обработку пакетов другими приложениями менее надежной.