Estoy diseñando una aplicación p2p que funciona en el puerto 30000. Mi enrutador no es UPnP así que tuve que reenviar un puerto al enrutador. Pero Skype otra aplicación p2p funciona sin reenvío de puertos en mi pc. Cuando lo analicé con wireshark encontré que usa el puerto UDP 48980, 58544. Estoy usando C++.¿Cómo funciona Skype sin reenvío de puertos?
Hay una biblioteca en python here que lo hace para Nat PnP enrutadores. ¿Es posible reenviar el puerto mediante programación al enrutador independientemente del tipo de enrutador y el sistema operativo. ¿Cuál debería ser el enfoque para hacerlo en C++ o en cualquier otro idioma?
pero la pregunta es que son IP de clientes PÚBLICOS? ver, por ejemplo, A necesita comunicarse con B y el servidor conoce la IP de B, pero ¿qué IP utiliza? Si este es el caso, puede hacer ping a cualquier usuario de ip. perdón si es estúpido –
Esta respuesta meramente describe A y no se comunica con B y el servidor envía la combinación correcta de IP/Puerto al usuario B. Falta el punto principal, que se llama perforado y está muy bien descrito en el enlace provisto por @MartinBeckett. Solo agregaría que también es posible reenviar el puerto independientemente del tipo de enrutador y del sistema operativo, siempre que el enrutador sea compatible con UPnP. – Igor
@rein ¿y qué hay de la NAT simétrica? – onmyway133