Вот классное изображение, которое довольно хорошо суммирует:
Когда вы используете srp
, srp1
или sendp
,ожидается, что вы предоставите пакет, который начинается на уровне 2, например:
srp1(Ether()/IP(dst="www.google.com")/ICMP())
Без p
, это слой 3:
sr1(IP(dst="www.google.com")/ICMP())
(За кулисами, Scapyпозаботится об этом)
Уровень 2 позволяет подделывать кадры канала передачи данных (Ethernet, 802.11 ...), но для этого требуется, чтобы вы знали, какой из них использовать.