¿Por qué las conexiones p2p no necesitan puertos abiertos?

¿Por qué las conexiones p2p no necesitan puertos abiertos?

Quiero decir, si alguien descarga un archivo mío, ¿no significa eso que soy el anfitrión y él se está conectando conmigo?

¿O me estoy conectando con él?

De cualquier manera uno de nosotros necesita un puerto abierto, ¿no?

No tengo ningún puerto abierto de enrutamiento a mi computadora en mi enrutador, entonces, ¿cómo acepto conexiones?

Respuesta1

Si su enrutador admite UPnP, es posible que la aplicación p2p que está utilizando esté abriendo puertos en el enrutador sin necesidad de configurar manualmente los puertos abiertos.

Wikipedia UPnP

De lo contrario, es posible que su aplicación esté utilizando un proceso llamado recorrido NAT, que es común en aplicaciones p2p y aplicaciones de escritorio remoto como GoToMyPC o Hamachi. Esta tecnología está diseñada para funcionar a través de la traducción de direcciones de red, que se considera un firewall, pero también es un medio para tener una red privada que comparte una única dirección IP en Internet (la que usa su enrutador).

Recorrido NAT de Wikipedia

Respuesta2

En protocolos como BitTorrent, siempre que uno de los dos lados de la conexión tenga el reenvío de puertos activado en el lado abierto, siempre actuará como host. Si ambos lados están abiertos, cualquiera de los extremos podría ser el "anfitrión". Si ambos lados están cerrados, necesita un tercero que tenga una conexión abierta para negociar la conexión, así es como lo hace Skype (el tercero se llama Supernodo)

Aquí hay una buena publicación de blog.explicando cómo Skype usa los Supernodos y cómo los usa para sortear los firewalls.

Respuesta3

Compararía el puerto abierto con un número de teléfono.

Imagine que puede tener un teléfono para marcar, pero no un número de teléfono para recibir llamadas.

Para que dos partes hablen entre sí (o que una hable todo el tiempo) no importa quién llame realmente. Lo importante es que al menos uno de ellos tenga un número de teléfono y el otro simplemente lo llame.

Si ninguno de ellos tiene número de teléfono, en algunos sistemas se utiliza un supernodo, que podría ser un amigo que recibe dos llamadas, una de cada uno de ellos, y las une. Esta es la única forma de hablar si ninguna de las dos partes tiene un número de teléfono. El problema es que la conversación se limita entonces a la calidad de la línea telefónica de este supernodo amigo.

Espero que esta analogía facilite la comprensión de los 3 escenarios posibles.

información relacionada