Para elaborar la publicación de ewanm89, TeamViewer usa el sistema de poros de UDP.
UDP es un protocolo sin estado. Esto significa que los paquetes se disparan a su destino sin verificación (a nivel de protocolo) de que se recibieron o incluso llegaron al destino. Los firewalls están diseñados para buscar paquetes UDP y registrar el origen y el destino, así como la marca de tiempo. Si ven un paquete entrante que coincide con un paquete saliente, generalmente permitirán que el paquete se complete incluso sin que se coloque una regla específica en la lista de acceso del firewall. Esto se puede bloquear en dispositivos de nivel empresarial, pero en general, el 90% de los firewalls que hay por ahí permitirá el tráfico de retorno.
Con el fin de perforar su máquina (visor) tiene una conexión TCP con el servidor principal de TeamViewer. La máquina de destino (cliente) también tiene una conexión TCP con el servidor principal de TeamViewer. Cuando pulsa conectar su máquina le dice al servidor principal su intención. El servidor principal le proporciona la dirección IP de la máquina cliente. Su máquina comienza a disparar paquetes UDP al cliente. Al cliente se le indica que desea conectarse y se le asigna su IP. El cliente también comienza a dispararte paquetes UDP.
Esto hace que ambos firewalls (el suyo y los clientes) permitan el tráfico, por lo tanto, "perforando agujeros" en el firewall.
Por supuesto, TeamViewer agrega algo de seguridad al realizar una comprobación de pin / contraseña antes de que el servidor principal envíe la información de IP a ambas partes, pero se entiende la idea.