ローカル ネットワークで SYN パケットを送信して Wireshark で監視しようとしましたが、自分の IP アドレスにパケットを送信しようとした場合を除いて、すべて正常に動作しました。実際には送信されていません。Wireshark でパケットもパケットへの応答も表示されません。私のセットアップは、ポート 40508 でリッスンする TCP ソケット サーバーを備えたコンピューター A ( 192.168.0.1 ) と、コンピューター B ( 192.168.0.2 ) です。
コンピューター B i テスト:
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)
それも正常に動作します。SYNパケットとRST / ACKが表示されます(192.168.0.2のポート40508でリッスンするサーバーがないため、RST / ACKを送信します)192.168.0.2からの応答
しかし、コンピューター 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 アドレスにパケットを送信しようとすると、同じ問題が発生しました。
私のプログラムでは、SYN パケットを自分の IP アドレスに送信する必要があります。それを行う方法はありますか、それとも不可能ですか?
前もって感謝します、
ノリアン