¿Cuál es la diferencia entre VPN sobre TCP frente a UDP?

34

Mi proveedor de VPN me da la opción entre usar UDP y TCP para las conexiones. Según este sitio UDP es más rápido en distancias cortas. Estoy en el mismo continente que mi servidor, ¿eso se considera una distancia corta? ¿Hay alguna prueba que pueda realizar para comparar las dos?

    
pregunta David Drohang 10.01.2013 - 05:50
fuente

5 respuestas

41

Una VPN es para envolver paquetes de IP sin procesar en algún tipo de "túnel" entre dos sitios (uno de los sitios posiblemente se reducirá a una computadora, es decir, la suya). TCP es un protocolo que se encuentra sobre la IP y utiliza paquetes IP (que son "no confiables": pueden perderse , duplicado, reordenado ...) para proporcionar un canal bidireccional confiable para bytes de datos, donde los bytes siempre llegan al receptor en el orden en que fueron enviados. TCP hace eso utilizando un complejo surtido de metadatos con reconocimientos y reemisiones explícitos. Por lo tanto, TCP incurre en una ligera sobrecarga de red.

Si la VPN usa TCP, entonces sus sus propias conexiones TCP usarán los paquetes IP enviados a través de la VPN, por lo que terminará pagando la sobrecarga de TCP dos veces. Por lo tanto, una VPN basada en UDP tiene el potencial para un rendimiento ligeramente mejor. Por otro lado, la protección criptográfica de la VPN requiere algo de administración de estado, lo que puede ser más difícil para la implementación de la VPN cuando se utiliza UDP, por lo que es posible que la VPN basada en UDP tenga una sobrecarga adicional con la que lidiar.

Por lo tanto, la situación de rendimiento no está clara y debe medir .

    
respondido por el Thomas Pornin 10.01.2013 - 13:23
fuente
12

Puedes intentar descargar un archivo a través de cualquiera de los dos métodos y ver si las velocidades de descarga son drásticamente diferentes.

Las compensaciones entre TCP y UDP (independientemente del uso de VPN) son siempre las mismas:  Usted sacrifica la velocidad por la confiabilidad ya que UDP no tiene conexión y al servidor que envía los datos teóricamente (dependiendo de la implementación) no le importa si llega al destino o no. Esto está bien en cosas como los juegos de Internet donde cada paquete puede ser un movimiento por parte de un usuario, pero en cosas como el cifrado donde los bits de datos faltantes significan que un mensaje completo debe ser reenviado, TCP sería más bienvenido en el momento El uso de UDP podría perderse al tener que reenviar un mensaje completo.

Estar en el mismo continente generalmente no se considera una distancia corta. Consideraría estar en el mismo edificio, tal vez en la misma ciudad que una corta distancia, pero no mucho más que eso. Cuantos más saltos deba atravesar un paquete, mayor será la probabilidad de que se corrompa en algún momento del camino. Si desea ver cuántos saltos se necesitan para llegar a su destino, intente ejecutar un comando de "ruta de rastreo".

Espero haberte ayudado.

    
respondido por el NULLZ 10.01.2013 - 07:05
fuente
9

Se prefiere UDP para VPN, la sobrecarga es menor. Esta discusión sobre la falta de fiabilidad de UDP es discutible. Dado que estamos en sintonía, no hay diferencia entre la pérdida de un datagrama TCP en Internet abierto y la pérdida de un datagrama TCP en un túnel TCP o la pérdida de un datagrama TCP en un túnel UDP. Todos serán retransmitidos.

Un problema con los túneles UDP es que no tienen estado, esto hace que sea más difícil asegurarlos en el firewall. Los paquetes de respuesta no son diferentes a los paquetes fuente. Desde una perspectiva de seguridad, los túneles TCP son más fáciles.

    
respondido por el mgjk 10.01.2013 - 20:16
fuente
3

Esto es realmente lo mismo que TCP y UDP normalmente son. TCP es un sistema donde por cada paquete se garantiza que llegará en orden. Si un paquete se recibe fuera de servicio, se almacena y si un paquete no aparece para llenar un espacio vacío, se vuelve a solicitar. Esto garantiza una transmisión completa sin pérdida de datos, pero significa que una conexión puede ser retenida por un paquete perdido mientras se solicita la información nuevamente.

Por otra parte,

UDP no ofrece dicha garantía y la información llegará en el orden en que llegue y se procesará como tal. No estoy seguro exactamente de las implicaciones de seguridad, pero es probable que todavía tenga un retraso similar en UDP si utiliza un cifrado de flujo de cadena no paralelizable ya que necesitaría que todos los paquetes llegaran en orden, pero esto también podría superarse utilizando un modo de cifrado que admite descifrado paralelo.

Básicamente, lo único que VPN agrega a la mezcla típica de TCP / UDP es que limita la naturaleza de los modos de encriptación que se pueden usar un poco, pero de otro modo es la compensación típica.

    
respondido por el AJ Henderson 10.01.2013 - 15:39
fuente
2

La distancia física real de punto a punto no significa nada en el mundo de Internet, todo depende de las interconexiones de ISP. Una vez hice ping a un servidor en el rack junto a mí y tenía un retraso de 300 ms porque los paquetes se enrutaban a través del Pacífico y de vuelta porque así era como los ISP estaban conectados entre sí. Si los servidores se hubieran conectado directamente, el retraso habría sido en microsegundos. Los servidores estaban a una distancia de unos a otros, pero la distancia real a la que viajaban los paquetes de ida y vuelta en todos los saltos era del orden de 25,000 millas. Ese es un ejemplo extremo, pero ilustra que no puedes confiar en la distancia.

En lugar de la distancia que necesita para observar la latencia, es el tiempo de ida y vuelta que se necesita para que un eco enviado al destino VPN sea respondido. En cuanto a qué tiempo de viaje de ida y vuelta haría de UDP una mejor opción que TCP, no lo sé, y no es tan simple, ya que existen otros factores:

  • pérdida de paquete y fluctuación de fase: UDP es muy sensible a la pérdida de paquete y fluctuación de fase (paquete fuera de orden) y no tiene un mecanismo de corrección incorporado como TCP. Cualquier latencia o jitter erosionará cualquier beneficio del uso de UDP sobre TCP
  • Eficacia de la pila IP del sistema operativo: la aplicación VPN utilizará la pila TCP / IP del sistema operativo, que también procesará los paquetes UDP. Gran parte de la eficiencia relativa de TCP frente a UDP se reducirá a lo bien que el sistema operativo (y cualquier filtro de paquetes o cortafuegos en la forma) procese TCP versus UDP
  • Codificación de la aplicación: la calidad de la aplicación VPN hará una gran diferencia, al igual que el software VPN en el dispositivo al que se está conectando. Por ejemplo, ¿cómo se recupera de los paquetes UDP perdidos? ¿Puede solicitar retransmisiones o depende de las aplicaciones anteriores para solicitar retransmisiones?

Hay demasiados factores para darle una respuesta definitiva, ya que depende de muchos factores. Simplemente tendrás que probar ambos métodos y ver.

    
respondido por el GdD 10.01.2013 - 14:36
fuente

Lea otras preguntas en las etiquetas