¿Cómo funciona realmente Port no en TCP?

Es solo

Y esto es todo lo que necesitas.

El puerto de destino debe ser el mismo. Por lo general, se utiliza un puerto estándar 80 para http. Si es diferente, especifique el puerto en la url. Como http: // localhost: 8080

Con respecto al puerto de origen, en el mismo sistema 2 los procesos no pueden usar el mismo puerto. Cuando el navegador establece una nueva conexión TCP, solicita un puerto libre del sistema. Y una vez que se asigna un puerto libre a un proceso, ningún otro proceso puede usarlo.

Para pestañas en el mismo navegador, dependería de la implementación del navegador.

  • Si el navegador se ejecuta como un solo proceso (es decir, no ve múltiples identificadores de proceso para diferentes pestañas), entonces es responsabilidad del código del navegador gestionar que cada pestaña se conecte a través de un puerto diferente.
  • Si el navegador crea un nuevo proceso para cada pestaña, entonces no es muy diferente de dos navegadores. Y el sistema no asignará el puerto ya en uso a una nueva pestaña.

Una regla básica simple es que una conexión en cualquier red es única y puede identificarse mediante src ip, src port, dest ip y dest port

NOTA: No confunda entre socket y puerto. En general, el socket es una combinación de puerto + ip. Encuentra más información aquí:
http: // … http: //stackoverflow.com/questio…
http: // … ¿Diferencia entre puerto y socket?

Por favor, corrígeme si me falta algo.

El cliente durante cada solicitud abre un socket de cliente en un puerto aleatorio (no especificado como estándar para otros servicios) y coloca el número de puerto en el puerto src (en el encabezado de la capa de transporte) y el puerto dst será el puerto del servidor (generalmente servicio estándar puertos). Entonces, tan pronto como el paquete alcanza el dst por enrutamiento ip, la capa tcp busca el puerto de destino y asocia el paquete al proceso correcto en la capa de aplicación (por ejemplo, 80 para apache, 25 para postfix …). La respuesta coloca el puerto dst como el puerto del cliente (que determinó al azar y lo colocó como puerto src),
Reg la pregunta sobre cómo funciona la pestaña del navegador. abra algunas pestañas en el navegador y pruebe netsat -an | grep: 80 en sistemas unix para ver las conexiones

mi sistema operativo es algo como esto

Entonces tcp 0 0 172.16.154.227:58088 23.23.156.58:80 ESTABLECIDO
tcp 0 0 172.16.154.227:42508 74.125.142.95:80 ESTABLECIDO
tcp 0 0 172.16.154.227:42252 74.125.225.132:80 ESTABLECIDO
tcp 0 0 172.16.154.227:52331 91.189.94.25:80 ESTABLECIDO
tcp 0 0 172.16.154.227:58094 23.23.156.58:80 ESTABLECIDO
tcp 0 0 172.16.154.227:45172 54.240.168.2:80 ESTABLECIDO
tcp 0 0 172.16.154.227:38982 74.125.225.143:80 ESTABLECIDO
tcp 0 0 172.16.154.227:54578 74.125.225.134:80 ESTABLECIDO
tcp 0 0 172.16.154.227:39013 74.125.225.143:80 ESTABLECIDO
tcp 0 0 172.16.154.227:58051 23.23.156.58:80 ESTABLECIDO

donde src ip es mi sistema (172.16.154.227) usa puertos aleatorios para cada solicitud y la ip de destino son (23.x-quora, 74 … x google) usando puertos de servicio estándar. Como se mencionó anteriormente, el socket del servidor acepta más de un cliente, ya que habrá un proceso generado para aceptar la solicitud del cliente

No
no puede comunicarse con múltiples navegadores o pestañas a un servidor utilizando el mismo puerto de origen al mismo tiempo.