我一直在使用集成在python中的scapy,最近遇到了一个错误;正常的 SYN 数据包会促使路由器在端口 80 上发送 SA 数据包,它确实如此:
p = sr(IP(dst="192.168.2.254")/TCP(dport=80, flags="S"))
ans, unans = _
ans.summary()
IP/TCP 192.168.2.24:ftp_data> 192.168.2.254:www S ==> IP/TCP 192.168.2.254:www> 192.168.2.24:ftp_data SA
但是,当我在端口 80 上向路由器发送 SYN/ACK 数据包时,它不会向我发送 RST 数据包,而我的 Wifi 扩展器可以:
IP/TCP 192.168.2.24:ftp_data> 192.168.2.1(WIFI扩展器):www SA ==> IP/TCP 192.168.2.1:www> 192.168.2.24:ftp_data R
对这种行为有什么解释吗?
提前致谢
您正在与两个不同的 TCP 堆栈或至少不同的配置进行交互。路由器只需丢弃无效的 SYN/ACK 分段,而不会报告错误。
这是相当常见的做法:使用 RST 进行响应有助于调试,但以静默方式丢弃无效流量可能更安全。