Funktioniert der port geändert werden, wenn ein server akzeptiert TCP-Verbindung?
Wenn ein client eine Verbindung zu einem server mit TCP, ein neuer socket erstellt, die für die TCP-stream. Muss die Verbindung bleiben auf dem gleichen port die Verbindung hergestellt wurde oder wird es geändert, um einige der anderen Ports?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den neuen sockel ist ein application-level-Konzept eingeführt, weil jede Verbindung muss einen eindeutigen Datei-Deskriptor (auch deutlich vom hören-Datei-Deskriptor), welche Karten auf, aber ist nicht das gleiche wie eine TCP-session. Die Sitzung selbst wird identifiziert durch die Kombination von Quell-und Ziel-Adresse und port. Die Quelle (client) der port ist in der Regel nach dem Zufallsprinzip ausgewählt, während das Ziel (server -) port ist der port hören. Kein zusätzlicher port zugeordnet ist.
<ip1, port1, ip2, port2, tcp>
oder<ip1, port1, ip2, port2, http>
?Dem socket zugeordnet ist der neue Deskriptor zurückgegeben
accept
auf dem server den gleichen port auf der server-Seite der Verbindung als die original-Buchse (unter der Annahme "normaler" Definitionen, in denen der client initiiert die Verbindung). Die neue Buchse wird unterschiedliche client-port-Nummer (remote-port aus der server-Sicht).Dem server den gleichen port verwenden, um zu hören und zu akzeptieren, neue Verbindung und die Kommunikation zu den remote-client.
Lassen Sie mich Ihnen ein Beispiel geben, (in linux-system):
Erste, starten Sie eine
http server
von python:Zweiten Einsatz
nc
Befehl zu verbinden, um diehttp server
hier starten wir zwei client:Verwenden
netstat
zu sehen, die netstate der port 5000:Können Sie sehen, der http-server verwenden port 500
LISTEN
für den client, nachdem ein neuer client mit dem server verbunden, es immer noch verwenden, den port 500 zu communite mit dem AUFTRAGGEBER, sondern mit einer neuen Datei-Deskriptor .