Сегодня мне передали CSV-файл с записями сетевого потока на 300 миллионов записей, и моя цель - преобразовать данные сетевого потока в синтезированные пакеты любыми необходимыми средствами.После небольшого исследования я решил, что Scapy станет невероятным инструментом для этого процесса.Я возился с некоторыми командами и пытался создать точные пакеты, которые отображают эти данные сетевого потока, но я изо всех сил и был бы очень признателен за помощь кого-то, кто баловался с Scapy раньше.
Здесьпример записи из моего набора данных :
1526284499.233,1526284795.166,157.239.11.35,41.75.41.198,443,55915,6,1,24,62,6537,1419,1441,32934,65535,
Ниже представлено значение, разделенное запятыми :
Начальная временная метка (формат эпохи): 1526284499.233
Конечная временная метка (формат эпохи): 1526284795.166
IP-адрес источника: 157.239.11.35
IP-адрес назначения: 41.75.41.198
Номер протокола заголовка IP: 443 (HTTPS)
Номер порта источника: 55915
Номер порта назначения: 6 (TCP)
TOSЗначение в заголовке IP: 1 (FIN)
Флаги TCP: 24 (ACK и PSH)
Количество пакетов: 62
Количество байтов: 6537
Входной порт маршрутизатора: 1419
Выход маршрутизатораПорт: 1441
Источник автономной системы: 32934 (Facэлектронная книга)
Целевая автономная система: 65535
My Current Scapy Представление этой записи :
>>> size = bytes(6537)
>>> packet = IP(src="157.240.11.35", dst="41.75.41.200", chksum=24, tos=1, proto=443) / TCP(sport=55915, dport=6, flags=24) / Raw(size)
packet.show () :
###[ IP ]###
version= 4
ihl= None
tos= 0x1
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= 443
chksum= 0x18
src= 157.240.11.35
dst= 41.75.41.200
\options\
###[ TCP ]###
sport= 55915
dport= 6
seq= 0
ack= 0
dataofs= None
reserved= 0
flags= PA
window= 8192
chksum= None
urgptr= 0
options= []
###[ Raw ]###
load= '6537'
Моя путаница :
Честно говоря, я не уверен, правильно ли это.Что меня смущает, так это то, что заголовок протокола IP равен 443, что указывает на HTTPS, однако порт назначения равен 6, что указывает на TCP.Поэтому я не уверен, должен ли я включать TCP или нет, или если включение атрибута proto IP является бесплатным.Кроме того, я не уверен, является ли Raw () правильным способом для включения размера каждого пакета, не говоря уже о том, правильно ли я определил размер.
Пожалуйста, сообщите мне, гдеЯ ошибся или, если действительно, чудесным образом создал идеальный синтезированный пакет для этой конкретной записи.Большое вам спасибо!