a traducción de @NAT no funciona desde dentro de la red (condición de horquilla)

Estoy escribiendo una aplicación P2P. Los pares hacen ping regularmente a un servidor principal para actualizar su IP / puerto actual, por lo que cuando un par quiere comunicarse con otro, puede solicitar esa información al servidor. Por ahora, los pares usan UPnP para configurar el NAT (para configuraciones domésticas clásicas) para que sea accesible desde el exterior.

Así que todo funciona, excepto cuando el cliente de un compañero intenta comunicarse con el servidor de otro (o el mismo) compañero y ambos están detrás del mismo NAT. @ Dado que en ese caso el cliente está tratando de alcanzar su propia dirección IP "externa" (pública) desde detrás del NAT, el NAT no realiza el reenvío de puertos y no puede enrutar el paquete IP.

Por ahora estoy pensando en dos soluciones:

consulte el NAT con UPnP para ver a qué IP local se reenvía el puerto almacenar en el servidor principal las IP internas de los pares

¿Puedes pensar en otras soluciones? ¿Qué estrategias implementan las aplicaciones P2P convencionales para resolver este problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta