Automatización del puerto 4900 Acceso para aplicaciones de pares
Muchas aplicaciones de igual a igual (P2P) dependen de puertos específicos, como el puerto 4900, para la comunicación. Sin embargo, los enrutadores a menudo bloquean el acceso a estos puertos, obstaculizando la funcionalidad P2P. Esta guía describe cómo habilitar automáticamente el acceso.
Establecer conectividad P2P requiere estos pasos:
- Obtenga direcciones IP locales: Identifique todas las direcciones IP locales en su dispositivo. Para cada dirección, cree un socket UDP escuchando en el puerto 4900.
- Descubra la asignación externa de IP y puerto: Utilice un servidor aturdido o gire para determinar su dirección IP externa y asigne su puerto interno 4900 a un puerto externo (potencialmente diferente).
- Compartir la lista de candidatos: diseminar la lista de pares IP y puertos (sus candidatos) a través de un servicio de encuentro o comunicación directa con otros pares.
- HandShake y Connection Establishment: Intercambio de las listas de candidatos y envíe mensajes de prueba UDP para establecer una ruta de comunicación confiable. Luego se selecciona un par IP/puerto adecuado para la transferencia de datos.
Varias tecnologías ayudan a superar las limitaciones de Nat y Firewall:
- stun (utilidades de traversal de sesión para nat): ayuda a los clientes a descubrir su dirección IP pública y sus asignaciones de puerto.
- Turn (Traversal usando Relays alrededor de Nat): proporciona servicios de retransmisión para conexiones P2P cuando las conexiones directas fallan.
- ICE (establecimiento de conectividad interactiva): un protocolo estandarizado que administra el uso y el uso de las conexiones P2P.
- webrtc: una implementación de hielo con bibliotecas fácilmente disponibles para construir aplicaciones P2P.
- upnp (universal plug and play): funciona con el protocolo del dispositivo de puerta de enlace de Internet para configurar automáticamente las asignaciones de puertos.
- libnice: una implementación de hielo de código abierto para sistemas Linux.
- libjingle: a c biblioteca de hielo de google.
- pjnath: una pila de hielo de pjsip.