6

我尝试在本地网络上发送 SYN 数据包并使用 Wireshark 监控它们,一切正常,除了当我尝试将数据包发送到我自己的 IP 地址时,它“似乎”工作,因为它说 Sent 1 packet,但它是没有真正发送,我在 Wireshark 中看不到数据包,也看不到数据包的任何答案。我的设置是一台计算机 A ( 192.168.0.1 ) 和一台计算机 B ( 192.168.0.2 ),其 TCP 套接字服务器在端口 40508 上侦听。

在计算机 B 我测试:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)

它工作正常,我看到 Wireshark 上的 SYN 数据包和来自 192.168.0.1 的 SYN/ACK 响应

在计算机 A 我测试:

ip=IP(src="192.168.0.1",dst="192.168.0.2")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)

它也可以正常工作,我看到来自 192.168.0.2 的 SYN 数据包和 RST/ACK(没有服务器在 192.168.0.2 上的端口 40508 上侦听,因此它发送 RST/ACK)响应

但是当我尝试使用计算机 A 时:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)

Wireshark 中什么也没有出现,好像数据包从未发送过,但它像其他测试一样说:发送了 1 个数据包。并且没有返回任何错误。如果我在计算机 B 上运行相同的测试并尝试将数据包发送到它自己的 IP 地址,我会遇到同样的问题。

对于我的程序,我真的需要向我自己的 IP 地址发送一个 SYN 数据包,有没有办法做到这一点还是不可能?

提前致谢,

诺利安

4

1 回答 1

2

您的 Wireshark 安装正在侦听哪些网络设备?我怀疑它正在侦听实际的网卡(以太网、wifi 或其他,根据 Wireshark常见问题解答) - 当从计算机发送到自身时,操作系统当然可以绕过设备(为什么要打扰它?)并且只是通过在内核内存中的 TCP/IP 堆栈中复制位来执行“发送”。

换句话说,我怀疑您的数据包发送正常,只是Wireshark 可能看不到它。为了验证这个假设,您可以尝试(例如)使用浏览器访问本地计算机上存在和不存在的端口,并查看 Wireshark 是否看到这些数据包。

于 2010-07-10T05:22:11.647 回答