Es würden zwei Verbindungen hergestellt. TCP ist in dieser Weise nicht zustandsbewusst - keine Verbindung hätte ein Konzept für die andere Verbindung.
Zum Beispiel:
Connection 1:
192.168.1.5 sends SYN to 192.168.1.6 on port 80.
Connection 2:
192.168.1.6 sends SYN to 192.168.1.5 on port 80.
Damit dies fortgesetzt werden kann, benötigen beide einen Überwachungsdienst auf Port 80, sodass jeder einen Überwachungsdienst auf TCP für Port 80 hat und dieser Dienst die SYN empfängt und mit einem SYN-ACK antwortet:
Connection 1:
192.167.1.6 responds with SYN-ACK to 192.168.1.5 on port 80
Connection 2:
192.167.1.5 responds with SYN-ACK to 192.168.1.6 on port 80
Denken Sie daran, dass diese Abhördienste auf entgegengesetzten Computern ausgeführt werden. Es ist nicht zu erkennen, dass der andere Computer ebenfalls eine SYN-Bestätigung erhalten hat. Sie sollten daher keine SYN-Bestätigung senden.
Wie das TCP-Protokoll vorschreibt, antwortet die Ursprungsseite, sobald sie die SYN-ACK empfängt, wie folgt:
Connection 1:
192.168.1.5 sends ACK to 192.168.1.6 on port 80.
Connection 2:
192.168.1.6 sends ACK to 192.168.1.5 on port 80.
Sie haben jetzt zwei unabhängige Verbindungen mit abgeschlossenen TCP-Handshakes.
Wie in den Kommentaren von SvW erwähnt: Wenn dies eine schlechte Sache ist, muss die jeweilige Anwendung die Verbindungen initiieren, um festzustellen, ob dieser Zustand vorliegt, und um herauszufinden, welche Verbindung abgebrochen werden muss - dieser Teil ist nicht die Aufgabe von TCP.