Ich habe einen TCP-Server am 10.10.10.101, Port 2000, der auf einem Windows 7-Computer ausgeführt wird. Unten ist die entsprechende Ausgabezeile für den Befehl netstat -aon:
TCP 10.10.10.101:2000 0.0.0.0:0 LISTENING 2340
Ich habe auch ein FPGA, das jede Sekunde ein TCP-SYN-Paket sendet, bis der Server antwortet.
Das FPGA stellt eine physische Verbindung zu einer direkten Netzwerkschnittstelle auf dem Windows 7-Computer her, für die die statische IP-Adresse 10.10.10.101 konfiguriert wurde. Die Quell-IP-Adresse der SYN-Pakete lautet 10.10.10.100.
Ich kann sehen, dass die SYN-Pakete mit WireShark über die Netzwerkschnittstelle empfangen werden, aber der TCP-Server antwortet nicht auf SYN / ACK. Ich gehe davon aus, dass der TCP-Server die SYN-Pakete aufgrund von Routing-Problemen nicht sieht.
Ich habe zwei Routen wie folgt manuell hinzugefügt ( IF 16bezieht sich auf die Schnittstelle mit statischer IP 10.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
Habe ich die Routen korrekt hinzugefügt? Wie kann ich sicherstellen, dass der TCP-Server die IP-Pakete tatsächlich nicht mit dem TCP-SYN weiterleitet? Was kann ich tun, um mehr Einsicht in das zu bekommen, was falsch läuft?
netstatBefehl bestätigt (siehe aktualisierte Frage). Wenn Sie eine andere Netzwerkschnittstelle (mit einer anderen IP-Adresse) verwenden, funktioniert der TCP-Server auch von einem anderen Computer im Netzwerk aus wie erwartet.