2010-05-30 32 views
7

Mi pregunta es si la máquina A tiene dos direcciones IP X, Y.Relación entre el puerto y la dirección IP

¿Se puede abrir el puerto 80 dos veces, como X:80 y Y:80?

Digamos que el puerto es único por máquina o por IP?

+1

Probablemente debería estar en serverfault.com, pero es una pregunta interesante para los programadores que se ocupan de este tipo de cosas. :) – JYelton

Respuesta

6

Una dirección IP especifica una interfaz de red (piense en un puerto ethernet en su computadora o su conexión WiFi). Un número de puerto especifica el proceso para enrutar los mensajes que llegan a una interfaz de red determinada. Por lo tanto, puede usar el mismo número de puerto con diferentes direcciones IP, ya que especifican el puerto en el que se escuchará en esa interfaz determinada. Sin embargo, tenga en cuenta que incluso puede reutilizar un número de puerto con la misma dirección IP si utiliza la opción SO_REUSEADDR al invocar la función bind.

+0

Interesante ... –

3

Es único por IP. Cuando bind, (esa es la parte importante), se vincula a una IP y un número de puerto, no una máquina y un número de puerto. Para enlazar a todos los destinatarios puede usar algo como INADDR_ANY.

Si desea vincular solo a algunas direcciones, debe hacerlo "a mano". Cuando el sistema operativo recibe un paquete, primero comprueba que es el destino. Luego lo reenvía al programa que tiene requested (mediante enlace, a través de conexión, etc.) que él es el destino de los paquetes con ese IP específico y número de puerto.

1

puerto e IP tienen 1 a 1 asignación.

Entonces, sí, podría tener el puerto 80 abierto en dos direcciones IP diferentes en la misma máquina.

Cuestiones relacionadas