¿Qué significa el tipo de NAT en PS4? ¿Cómo probar el tipo de NAT cuando se conecta directamente a una computadora?
Hay tres tipos de NAT:
1. NAT1 se conecta directamente
2. NAT2 se conecta a través de un enrutador
3. El tipo de red es NAT3, lo que significa que algunas funciones son limitadas. La computadora no puede participar en conexiones en línea y no puede hablar cuando asiste a fiestas. Equivale a encerrarse en una habitación oscura.
Detección de tipo NAT
Requisito previo: hay un servidor de red pública y dos IP de red pública (IP-1, IP-2) están vinculadas. Este Servidor escucha UDP (IP-1, Puerto-1), (IP-2, Puerto-2) y responde de acuerdo a los requerimientos del cliente.
Paso uno: ¿Detectar si el cliente es capaz de realizar comunicación UDP y si el cliente está detrás de NAT?
1. El cliente establece un socket UDP y luego usa este socket para enviar un paquete de datos al servidor (IP-1, Puerto-1) y le pide al servidor que devuelva la IP y el puerto <. /p>
Cliente El cliente comienza a recibir paquetes de datos inmediatamente después de enviar la solicitud. Se debe configurar el tiempo de espera del socket (300 ms) para evitar una congestión infinita.
Repita este proceso varias veces. Si se agota el tiempo de espera cada vez y no puede recibir una respuesta del servidor, significa que el cliente no puede comunicarse con UDP. Puede ser que el firewall o NAT bloquee la comunicación UDP. Dicho cliente no podrá realizar P2P (la detección se detiene). ).
2. Cuando el cliente puede recibir la respuesta del servidor, necesita combinar el cliente (IP, Puerto) devuelto por el servidor y el
del socket del cliente (LocalIP, LocalPort). ) Comparar. Si son exactamente iguales, el cliente no está detrás de NAT. Dicho cliente tiene una IP pública y puede escuchar directamente el puerto UDP para recibir datos para la comunicación (la detección se detiene). De lo contrario, el cliente deberá realizar una detección adicional del tipo de NAT después de NAT (continuar).
Paso 2: ¿Verificar si la NAT del cliente es NAT de cono completo?
El cliente establece un socket UDP
y luego usa este socket para enviar un paquete de datos al servidor (IP-1, Puerto-1) y requiere que el servidor use otro par ( IP-2, Puerto -2) Responda a la solicitud del cliente y envíe de vuelta un paquete de datos.
El cliente comienza a recibir paquetes de datos inmediatamente después de enviar la solicitud. Configure el tiempo de espera del socket (300 ms) para evitar una congestión ilimitada.
Repite este proceso varias veces. Si se agota el tiempo de espera cada vez y no puede recibir una respuesta del servidor, significa que la NAT del cliente no es una
NAT de cono completo y el tipo específico debe detectarse en el siguiente paso (continuar) . Si se puede recibir el paquete UDP de respuesta devuelto por el servidor (IP-2, Puerto-2), significa que el cliente es un NAT de cono completo y dicho cliente puede realizar comunicación UDP-P2P (detención de detección).
Paso 3: ¿Verificar si la NAT del cliente es NAT simétrica?
1. El cliente establece un socket UDP y luego usa este socket para enviar un paquete de datos al servidor (IP-1, Puerto-1) y le pide al servidor que devuelva la IP y el puerto <. /p>
Cliente El cliente comienza a recibir paquetes de datos inmediatamente después de enviar la solicitud. Se debe configurar el tiempo de espera del socket (300 ms) para evitar una congestión infinita.
Repita este proceso hasta que se reciba una respuesta. debe recibirse, porque el primer paso garantiza que el cliente pueda comunicarse a través de UDP).
2. Utilice el mismo método para utilizar un socket para enviar un paquete de datos al servidor (IP-2, Puerto-2) y pedirle al servidor que devuelva la IP y el puerto del cliente.
3. Compare el cliente (IP, puerto) devuelto por los dos procesos anteriores desde el servidor. Si el (IP, puerto) devuelto por los dos procesos es un par diferente, significa que el cliente es. Simétrico
NAT, dicho cliente no puede realizar comunicación UDP-P2P (detección detenida). De lo contrario, es NAT de cono restringido. Aún no se ha detectado si es un puerto restringido.
Cono NAT (continúa).
Paso 4: Compruebe si la NAT del cliente es NAT de cono restringido o NAT de cono restringido de puerto.
El cliente establece UDP.
El socket luego usa este socket para enviar un paquete de datos al servidor (IP-1, Puerto-1), lo que requiere que el servidor use IP-1. y un puerto diferente: el puerto 1 envía un paquete UDP
en respuesta al cliente. El cliente comienza a recibir paquetes inmediatamente después de enviar la solicitud. El tiempo de espera del socket (300 ms) debe configurarse para evitar el bloqueo infinito. /p>
Repita este proceso varias veces. Si se agota el tiempo de espera cada vez y no puede recibir una respuesta del servidor, significa que el cliente es un cono de puerto restringido
NAT Si puede recibir una respuesta del servidor, significa que el cliente es. una NAT de cono restringido. Ambos NAT anteriores pueden realizar comunicación UDP-P2P.
Nota: El proceso de detección anterior solo explica si es posible la comunicación UDP-P2P. El método de comunicación específico generalmente requiere la ayuda de Rendezvous Server. Además, Symmetric NAT no significa que la comunicación UDP-P2P no se pueda realizar en absoluto, pero no se garantiza el éxito.