You have correctly entered the header information of the TCP packet. It contains:
Client IP | Client Port | Server IP | Server Port | Protocol
Or, more correctly (since the client / server gets confused when you think about bidirectional migration):
Source IP | Source Port | Destination IP | Destination Port | Protocol
Multiple connections to the same server port will come from different ports on the client. An example would be:
0.0.0.0:45000 -> 1.1.1.1:80 0.0.0.0:45001 -> 1.1.1.1:80
The difference in client ports is sufficient to eliminate the ambiguity of the two sockets and, therefore, has two separate connections. The server does not need to open another socket on another port. It receives the socket from the accept method, but it is assigned to the same port and is now the route to the newly accepted client.
FTP, on the other hand, has a model where the server will open a new unprivileged port (> 1023) and send it back to the client to connect the client (this is called "Passive FTP",). This is a solution to problems when the client is behind the firewall and cannot accept incoming data connections from the server. However, this does not apply to a typical HTTP server (or to any other standard socket implementation). This is a feature that overlays FTP.
source share