Разница между количеством пакетов PyShark и TShark - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь запустить два разных процесса tshark со следующим скриптом python.

import pyshark
import subprocess

packet_count_pyshark = 0
packet_count_tshark = 0

tsharkCall = ["tshark", "-i", "Wi-Fi", "-w", "tshark_capture" + ".pcap"]
print("Starting TShark")
tshark_process = subprocess.Popen(tsharkCall, stderr=subprocess.DEVNULL)
print("Starting Pyshark")
capture = pyshark.LiveCapture(interface='Wi-Fi')
for packet in capture.sniff_continuously():
    packet_count_pyshark += 1
    print("Pyshark : ", packet_count_pyshark)

После выполнения скрипта я открыл 10 различных видео YouTube с браузера, чтобы создать огромный трафик. После ожидания около 30 секунд. Я обрезал поток программы с помощью CTRL + C. Я видел, что число последних пакетов, захваченных pyshark, равно 6672, однако количество пакетов в файле tshark pcapng равно 63916. Между ними существует огромный разрыв. Интересно, из чего это произошло? Я делаю / понимаю что-то не так? Любая идея приветствуется. Проблема также присутствует на github> https://github.com/KimiNewt/pyshark/issues/375

Моя версия Pyshark - 0.4.2.9, а моя версия TShark - TShark (Wireshark) 3.0.0 (v3.0.0-0-g937e33de)

1 Ответ

0 голосов
/ 14 октября 2019

Я не уверен, но я думаю, что tshark работает намного быстрее, чем pyshark, точка, которую вы печатаете во время цикла, вероятно, занимает много времени, что приводит к тому, что pyshark отбрасывает пакет, потому что буфер NIC заполняется,а также они начинаются в разное время, что также может привести к разнице

...