Скажем, я создал собственный слой в scapy, например
class MyProtocol(Packet):
name = "MyProtocol"
fields_desc = [ IntField("layerLength", 8), # always the same
ShortField("numberA", 4),
ShortField("numberB", 2),
IntField("numberC", 2) ]
Если бы у меня было два устройства, одно отправляло пакеты, содержащие этот самодельный слой наверху, а другое - прослушивало сетевой трафик - как могло бы второе устройство определить, содержит ли один из прослушанных пакетов этот специальный уровень или нет? Scapy уже распознает множество слоев, но как мне заставить его распознавать мой собственный слой?
Я знаю, что могу просто взять необработанную часть каждого пакета, проанализировать ее на уровне байтов и, например, проверить, действительно ли поле "layerLength" содержит общую длину слоя, или добавить какое-то специальное уникальное поле, но это кажется слишком сложно, потому что Скапи уже знает некоторые слои. Так есть ли способ заставить Скапи распознавать определенный слой?