web-dev-qa-db-ja.com

TCP SYNが到達しないTCPサーバー

TCPサーバーが10.10.10.101、ポート2000でリッスンし、Windows7マシンで実行されています。以下はコマンドnetstat -aonの対応する出力行です。

TCP 10.10.10.101:2000 0.0.0.0:0 LISTENING 2340

サーバーが応答するまで、毎秒TCP SYNパケットを送信するFPGAもあります。

FPGAは、静的IPアドレスが10.10.10.101になるように構成されたWindows7マシンのネットワークインターフェイスに直接物理的に接続します。 SYNパケットの送信元IPアドレスは10.10.10.100です。

WireSharkを使用してネットワークインターフェイスで受信されているSYNパケットを確認できますが、TCPサーバーはSYN/ACKに応答しません。私の仮定はTCP =ルーティングの問題のため、サーバーはSYNパケットを認識していません。

次のように2つのルートを手動で追加しました(IF 16は静的IP10.10.10.101のインターフェイスを指します):

route add 10.10.10.100 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16

route add 10.10.10.101 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16

ルートを正しく追加しましたか? TCPサーバーが実際にTCP SYNでIPパケットを転送されていないことを確認するにはどうすればよいですか?何が何であるかをより深く理解するために何ができますか?うまくいかない?

2
Randomblue

私の賭けは、サーバーに [〜#〜] arp [〜#〜] SYNの送信元のIPアドレスのエントリがないため、イーサネットワイヤに応答パケットを配置する方法がないことです。応答を送信するイーサネットハードウェアアドレスがわからないためです。

2
David Schwartz

あなたがあなたの投稿で言ったことに基づいて、私のお金はあなたが実行しているサーバーが間違ったインターフェースにバインドされているということでしょう。

オプションがある場合は、他のマシンで機能するテスト済みのインターフェイスを無効にしてから、サーバーソフトウェアを再起動してみてください。

サーバーマシンへのリモートデスクトップに使用しているために他のインターフェイスを無効化または切断できない場合は、FPGAをそのインターフェイスに接続し、リモートデスクトップ接続をFPGAが現在接続されているインターフェイスに接続してはどうでしょうか。

サーバーソフトウェアを変更できる場合は、バインドされているインターフェイスを確認することをお勧めします-Windowsネットワークバインディングを使用する前に、これらの行に沿って問題が発生しました(間違ったインターフェイスでUDPブロードキャストを送受信する) ..

1
Jon Cage