¿Sería mejor usar TCP sobre UDP en una conexión VPN?

Dado que los túneles VPN son un transporte de paquetes para flujos de paquetes que ya tienen su propio control de flujo y flujo, su encapsulación VPN no debe intentar ningún flujo de control de flujo en sí mismo. Por lo tanto, desea utilizar UDP , o incluso IP directa si puede.

Desafortunadamente, muchos administradores de firewall confusos bloquean todo menos TCP, por lo que NECESITA usar TCP para VPN. Esto es problemático, ya que el control de flujo TCP y la retransmisión tienden a causar estragos en el flujo y el control del flujo del tráfico encapsulado.

Cisco Systems creó un protocolo llamado cTCP (Protocolo de control de túnel de Cisco) que utilizaba paquetes TCP “envueltos” entre el cliente y el servidor VPN, pero no realizaba ningún flujo o secuencia TCP. Los paquetes “TCP” atravesaron felizmente el cortafuegos solo TCP, pero proporcionaron el ligero comportamiento sin estado de UDP.

Así que hay respuestas teóricas, prácticas y empíricas a esto.

Como se señaló desde una perspectiva puramente teórica, si todos los demás factores son iguales (… y rara vez lo son), entonces UDP representa un poco menos de sobrecarga porque no hay una noción de control de flujo a través de ventanas, conexiones de conexión, etc. En términos prácticos reales, un pozo- La implementación TCP ajustada ajustará su ventana de tal manera que esté utilizando idealmente el ancho de banda disponible observado. Mejor aún, si la mayoría de las cosas funcionan bien, el flujo TCP puede adaptarse dinámicamente a las condiciones cambiantes de la red de modo que se transmite a una velocidad acorde con las condiciones del entorno. Sin embargo, desde un punto de vista empírico, las implementaciones de TCP pueden comportarse mal, ya sea a través de implementaciones cuestionables o, con la misma frecuencia, debido a la intromisión (generalmente) bien intencionada de los dispositivos en la ruta de tránsito. Un ejemplo de esto es en realidad el proceso de negociación TCP MTU (nb – una de las grandes victorias de TCP sobre UDP, IMO) donde los administradores de firewall excesivamente celosos bloquean los paquetes ICMP que permitirían una negociación de sesión adecuada.

El otro factor aquí es que obtener paquetes VPN a través de firewalls, dispositivos NAT, servidores proxy, cachés, IDS / IPS y similares es un problema muy real en muchos entornos. La ejecución sobre TCP es, como regla general, más fácil de poner en marcha en más entornos. Esta es una de las razones por las que varios proveedores pasaron de los modelos de conexión IPSEC multi-socket tradicionales a la multiplexación de todo en un solo flujo TCP, ya que requería mucha menos interacción con los administradores del sitio. Esto no es necesariamente una victoria de rendimiento, sino una integración más fácil.

La respuesta final termina siendo específica para las configuraciones de sitio / seguridad y la pila HW / SW del proveedor de VPN. Si tiene la opción de UDP o TCP como transporte, pruebe ambos para ver cuál funciona mejor. En mi experiencia, ha habido muy poca diferencia real en los casos en que ambos funcionaron y muchos casos en los que UDP simplemente no funcionaría en absoluto.

¿Qué?

Amigo, UDP es un protocolo sin conexión, TCP está orientado a la conexión.

En otras palabras, iría mucho más rápido pero sin ningún control de flujo ni garantía de confiabilidad.

No es exactamente lo que quieres de una conexión encriptada que se supone protege tu privacidad.

Solo para aclarar la pregunta: tiene una VPN que se transporta a través del transporte UDP por defecto, pero una opción para cambiar al transporte TCP, ¿verdad?

Si la ruta es bastante confiable, TCP inevitablemente será más lento y usará más ancho de banda, pero si está recibiendo pérdida de paquetes y reintentos (manejado a nivel del controlador VPN, porque UDP no lo hará), entonces puede haber algo de kilometraje en obtener TCP hacer eso por ti, especialmente para una VPN de software. La latencia será más larga, las cosas interactivas pueden volverse un poco esponjosas, pero podrían funcionar mejor que los reintentos a nivel de aplicación (VPN).

UDP será la opción más rápida y confiable.