¿Qué son los puertos de red internamente?

¿Qué son los puertos de red internamente?

Sé que habrá varios puertos en el host/máquina informática para cada uno de los servicios que alojo en la red.

Pero quiero entender ¿qué son estos puertos internamente?

A continuación se muestra mi comprensión de los puertos de red. Corrígeme si estoy equivocado. Añade detalles para que quede más claro.

Podrían ser una construcción de software, principalmente una cola/búfer dentro del componente de red del sistema operativo, creado dinámicamente cada vez que un servicio de red (servicio web, servicio de transferencia de archivos, etc.) está alojado en la máquina. Y cada uno de los servicios de red estaría escuchando su puerto respectivo (para recibir los datos) y también tendría acceso para escribir en ese puerto (para enviar los datos). [Al igual que un problema de buffer acotado]

Cuando es necesario enviar datos
El servicio de red (Aplicación) realizaría una llamada del sistema al sistema operativo (por ejemplo, enviar()) para escribir los datos en el búfer e informar al protocolo de transporte. De modo que el protocolo TCP/UDP tomaría los datos del búfer, los segmentaría y los pasaría por la pila de la red.

Cuando es necesario recibir datos-
A medida que los datos llegan al host a través de la NIC, los datos se leerán desde algún componente de red de bajo nivel en el sistema operativo y se transmitirán a la pila de red. Y cuando el componente de la capa de transporte del sistema operativo lo lee, coloca los datos en la cola asociada con ese número de puerto en particular. para que la aplicación (servicio de red) que escucha en ese puerto pueda leer los datos.

Respuesta1

Casi, pero no del todo correcto.

  • Enchufesson la construcción de software con buffers (cada socket tiene colas de envío y recepción separadas). Para TCP, cada conexión utiliza un socket independiente.

  • Los puertos son solo etiquetas numéricas que se utilizan para la demultiplexación, lo que ayuda al sistema operativo a elegir qué socket (o qué búfer de recepción) debe recibir un paquete entrante.

Cada socket está asociado con múltiples parámetros (protocolo, direcciones locales y remotas, y puertos locales y remotos) y todos ellos se utilizan al buscar un paquete recibido. (Cuando las direcciones son idénticas, al menos uno de los puertos debe ser diferente. Pero si las direcciones son diferentes, entonces varios sockets pueden usar puertos idénticos).

información relacionada