Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

276
Vistas
¿Cómo la aplicación que se ejecuta en un puerto arbitrario obtiene paquetes de Internet?

mientras estudiaba Protocolos de Internet, se me acaba de ocurrir una pregunta. Por lo general, podríamos asignar cualquier puerto que no sea de uso típico (por ejemplo, 80 para HTTP, 443 para HTTPS) a nuestras aplicaciones. Por ejemplo, cuando uso Node.js Express para construir un servidor simple, podría asignar el puerto 5000 a este proceso como se muestra a continuación.

 const express = require('express') const app = express() const port = 5000 // some code to configure server app.listen(port, () => { console.log(`Server is now running on port ${port}`) })

Mi aplicación Node.js escuchará el puerto 5000. Si mi IP es, por ejemplo, 10.10.10.10 , entonces mi aplicación recibirá una solicitud si alguien llega a 10.10.10.10:5000 . Sin embargo, si se trata de una solicitud HTTP/HTTPS, ¿no deberían los paquetes provenir del puerto 80/443? ¿Alguien puede decirme por qué no es el caso o por qué la aplicación que escucha en diferentes puertos puede recibir paquetes si en realidad provienen de 80/443?

Gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Cuando un paquete sale de su computadora, pasó por todas las capas del modelo OSI. Contiene básicamente seis informaciones específicas.

La dirección IP de destino y de origen (la dirección IP del servidor y su dirección IP respectivamente), el puerto de destino y de origen (el puerto al que está destinado en el servidor y el puerto que utiliza en su máquina) y el MAC de destino y de origen address (la dirección MAC de la máquina a la que está destinado (localmente) y la dirección MAC de su computadora).

En una configuración simple (la computadora detrás de un enrutador), cuando envía este paquete, se redirigirá al enrutador utilizando su dirección MAC. El sistema operativo mantiene una tabla de enrutamiento que tiene información sobre qué hacer con qué dirección IP. Si es "On-Link" o si necesita enviar el paquete a una puerta de enlace predeterminada. Puede imprimir la tabla de enrutamiento de su computadora escribiendo route print en Windows CMD. Si se une a un servidor externo, el paquete se enviará a la puerta de enlace predeterminada. Es posible que deba realizar una solicitud ARP para obtener la dirección MAC de la puerta de enlace predeterminada (o no, dependiendo de la tabla ARP de su computadora en ese momento). Puede ver la tabla ARP escribiendo arp -a en Windows (en CMD).

Una vez que el paquete llega al enrutador, el enrutador elimina la IP de origen (su IP de red interna) y la reemplaza con la IP de su interfaz externa (su IP pública). Hace el enlace entre esas dos direcciones usando la tabla NAT:

Ejemplo de tabla NAT

También elimina el puerto interno y lo reemplaza con un puerto disponible al azar (a la derecha). Significa que 2 máquinas diferentes que acceden al mismo sitio web pueden compartir el mismo puerto local. El puerto de destino permanece igual.

Al final, si recibe una solicitud desde fuera de su enrutador. Su enrutador no tiene una entrada en la tabla NAT para ese paquete porque usted no lo inició. Deberá usar el reenvío de puertos para decirle a su enrutador que reenvíe los paquetes entrantes (destinados a un puerto determinado) a una IP interna determinada.

Algunos enrutadores (como el mío) no admiten la especificación de un puerto externo Y un puerto interno. Entonces, ambos son iguales (no puede especificar un puerto externo versus interno diferente, por lo que no puede reenviar el 80 externo al 5000 interno). En tu caso, necesitarías especificar un puerto externo de 80/443 y un puerto interno de 5000 destinado a 10.10.10.10 para que tu configuración funcione. De lo contrario, no debería funcionar.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda