48 votos

¿Cuál es la diferencia entre UDP y TCP?

Mi router tiene dos protocolos (y una opción "ambos") que puedo seleccionar al configurar el reenvío de puertos: UDP y TCP. Cuál es la diferencia entre estos dos protocolos y cuándo seleccionaría uno sobre el otro en el reenvío de puertos?

77voto

Bob Puntos 34449

Puede encontrar un buen resumen aquí:

¿Cuál es la diferencia entre los protocolos de Internet UDP y TCP?

Tanto TCP como UDP funcionan en la capa de transporte del modelo TCP/IP, pero tienen un uso muy diferente.

Las diferencias más importantes son:

  • Fiabilidad :
    TCP: orientado a la conexión
    UDP: sin conexión
  • Ordenado :
    TCP: se garantiza el orden de recepción de los mensajes
    UDP: el orden no está garantizado
  • Protocolo de peso :
    TCP: peso pesado, debido a la sobrecarga de conexión/ordenación
    UDP: ligero, con muy poca sobrecarga
  • Paquetes :
    TCP: streaming, los datos se leen como un "flujo", sin distinguir dónde acaba un paquete y dónde empieza otro. Puede haber varios paquetes por llamada de lectura.
    UDP: datagramas, un paquete por cada llamada de lectura.

Estructura del marco

Cuando los datos se envían a través de la red, es necesario encapsularlos en las llamadas "tramas". Existen varios métodos de encapsulación dependiendo del protocolo y la topología que se utilice. Las siguientes imágenes muestran cómo difieren las estructuras de las tramas TCP y UDP.

Esta es la estructura de la trama TCP:

TCP frame

Y esta la estructura de la trama UDP, mucho más simple:

UDP frame

Los protocolos típicos que utilizan TCP son HTTP, FTP y SMTP. Ejemplos de protocolos que utilizan UDP son DNS y DHCP.

0 votos

@splattne - orden del mensaje recibo es la garantía, no la transmisión

0 votos

@Alnitak: por supuesto, tienes razón. Me refería a que el recibo está garantizado en la orden de transmisión. Actualizaré para que quede claro.

54voto

TCP está respaldado por acks y reintentos para asegurarse de que los datos llegan a su destino. UDP es sin conexión y "dispara y olvida". UDP se utiliza sobre todo para aplicaciones de tipo streaming, en las que si se pierden algunos datos no es necesario intentar enviarlos de nuevo.

El que se utilice depende de la aplicación. Por ejemplo, un servidor web utiliza TCP.

48voto

pgs Puntos 2491

Y la explicación a nivel de director general:

UDP es cuando se tira el papel en la dirección general de la papelera.

TCP es cuando falla, tiras copias exactas del mismo papel una y otra vez hasta que cae en la papelera. Habría desperdicio de papel, incluso los paquetes TCP reenviados suponen un desperdicio de recursos de la red o del sistema.

1 votos

Es una explicación muy buena a nivel de "director general", ¡me gusta!

0 votos

No soy un director general, pero ¿por qué nadie me dijo esto antes? :p

0 votos

¡Esto es brillante!

8voto

Bob Nadler Puntos 1959

TCP y UDP son dos protocolos que se ejecutan sobre IP. TCP tiene entrega garantizada y UDP no. Deberías seleccionar uno u otro para el reenvío de puertos dependiendo del servicio que estés tratando de reenviar. HTTP, por ejemplo, es TCP. Si no sabes qué protocolo es el servicio que estás tratando de reenviar, es casi seguro que sea TCP.

4voto

hayalci Puntos 2651

Para responder a la otra parte de tu pregunta, tienes que remitir lo que utiliza tu aplicación. Para reenviar el tráfico HTTP, seleccione TCP. Para reenviar el tráfico TFTP, selecciona UDP. Los programas p2p suelen utilizar tanto tcp como udp, así que reenvía ambos.

Todo depende del protocolo y del programa que utilices.

0 votos

No tienes toda la razón. dns utiliza también tcp/53, no tan a menudo, pero aún así [por ejemplo, para la transferencia de zonas].

0 votos

Sí. Además, es totalmente válido enviar consultas dns regulares sobre tcp. He cambiado el ejemplo por TFTP, que utiliza exclusivamente UDP.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X