Scapy низкая производительность при редактировании большого pcap в linux - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь исправить захват пакетов после жесткого нарезания, когда длина кадра (wirelen) неверна и мешает анализу Wireshark.

Мне удалось сделать это с помощью Scapy, но проблема в том, что это занимает много времени сделать это. Для 236000 пакетов это занимает до 4 минут, когда приложение Tracewrangler на windows занимает 9 секунд с тем же файлом.

Я делаю что-то не так или это просто так?

scapy == 2.4.3, RHEL7.8, Python 3.6.8

from scapy.all import *
from datetime import datetime

time_start = datetime.now()

packets = PcapReader('original_big_file.pcap')
new_cap = PcapWriter("new_big_file.pcap", append=True)

for packet in packets:
    len_delta = packet[IP].len - len(packet[TCP].payload) - 40
    new_wirelen = packet[Ether].wirelen + len_delta
    packet[Ether].wirelen = new_wirelen
    new_cap.write(packet)

time_delta = datetime.now() - time_start
print(time_delta)
...