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 16
bezieht 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?
netstat
Befehl 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.Antworten:
Ich wette, der Server hat keinen ARP- Eintrag für die IP-Adresse, von der die SYN stammt, und kann daher kein Antwortpaket auf die Ethernet-Leitung übertragen, da er nicht weiß, an welche Ethernet-Hardwareadresse die Antwort gesendet werden soll.
quelle
Mein Geld wäre, basierend auf dem, was Sie in Ihrem Beitrag gesagt haben, dass der Server, den Sie betreiben, an die falsche Schnittstelle gebunden ist.
Wenn Sie die Option haben, deaktivieren Sie die von Ihnen getestete Schnittstelle, die von anderen Computern aus funktioniert, und starten Sie die Serversoftware neu.
Wenn Sie die andere Schnittstelle nicht deaktivieren oder trennen können, weil Sie sie für den Remotedesktop auf dem Servercomputer verwenden, können Sie das FPGA an diese Schnittstelle und Ihre Remotedesktopverbindung an die Schnittstelle anschließen, mit der das FPGA derzeit verbunden ist.
Wenn Sie in der Lage sind, die Serversoftware zu ändern, würde ich vorschlagen, zu überprüfen, an welche Schnittstelle (n) sie gebunden ist. Bei der Verwendung von Windows-Netzwerkbindungen (Senden / Empfangen von UDP-Broadcasts über die falsche Schnittstelle) gab es zuvor Probleme in dieser Richtung. ..
quelle