6

ローカル ネットワークで 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 アドレスに送信する必要があります。それを行う方法はありますか、それとも不可能ですか?

前もって感謝します、

ノリアン

4

1 に答える 1

2

Wireshark インストールがリッスンしているネットワーク デバイスは何ですか? 実際のネットワーク カード (Wireshark FAQに従って、イーサネット、wifi、またはその他) でリッスンしていると思われます。コンピューターからそれ自体に送信する場合、OS はもちろんデバイスをバイパスできます (なぜそれを気にする必要がありますか?)。カーネルメモリのTCP / IPスタック内でビットをコピーすることにより、「送信」を行います。

言い換えれば、あなたのパケット問題なく送信されているのではないかと思います。この仮説を検証するには、(たとえば) ブラウザを使用して、ローカル マシン上の存在するポートと存在しないポートにアクセスし、Wireshark がそれらのパケットを認識するかどうかを確認します。

于 2010-07-10T05:22:11.647 に答える