¿El puerto cambia cuando el servidor acepta una conexión TCP?

Cuando un cliente se conecta a un servidor utilizando TCP, se crea un nuevo socket para la transmisión TCP. ¿La conexión permanece en el mismo puerto donde se realizó la conexión o cambia a otro puerto?

El nuevo socket es un concepto de nivel de aplicación introducido porque cada conexión establecida necesita un descriptor de archivo único (también distinto del descriptor de archivo de escucha), que se asigna a, pero no es lo mismo que, una sesión TCP. La sesión en sí se identifica por la combinación de la dirección y el puerto de origen y destino. El puerto de origen (cliente) generalmente se elige al azar, mientras que el puerto de destino (servidor) es el puerto de escucha. No se asigna ningún puerto adicional.

El socket asociado con el nuevo descriptor devuelto por accept en el servidor usará el mismo puerto en el lado del servidor de la conexión que el socket original (asumiendo las definiciones “normales” donde el cliente inicia la conexión). El nuevo socket tendrá un número de puerto de cliente diferente (el puerto remoto desde el punto de vista del servidor).