Tengo algunas preguntas con respecto a la siguiente explicación de puertos que encontré .
La capa de aplicación se comunica con la capa de transporte a través de un puerto. Los puertos están numerados y las aplicaciones estándar siempre usan el mismo puerto.
El uso de un número de puerto permite que el protocolo de transporte (típicamente TCP) sepa qué tipo de contenido está dentro del paquete, lo que le permite saber, en el lado de recepción, a qué protocolo de aplicación debe entregar los datos recibidos.
¿Por qué se usaría un número de puerto para indicar qué tipo de protocolo de datos de aplicación reside dentro cuando no hay una garantía absoluta?
Según tengo entendido, no hay restricciones sobre qué tipo de datos de aplicación envía a través de un puerto (es solo una sugerencia). Además, ¿no se incluyen los datos del protocolo en algún lugar del paquete para este propósito?
Además, ¿qué sucede con los datos si envía HTTP o algún otro tipo de protocolo a un destino del puerto 25 (que espera SMTP)?
Tercero, ¿qué sucede con los datos si los envía a un puerto que no está vinculado con ningún programa y, por lo tanto, no se los escucha?
** Finalmente, si un puerto solo puede vincularse a un solo programa, ¿cómo pueden ejecutarse en mi computadora varios programas que dependen de los datos HTTP entrantes al mismo tiempo? ****
¡Gracias por adelantado!
accept
operación devuelve un nuevo identificador de archivo para la conexión TCP, que trata como cualquier otro identificador de archivo Unix. El resto es solo tuberías simples que mueven datos a través de la red. Sin subpuertos, en datos agregados, nada. Simplemente paquetes simples con esos cuatro valores que identifican la conexión.