¿Cómo se decide entre TCP y UDP? ¿Qué tipos de aplicaciones son más apropiadas para una sobre la otra?

Mucha gente hace esta pregunta y piensa en estos términos, pero aquí hay un punto de vista diferente.

TCP y UDP no están en el mismo nivel de abstracción y no son realmente competidores.

Comencemos en un lugar diferente. En términos generales, el trabajo de Internet es obtener paquetes IP (formalmente, datagramas de Protocolo de Internet) de una computadora a otra. IP proporciona lo que llamamos un ” servicio de datagrama de mejor esfuerzo ” a una computadora.

Por “servicio de datagrama de mejor esfuerzo” queremos decir que no hay garantía de que ningún datagrama particular llegue a la computadora de destino. Y no hay garantía de que un par de datagramas no se voltee y se entregue fuera de servicio. Y no hay garantía de que no se voltee un poco dentro del datagrama (aunque esto es raro).

Y por “a una computadora”, quiero decir que IP entrega el datagrama a la puerta de la computadora y eso es todo. No hay indicación de qué aplicación en la computadora estará interesada en el datagrama.

Por lo general, las aplicaciones quieren más que el “mejor servicio de datagramas”. Por lo tanto, otros protocolos se basan en la abstracción de datagramas para proporcionar otros tipos de servicios.

La forma más popular de hacerlo es usar TCP, el Protocolo de Control de Transmisión. TCP se ejecuta sobre el “servicio de datagrama de mejor esfuerzo” y lo convierte en un
flujo de bytes ordenado confiable bidireccional ” entre aplicaciones.

Una aplicación proporciona a TCP una secuencia de bytes, y TCP garantiza que los entregará a la computadora remota con precisión y en orden, si es que llegan allí. TCP proporciona esto no “a una computadora” sino “entre aplicaciones”, lo que significa que TCP tiene otro nivel de direccionamiento que realiza un seguimiento de a qué aplicación pertenece la secuencia (es decir, un número de puerto).

TCP también trata de ser “justo” para otros usuarios de la red, en un sentido muy especializado de “justo”. Hay varios tipos de TCP (por ejemplo, TCP NewReno, TCP Vegas, TCP Cubic) que tienen diferentes tipos de rendimiento y diferentes nociones de “equidad”. Cada sabor puede comunicarse con todos los demás, eso es lo que los hace a todos TCP, pero un sabor no necesariamente compartirá los recursos de red de manera equitativa con otros sabores de TCP. (Por ejemplo, Cubic puede ser injusto para NewReno, y NewReno puede ser injusto para Vegas, etc.)

Muchas aplicaciones usan TCP porque esta es la abstracción que desean. Los protocolos HTTP y SPDY de la Web se ejecutan sobre TCP, al igual que SSH, y SMTP e IMAP para correo electrónico, y YouTube y Netflix y muchos otros protocolos y aplicaciones. A estas aplicaciones no les importa exactamente cuáles son las características de rendimiento; solo quieren un flujo de bytes confiable.

Debido a que TCP es tan popular, el sistema operativo generalmente proporciona un poco de TCP de forma predeterminada como un servicio de SO para todas las aplicaciones. Cualquier aplicación puede abrir un socket de flujo, y boom, pueden insertar bytes en el socket y serán entregados por TCP sobre esos datagramas IP de mejor esfuerzo a la aplicación en el otro lado. Los diferentes sistemas operativos proporcionan diferentes sabores de TCP con diferentes características de rendimiento (por ejemplo, Linux por defecto es TCP Cubic, algunos Windows a TCP Compound) como este valor predeterminado.

Pero algunas aplicaciones no quieren usar el TCP predeterminado. Estas aplicaciones pueden desear un control más preciso sobre las características de rendimiento o la confiabilidad de sus comunicaciones. Para esto, el sistema operativo expone los “datagramas de mejor esfuerzo” de IP a la aplicación para que haga lo que quiera con ellos.

Para hacer esto, el sistema operativo proporciona UDP, el protocolo de datagramas de “usuario”. Es igual que IP , ya que el servicio es datagramas de mejor esfuerzo, pero en lugar de entregar esos datagramas “a una computadora”, hay una capa adicional de direccionamiento que dice qué aplicación está interesada en ellos (y como TCP, UDP hace esto con un número de puerto).

(UDP, UDP “lite” y UDPv6 también incluyen varios grados de protección contra un bit invertido dentro del datagrama, pero en la práctica estos son raros, y las aplicaciones que se preocupan por la integridad aplican una verificación más fuerte).

Las aplicaciones pueden ejecutar lo que quieran sobre UDP, cualquier cosa que se ejecute en datagramas de mejor esfuerzo.

En algunos casos, lo que la aplicación quiere ejecutar es TCP, solo un sabor diferente al que proporciona el sistema operativo de forma predeterminada. Por ejemplo, el programa MixApp (lamentado) utilizó un sabor de TCP (TCP Vegas) que no aumenta los retrasos dentro del hardware de la red (es decir, no exacerba el problema del “bloqueo del búfer”), a diferencia de la mayoría de los sabores TCP proporcionados por el funcionamiento sistemas de hoy. Diríamos que MixApp estaba usando TCP-over-UDP en lugar del típico TCP-over-IP.

A veces, la aplicación quiere ejecutar un “protocolo de transmisión de bytes bidireccional confiable”, pero uno que no sea TCP. Por ejemplo, BitTorrent ahora intenta ejecutar un protocolo llamado LEDBAT (Transporte de fondo de retardo extra bajo) sobre UDP. Sigue siendo confiable, sigue siendo un flujo de bytes bidireccional, pero no es TCP.

Google está trabajando en QUIC para transportar tráfico web, también a través de UDP.

A veces, la aplicación quiere ejecutar un protocolo “bidireccional confiable”, pero no un flujo de bytes. Por ejemplo, Mosh atropella algo llamado el Protocolo de sincronización de estado (SSP). Se asegura de que el usuario pueda ver de manera confiable el contenido actual de la pantalla proporcionada por la aplicación de terminal remota. Si el usuario se desconecta y Mosh pierde algunas actualizaciones intermedias en la pantalla, está bien siempre que pueda obtener el contenido actual lo más rápido posible. Todavía es confiable y bidireccional y está en orden, pero no es un flujo de bytes.

A veces, la aplicación quiere un servicio que no sea “confiable en orden”. Por ejemplo, Skype envía grabaciones cortas de audio comprimido a un oyente remoto. Cada datagrama contiene quizás 1/30 de segundo de audio. Si se pierde un datagrama, Skype puede preferir simplemente hacer un “clic” audible y seguir enviando nuevos datagramas con nuevos fragmentos de audio de 30 segundos por segundo. Por el contrario, un protocolo “confiable en orden” puede seguir intentándolo nuevamente y nuevamente para entregar una vieja porción de audio de lo que dijiste hace diez segundos, reteniendo todo lo demás hasta que llegue esa vieja grabación.

Lo mismo ocurre con NTP (el protocolo de tiempo de la red): utiliza UDP porque el cliente desea sincronizarse con el reloj de un servidor de tiempo con la mayor precisión posible. El cliente solo quiere escuchar una actualización de tiempo que llegue directamente al primer intento. ¡Una actualización de tiempo que se perdió y luego se retransmitió una cierta cantidad de tiempo más tarde no es útil!

A veces, la aplicación quiere un servicio que no sea “bidireccional”. Por ejemplo, el protocolo DNS de multidifusión de Apple (también conocido como Bonjour / Rendezvous) permite que las computadoras y las impresoras se anuncien en una red local enviando un datagrama que va a todas las computadoras. mDNS también está construido sobre UDP.

Por lo tanto, el resultado final, IP y UDP proporcionan el “mejor servicio de datagramas de esfuerzo”. Hay muchos protocolos que puede ejecutar además de esa abstracción.

TCP es uno de esos protocolos, y puede ejecutarse sobre datagramas IP (como se hace normalmente) o datagramas UDP, en el caso de aplicaciones como MixApp que no desean utilizar la implementación “predeterminada” del sistema operativo de TCP.

Además de TCP, hay muchos otros protocolos que se ejecutan sobre el “servicio de datagrama de mejor esfuerzo”, por ejemplo, Skype, BitTorrent (LEDBAT), la Web (QUIC y WebRTC), Mosh (SSP), Bonjour (mDNS), y NTP. Todos estos se ejecutan sobre UDP porque desean proporcionar diferentes tipos de abstracciones o características de rendimiento diferentes que TCP.

TL; DR : use UDP para aplicaciones que requieren un tiempo crítico y para las cuales la pérdida de datos se puede manejar de manera aceptable. Use TCP para todo lo demás.

Akshay Kashyap ha resumido dos consideraciones principales, así que continuaré desde donde lo dejó:

1. TCP automáticamente le proporciona control de congestión , de modo que su aplicación generalmente se comportará como un “buen ciudadano” en la red. UDP no lo hace, por lo tanto, a menos que lo implemente usted mismo (por ejemplo, envíe algunos datagramas y luego retroceda por un segundo), es demasiado fácil inundar la red y causar problemas a todos los demás, incluidas otras aplicaciones que está ejecutando.

2. TCP garantiza la entrega de datos en orden . Si envía A antes de B, su destinatario recibirá A antes que B. UDP no ofrece tales garantías, por lo que su aplicación debe realizar un seguimiento del orden de los datos de alguna manera, o puede diseñar el protocolo de su aplicación de tal manera que el orden no importe (por ejemplo, siempre entregar cargas completas).

3. TCP envía datos en una secuencia interminable (esto es una consecuencia del elemento 2 anterior), por lo que depende de usted delimitar sus fragmentos de datos en consecuencia (por ejemplo, nuevas líneas que separan datos de texto puro). UDP envía datos en fragmentos (datagramas), por lo que no tiene que preocuparse por los límites de referencia, aunque hay un límite para el tamaño del datagrama.

Básicamente, nuestros Padres de Internet y su descendencia metafórica hicieron un montón de trabajo para hacer que las comunicaciones basadas en TCP sean confiables y fáciles de usar, y los enlaces dudosos son mucho más raros de lo que solían ser, por lo que para entornos de red modernos, generalmente es el Buena elección.

A menos que no lo sea, para su entorno y / o aplicación, en cuyo caso tiene UDP.

Si necesita difusión o multidifusión, utiliza UDP. De lo contrario, TCP.

Los programadores que intentan usar UDP e implementar sus propios mecanismos de control y retransmisión de congestión generalmente lo hacen bastante mal.

Hay dos factores que debe tener en cuenta para decidir cuál de estos desea utilizar: velocidad y pérdida de datos.

1. UDP es más rápido que TCP. Los paquetes se envían a una velocidad mucho más rápida, porque en UDP no hay una conexión abierta que deba mantener entre dos computadoras (o dispositivos). ¿Por qué? Porque en UDP, construyes el paquete, lo abofeteas con un encabezado IP y la información de destino, y lo envías. Por otro lado, TCP es más lento porque hay una conexión (socket de flujo) entre los dos dispositivos y los datos se envían con cuidado para que todo llegue como se envió.

2. En UDP, algunos paquetes pueden caerse aquí y allá. Si envía “Perdónelo, no lo mate”, el otro dispositivo podría simplemente recibir “Perdónelo” (lo cual no es bueno para ese tipo). Esto está bien cuando su aplicación está transmitiendo audio o video, o en juegos multijugador, donde algunos paquetes perdidos sobre el audio o la posición de un jugador no importan. Por otro lado, en TCP, cada carácter / byte llega de la misma manera que se envió. Por lo tanto, esto es apropiado para su uso en aplicaciones como aplicaciones de chat.

Espero que esto haya ayudado!

TL; DR Use TCP a menos que tenga una razón específica para usar UDP que no se puede lograr de manera razonable con TCP.

Los entornos modernos (como los entornos virtualizados y los entornos en la nube) manejan el TCP bastante bien, pero tratan a UDP como un ciudadano de segunda clase, por lo que a menos que realmente sepa lo que está haciendo (en cuyo caso no haría esta pregunta), su implementación UDP será una mierda.

El Protocolo de control de transmisión (TCP) y el Protocolo de datagramas de usuario (UDP) es un protocolo de transporte que se encuentra entre los protocolos principales del conjunto de protocolos de Internet. Cada TCP y UDP funcionan en el modelo de capa de transporte TCP / IP y también tienen un uso completamente diferente.

Diferencia entre TCP y UDP en diferentes parámetros

  1. Fiabilidad: TCP es en realidad un protocolo orientado a la conexión. Siempre que se entregue un buen archivo o incluso un mensaje, se enviará a menos que las conexiones no funcionen. En caso de pérdida del enlace, el servidor seguramente exigirá la parte perdida. En general, no hay problema al mover un mensaje.
    UDP será un protocolo sin conexión. Siempre que envíe una información o incluso un mensaje, evite entender en caso de que suceda, podría perderse en el camino. Puede haber corrupción al mover un mensaje.
  2. Streaming: en TCP, los datos se leen como un “stream”, junto con absolutamente nada específico donde un paquete termina y comienza un adicional. Puede haber varios paquetes por llamada de lectura.
    En UDP, los paquetes tienden a entregarse por separado y se garantiza que serán completos si aparecen. Un paquete por una llamada de lectura.

    Fuente:

    http://www.networking-basics.net/

Pregúntese, si estuviera viajando por la autopista en un Megabus en Indiana con wifi horrible pero gratuito, qué tipo de protocolo usaría para mantener una terminal virtual para su servidor en un centro de datos en algún lugar seguro y cálido.

No puede contar con que su dirección IP sea constante a lo largo de su viaje, y no puede contar con que un paquete determinado llegue al extremo remoto, a veces por millas seguidas.

TCP es un buen protocolo para la mayor parte de Internet, que en su mayoría tiene enlaces relativamente no congestionados que en su mayoría tienen un buen rendimiento y una pérdida de paquetes relativamente baja. Tiene un excelente proceso automatizado para estimar los tiempos de ida y vuelta y adaptarse para usar mucho ancho de banda. Pero realmente no sabe cómo lidiar con las fluctuaciones salvajes en la calidad de la red durante la vida útil de un solo socket, y se pone muy triste cuando hay períodos prolongados de pérdida completa.

Supongo que es por eso que la gente del MIT que construyó “mosh” el shell móvil lo construyó sobre UDP. Sabe qué hacer cuando estás en el Megabus, tropezando con un enlace de internet poco fiable. Lea sobre esto con su periódico Usenix:

Página en mit.edu

Usamos ambos, a continuación se dan algunos ejemplos de ambos protocolos:

UDP: cualquier cosa donde no te importe demasiado si obtienes todos los datos siempre

  • Tunneling / VPN (los paquetes perdidos están bien, el protocolo tunelizado se encarga de eso)
  • Transmisión de medios (los cuadros perdidos están bien)
  • Juegos a los que no les importa si recibes todas las actualizaciones
  • Mecanismos de difusión local (la misma aplicación que se ejecuta en diferentes máquinas se “descubre” entre sí)

TCP: casi cualquier cosa donde tenga que obtener todos los datos transmitidos

  • Web
  • SSH, FTP, telnet
  • SMTP, enviando correo
  • IMAP / POP, recibiendo correo

Analogía:

UDP está enviando una carta por correo a la oficina de correos.

TCP está enviando una carta con un acuse de recibo a la oficina de correos, excepto que el maestro de correos organizará las cartas en el orden de envío y solo las entregará en orden.

Gracias

Moksh Maheshwari

Depende de lo que quieras: ¿fiabilidad o velocidad?
UDP sin conexión, es más rápido en comparación con TCP. Mientras que el TCP orientado a la conexión es confiable pero necesita más tiempo para configurar la conexión (protocolo de enlace de 3 vías).

Veo muchas respuestas que pierden puntos significativos sobre la distinción entre TCP y UDP. Muchos parecen implicar que UDP es fundamentalmente “más pobre” o “más débil” que TCP. Otros parecen implicar que la funcionalidad de TCP se implementa sobre UDP, o que se puede hacer a nivel de aplicación. Ninguna de estas afirmaciones tiene mucho o ningún mérito.
Ambos protocolos tienen propiedades específicas que los hacen apropiados para casos de uso específicos. La propiedad que probablemente hace que UDP sea apropiado con mayor frecuencia es la capacidad de transmitir o multidifusión. Cuando se requiere una comunicación de uno a muchos, UDP es casi automáticamente más adecuado. La capacidad de utilizar el recibo de datagramas UDP como evento también es una propiedad importante de UDP.
TCP tiene la propiedad de una conexión perpetua mantenida y que la conexión es de naturaleza bidireccional. Una vez establecida, la conexión TCP permite que tanto el cliente como el servidor transmitan flujos de datos entre sí. La cuestión de la confiabilidad y la entrega garantizada surge del mantenimiento de la conexión que forma parte del protocolo TCP y se implementa silenciosamente como parte de la mayoría de las pilas de TCP / IP del sistema operativo. Sin embargo, la garantía no es que se entregarán los datos (una promesa imposible), sino que si falla, habrá un método para que la aplicación lo sepa. Ninguna cantidad de especificación de protocolo o implementación de software puede garantizar que la energía en la sala de servidores no se desconecte o que el conserje no desconecte el cable del enchufe de la pared, pero es posible crear un protocolo para identificar cuándo sucede, y TCP hace eso, así como una cierta cantidad de esfuerzo para recuperarse de los errores cuando sea posible. Dado que el tráfico TCP se considera una secuencia, no existe una definición natural o incorporada de cómo se entregan los fragmentos de datos. Es bastante aceptable que la pila del protocolo TCP ensamble paquetes de datos en el extremo de la aplicación de lectura en tamaños o piezas que difieren de la forma en que se escribieron al final del envío de la conexión, siempre que se mantenga el orden de los bytes. Esto contrasta con UDP, que garantiza que un datagrama recibido esté completo en el momento en que se lee.

Depende de lo que intente hacer su aplicación. Muchas aplicaciones usan TCP porque ha incorporado garantías de secuencia de datos y control de congestión de red. UDP es de mayor rendimiento y es útil en aplicaciones especializadas que toleran la pérdida de datos, como los protocolos de transferencia de medios como SIP / RTP. Otro uso de UDP es cuando tiene una aplicación que funcionará significativamente mejor con algoritmos de secuenciación y control de congestión nuevos / alternativos, como el programa de Aspera para transferir datos de tamaño conocido.

La mayoría de las aplicaciones usan TCP porque elimina la complejidad de la red de la aplicación o los protocolos de nivel superior (por ejemplo, HTTP, SSH) que la aplicación usa están especificados para usar TCP.

Una cosa buena de UDP es que conserva los límites de registro, lo que simplifica el manejo de datos estructurados simples si no le importan los datos fuera de secuencia o descartados.

La respuesta de Keith Winstein es minuciosa y correcta. Pero sospecho que no responde a la pregunta real, una pregunta a la que llega la respuesta de Eric Fair, pero tal vez un poco demasiado escueta.

Al igual que muchos ingenieros, cuando me encuentro con alguien que pregunta sobre TCP vs UDP, lo que escucho es que alguien piensa “TCP lleva una carga métrica de gastos generales, solo por entrega confiable y ordenada. Apuesto a que puedo atornillar la confiabilidad y ordenar mi ¡La aplicación necesita además de UDP de manera mucho más eficiente! ” No estás necesariamente equivocado al pensar eso. Pero debe tener en cuenta que muchas personas muy inteligentes han intentado encontrar algo mejor y más simple para una entrega confiable y ordenada. Y se han encontrado no solo reinventando la rueda TCP, sino produciendo una nueva rueda elegante que resulta, en la práctica, tener esquinas y divisiones.

TCP y UDP son protocolos de capa de transporte. La diferencia principal entre dos es que TCP está orientado a la conexión y UDP no tiene conexión.

En un servicio orientado a la conexión, primero se establece una conexión entre el emisor y el receptor. Los datos son transferidos. Al final, se libera la conexión. TCP crea una conexión virtual entre dos TCP para enviar datos. Además, TCP utiliza mecanismos de control de flujo y error a nivel de transporte.

En el servicio sin conexión, los paquetes se envían de una parte a otra sin necesidad de establecer o liberar la conexión. Los paquetes no están numerados; pueden retrasarse o perderse o pueden llegar fuera de secuencia. No hay reconocimiento tampoco.

Entonces, cuando no tenemos que preocuparnos por los errores y el control de flujo, usamos UDP como en la multidifusión, procesos de administración como SNMP.

Pero cuando necesitamos tener una transmisión confiable, usamos TCP. TCP se usa cuando el cliente se conecta a los servidores en la World Wide Web y se usa para entregar correo electrónico y transferir archivos de una ubicación a otra. HTTP, FTP, Telnet, SMTP, POP3, IMAP también usan TCP.

Tan pronto como comience a exigir garantías que ofrece TCP, es probable que esté a punto de reinventar TCP. Este es un fuerte llamado para usarlo.

Si los mensajes son cortos y llegan en orden aleatorio o se descartan no es un problema, mientras que el rendimiento sí lo es, UDP es el camino a seguir.

De hecho, sugeriría ir con TCP y volver a visitar cuando surjan problemas de latencia. Puede que nunca suceda.

Cada vez que el valor de usar un socket es mayor que la sobrecarga asociada, que es la mayor parte del tiempo. Además, elimine las conexiones de palabras en su pregunta, ya que solo se aplica a TCP.

El mejor momento para usar UDP es cuando la pérdida de paquetes no requiere retransmisión. Por ejemplo, VOIP en tiempo real, ya que si se descarta un paquete, no tiene ningún valor que el host remitente lo vuelva a enviar, ya que esa parte de la conversación ya ha pasado.

Un buen ejemplo de UDP es Netflix, la velocidad es primordial (es decir, debe llevar el video y el audio al televisor para que no haya tartamudeo), pero los datos reales, en el caso del video, no son tan importantes.

En el caso del audio, notará si un par de centisegundos de audio no llegan, ya que escuchará un crujido. Sin embargo, en el caso del video, no se dará cuenta si el píxel impar no lo hace, incluso puede que no se dé cuenta si un cuadro completo no lo hace.

Básicamente, puede usar UDP si la velocidad es extremadamente importante, y puede lidiar con datos faltantes o incompletos.

Lo mismo para los juegos de transmisión, los cuadros caídos son normales, y las personas que escriben esos sistemas de transmisión tendrán en cuenta que los datos pueden no recibirse en orden, a tiempo o de ninguna manera.

Básicamente, TCP está garantizado, aparte del fallo real de los enlaces, etc., pero si subo 100 MB de datos, esos datos llegarán allí, y en el orden en que los envié.

UDP, puede que no llegue allí, puede que no llegue en orden, pero llegará allí lo más rápido posible.

Si estaba escribiendo un competidor de Netflix, UDP es la opción obvia, a menos que tenga un gran búfer, entonces TCP podría estar bien.

UDP es una transmisión. Una computadora que transmite datos a la red. Se puede enviar a cualquier número de computadoras (al menos en la red local), no hay respuesta, no hay persistencia. Está tomando un megáfono y gritando. Alguien por ahí puede estar escuchando, pero a quién le importa.

TCP es una conversación. Dos computadoras intercambian datos en una mansión ordenada. Es una charla educada por teléfono. Ambas partes declaran completamente sus mensajes y reconocen lo que se ha dicho.


En el pasado, trabajé en una herramienta de prueba de rendimiento de red.

Utilizamos UDP para monitoreo de red, registro de depuración remota, descubrimiento de red y actualizaciones de estado en vivo. Utilizamos TCP para recibir datos de prueba, comando y control de prueba, transacciones HTTP sin procesar y transmitir resultados de prueba.

En una dulce respuesta súper simple: tiempo.

Si su aplicación es sensible al tiempo donde importa el orden de los paquetes, entonces UDP lo es. Los ejemplos se transmiten como en VoIP, etc.

Para exagerar demasiado, no vas a intentar reproducir una película, deja que se amortigüe un rato, mira el medio, luego comienza y luego termina.

Las aplicaciones de seguridad y ancho de banda bajo en general apuntarán generalmente a UDP. Las VPN, por ejemplo, deberían ser UDP.

VoIP, aplicación y transmisión de video son aplicaciones donde sugeriría UDP.

Depende de lo que busca. TCP proporciona formas de recuperarse de la pérdida de paquetes, entre otras características interesantes, mientras que UDP es agradable a su manera, es ligero.

TCP es bueno para la transferencia de datos confiable, en situaciones en las que no puede permitirse perder datos / paquetes, debe usar TCP. Como transferir archivos importantes a través de la red, enviar correos electrónicos y todo.

UDP es bueno para aplicaciones en tiempo real (voz, video, juegos, etc.) o aplicaciones en las que desea una respuesta rápida. No se beneficiará de un paquete perdido durante la transmisión de voz / video, ya que para el momento en que se retransmitirá si estaba utilizando TCP, ¡ya no importará!

UDP (8 bytes) tiene una longitud de encabezado mucho menor que TCP (20 bytes a 60 bytes) y, por lo tanto, lleva más tiempo procesar TCP.

Un buen ejemplo es observar la forma en que funcionan los servidores DNS. Las consultas DNS se manejan mediante protocolos UDP, ya que estas consultas tienden a ser grandes en número y deben abordarse con bastante rapidez, también si se pierde un paquete de consulta DNS, el usuario simplemente enviará otro después de esperar un tiempo para la respuesta. Si bien TCP se utiliza para transferir zonas (copia de seguridad y sincronización entre varios servidores DNS), ¡es importante tener exactamente la misma información en todas las bases de datos de servidores DNS!

Espero que haya ayudado.

https: //www.ccnaccnplinux.blogsp

Todo el trabajo realizado en la capa de transporte “. Porque en” capa de transporte “suceden dos cosas

1. Cómo se envían los datos

2. Definir puerto conocido

2. Número de puerto utilizado por el servidor para identificar qué servicio solicita el usuario

Entonces.

si Solicitud de usuario para servicio web. El servidor usará HTTP (80) y HTTPS (443)

HTTP y HTTP usan TCP

y si la Solicitud de usuario para TFTP y luego usará UDP

TCP (Protocolo de control de transmisión)

  1. Orientado a la conexión : significa que se presentará y luego enviará los datos. Utiliza 3 Way Handshake para presentar

Apretón de manos de 3 vías

PC ———— Sync- ——————-> Servidor

(Sincronización: – Estoy comenzando la comunicación contigo)

<—————— –Sync-Ack —————————

(También comienzo a sincronizar contigo)

———— -Ack– ——————————————>

(Lo tengo ahora comenzar la comunicación).

(Eso se repite cada vez que ocurre la comunicación).

2. Confiable : lo que significa que después de enviar los datos, enviará el Acuse de recibo (que recibí los datos y ahora me envía el siguiente paquete)

3. utiliza el número de secuencia para res transmitir la información

UDP (Protocolo de datagramas de usuario)

  1. Sin conexión : lo que significa que no se presentará. solo envía los datos.
  2. No confiable : es decir, no Ack después de recibir los datos
  3. Entrega de mejor esfuerzo : lo que significa no enviar la sincronización y el reconocimiento.

https://www.ccnaccnplinux.blogspot.com

Visita al blog para más información