Scapy: sr1 не может обнаружить ответ Я использую scapy для открытия и закрытия TCP-сокета.
from scapy.all import *
seq = random.randint(5000,10000)
sport=random.randint(1024,65535)
dport=7
ip_packet = IP(dst="192.168.1.10")
# SYN
syn_packet = TCP(sport=sport,dport=dport, flags='S', seq=seq, window=9600)
synack = sr1(ip_packet/syn_packet)
#send final ACK
ACK=TCP(sport=sport, dport=dport, flags="A", seq=synack.ack, ack=synack.seq+1, window=9600)
res = send(ip_packet/ACK)
#now lets close the connection...
# FIN
fin_packet = TCP(sport=sport,dport=dport, flags='F', seq=synack.ack, window=9600)
finack =sr1(ip_packet/fin_packet) #hangs
lastack=TCP(sport=sport,dport=dport, flags='A', seq=finack.ack, ack=finack.seq+1)
send(ip_packet/lastack)
Во время открытия сокета первый вызов sr1 (synack = sr1 ...) работает нормально . Пакет SA отправляется обратно, и команда разблокируется.
Во время закрытия сокета вызов sr1 зависает, хотя в wirehark я вижу ответ ACK на пакет FIN.
мысли?