我正在尝试将一个在Linux机器(内核3.16)上设置的SYN + FIN控制位的TCP段发送到另一个用于scapy的测试目的:
from scapy.all import *
sport = random.randrange(1024, 65535)
dport = 45000
pkt = IP(dst=X.X.X.X)/TCP(sport=sport, dport=dport, flags="SF")
send(pkt)
可以通过发送方上的wireshark查看该段,但是,它似乎没有发送到X.X.X.X,因为该计算机上的wireshark根本看不到该段。 Linux内核是否阻止发送SYN + FIN段(因为段中的这种控制位组合永远不会发生)?否则,这种行为可能是什么原因?如何实现发送SYN + FIN段?
答案 0 :(得分:1)
一般来说,一个细分市场永远不会同时拥有SYN& FIN标志在违反TCP规则的同时设置。这实际上取决于操作系统,但TCP通常会发回RST。
关于此问题有一个类似的主题,请参阅What happens when SYN and FIN flags in TCP headers are both set to 1?