Protocolo UDP
En redes informáticas, UDP significa Protocolo de Datagramas de Usuario. David P. Reed
desarrolló el protocolo UDP en 1980. Está definido en el RFC 768, y es parte de
el TCP/IP
protocolo, por lo que es un protocolo estándar sobre Internet. El protocolo UDP permite que la computadora
aplicaciones para enviar los mensajes en forma de datagramas de una máquina a otra
máquina sobre el Protocolo de Internet (IP)
red. El UDP es un protocolo de comunicación alternativo al protocolo TCP (transmisión
protocolo de control). Al igual que TCP, UDP proporciona un conjunto de reglas que rigen cómo se deben
intercambiados a través de Internet. El UDP funciona encapsulando los datos en el paquete y
proporcionando su propia información de encabezado al paquete. Luego, este paquete UDP se encapsula en el
Paquete IP y enviado a su destino. Tanto el TCP como el UDP
los protocolos envían los datos a través de la red de protocolo de internet, por lo que también se conoce como TCP/IP
y UDP/IP. Hay muchas diferencias entre estos dos protocolos. UDP permite el proceso
para procesar la comunicación, mientras que TCP proporciona comunicación de host a host. Dado que UDP
envía los mensajes en forma de datagramas, se considera el modo de mejor esfuerzo de
comunicació[Link]
envía los paquetes individuales, por lo que es un medio de transporte confiable. Otra diferencia es que el
TCP es un protocolo orientado a la conexión, mientras que el UDP es un protocolo sin conexión, ya que no lo hace
no requiere ningún circuito virtual para transferir los datos.
UDP también proporciona un número de puerto diferente para distinguir las distintas solicitudes de los usuarios y
también proporciona la capacidad de verificación de suma de comprobación para verificar si los datos completos han llegado o
no; elIP
capa no proporciona estos dos servicios.
Características del protocolo UDP
Las siguientes son las características del protocolo UDP:
oProtocolo de capa de transporte
UDP
is the simplesttransport layer communication protocol
Contiene una cantidad mínima de mecanismos de comunicación. Se considera poco fiable.
protocolo, y se basa en servicios de entrega de mejor esfuerzo. UDP no proporciona confirmación
mecanismo, lo que significa que el receptor no envía el acuse de recibo por el recibido
paquete, y el remitente tampoco espera la confirmación del paquete que ha enviado.
oSin conexión
El UDP es un protocolo sin conexión ya que no crea un camino virtual para transferir los
datos. No utiliza la ruta virtual, por lo que los paquetes se envían por diferentes rutas entre el
sender and the receiver, which leads to the loss of packets or received out of order.
La entrega ordenada de datos no está garantizada.
En el caso de UDP, los datagramas se envían en un orden que será recibido en el mismo.
el orden no está garantizado ya que los datagramas no están numerados.
oPuertos
El protocolo UDP utiliza diferentes números de puerto para que los datos puedan ser enviados a la
destino correcto. Los números de puerto están definidos entre 0 y 1023.
oTransmisión más rápida
UDP permite una transmisión más rápida ya que es un protocolo sin conexión, es decir, no hay un camino virtual.
se requiere transferir los datos. Pero hay una posibilidad de que se pierda el paquete individual,
lo que afecta la calidad de la transmisión. Por otro lado, si el paquete se pierde en TCP
conexión, ese paquete será reenviado, por lo que garantiza la entrega de los paquetes de datos.
oMecanismo de reconocimiento
El UDP no tiene ningún mecanismo de reconocimiento, es decir, no hay un apretón de manos.
entre el emisor UDP y el receptor UDP. Si el mensaje se envía en TCP, entonces el
el receptor reconoce que estoy listo, entonces el remitente envía los datos. En el caso de
TCP, el apretón de manos ocurre entre el remitente y el receptor, mientras que en UDP,
no hay apretón de manos entre el remitente y el receptor.
oSegments are handled independently.
Cada segmento UDP se maneja individualmente de los demás, ya que cada segmento toma diferentes
ruta para llegar al destino. Los segmentos UDP pueden perderse o entregarse fuera de orden
alcanzar el destino ya que no hay conexión establecida entre el remitente y el
receptor.
oSin estado
Es un protocolo sin estado, lo que significa que el remitente no recibe la confirmación.
por el paquete que ha sido enviado.
¿Por qué requerimos el protocolo UDP?
Como sabemos que el UDP es un protocolo poco fiable, pero aún necesitamos un protocolo UDP en
en algunos casos. El UDP se implementa donde los paquetes requieren una gran cantidad de
ancho de banda junto con los datos reales. Por ejemplo, en la transmisión de video, reconociendo
miles de paquetes es problemático y desperdicia mucha ancho de banda. En el caso del video
streaming, la pérdida de algunos paquetes no podría crear un problema, y también puede ser
ignoró.
Formato del encabezado UDP
En UDP, el tamaño del encabezado es de 8 bytes, y el tamaño del paquete es de hasta 65,535 bytes. Pero esto
el tamaño del paquete no es posible ya que los datos necesitan ser encapsulados en el datagrama IP, y
un paquete IP, el tamaño de la cabecera puede ser de 20 bytes; por lo tanto, el máximo de UDP sería
65,535 menos 20. El tamaño de los datos que el paquete UDP puede llevar sería 65,535
menos 28 como 8 bytes para el encabezado del paquete UDP y 20 bytes para el encabezado IP.
El encabezado UDP contiene cuatro campos:
oNúmero de puerto de origen: Es una información de 16 bits que identifica qué puerto se va a utilizar.
envía el paquete.
oNúmero de puerto de destino: identifica qué puerto va a aceptar el
información. Es información de 16 bits que se utiliza para identificar el nivel de la aplicación
servicio en la máquina de destino.
oLongitud: Es un campo de 16 bits que especifica la longitud total del paquete UDP que
incluye el encabezado también. El valor mínimo sería de 8 bytes, ya que el tamaño del
el encabezado tiene 8 bytes.
oChecksum: Es un campo de 16 bits y es un campo opcional. Este campo de suma de verificación
verifica si la información es precisa o no, ya que existe la posibilidad de que
la información puede corromperse durante la transmisión. Es un campo opcional, que
significa que depende de la aplicación, si quiere escribir el
checksum or not. If it does not want to write the checksum, then all the 16 bits
son cero; de lo contrario, escribe el checksum. En UDP, el campo de checksum se aplica
al paquete entero, es decir, tanto el encabezado como la parte de datos, mientras que en IP, la suma de verificación
el campo se aplica solo al campo de encabezado.
Concepto de cola en el protocolo UDP
En el protocolo UDP, se utilizan números para distinguir los diferentes procesos en un servidor.
y cliente. Sabemos que UDP proporciona una comunicación de proceso a proceso. El cliente
genera los procesos que necesitan servicios mientras el servidor genera los procesos que
proporcionar servicios. Las colas están disponibles para ambos procesos, es decir, dos colas para
cada proceso. La primera cola es la cola de entrada que recibe los mensajes, y el
el segundo es la cola saliente que envía los mensajes. La cola funciona cuando
el proceso está en ejecución. Si el proceso se termina, entonces la cola también se detendrá.
destruido.
UDP se encarga del envío y recepción de los paquetes UDP con la ayuda de la
los siguientes componentes:
o La cola de entrada: Los paquetes UDP utilizan un conjunto de colas para cada proceso.
oMódulo de entrada: Este módulo toma el datagrama del usuario de la IP, y luego
encuentra la información de la tabla del bloque de control del mismo puerto. Si encuentra el
entrada en la tabla de bloques de control con el mismo puerto que el datagrama del usuario, se
encola los datos.
oControl Block Module:It manages the control block table.
oTabla de bloque de control: La tabla de bloque de control contiene la entrada de puertos abiertos.
oMódulo de salida: El módulo de salida crea y envía el datagrama de usuario.
Varios procesos quieren utilizar los servicios de UDP. UDP multiplica y
demultiplexa los procesos para que los múltiples procesos puedan ejecutarse en un solo host.
Limitations
oOfrece un servicio de entrega de conexión poco confiable. No proporciona ninguna
servicios de IP excepto que proporciona comunicación de proceso a proceso.
oEl mensaje UDP puede perderse, retrasarse, duplicarse o llegar fuera de orden.
oNo proporciona un servicio de entrega de transporte confiable. No proporciona ninguno.
mecanismo de reconocimiento o control de flujo. Sin embargo, proporciona error
control hasta cierto punto.
Ventajas
oProduce un número mínimo de gastos generales.
Sockets sin conexión (UDP)
Los sockets sin conexión (el Protocolo de Datagramas de Usuario, o UDP) son tu otra opción para transferir
datos entre dos dispositivos en red. Estos se utilizan típicamente en aplicaciones que requieren poco
sobrecarga y que desean lograr un mayor rendimiento de red, como la transmisión de multimedia
protocolos. Otra ventaja de usar UDP es que es capaz de transmitir datos a múltiples
puntos finales simultáneamente porque una conexión no está vinculada a una sola dirección. Porque UDP
transfiere datagramas (paquetes de mensajes) en lugar de un flujo conectado, estas conexiones son
considerado poco confiable y sin conexión. Sin embargo, no confundas el término poco confiable con bajo
calidad? poco confiable en este contexto significa solo que el protocolo no garantiza que tus datos
los paquetes llegarán alguna vez a su destino. Además, no hay un orden secuenciado en el que lleguen.
garantizado para llegar, ni ninguna notificación si un paquete nunca llega.
Puedes comparar el uso de datagramas UDP con el hecho de registrar varias piezas de equipaje (tus paquetes) en
el aeropuerto al mismo tiempo. A pesar de que abordaron el avión en un cierto orden (los paquetes yendo
fuera a través de la red), estás bastante seguro de que llegarán a su destino. Una vez que te bajes del
planea y intenta reclamar tu equipaje, no estás exactamente seguro en qué orden serán descargados
(paquetes que llegan al punto final), pero puedes estar relativamente seguro de que llegarán allí en una pieza.
Desafortunadamente, de vez en cuando, algo se pierde y nunca se vuelve a ver.
Si estás planeando usar UDP como tu método para enviar datos, probablemente sea una buena idea tener tu
la aplicación ya sea envía algún tipo de acuse de recibo de que recibió un datagrama, o proporciona alguna
forma de reensamblar paquetes en un orden predeterminado utilizando algún tipo de secuencia? como un
¿número de paquete o marca de tiempo? en su mensaje de datagrama. Esto puede garantizar una cierta cantidad de fiabilidad.
con el protocolo.
La figura 1.4 muestra el proceso para crear conexiones de socket UDP tanto del cliente como del servidor y cómo
los datos fluyen entre ambos puntos finales de la red.
Figura 1.4. Proceso de socket para clientes y servidores sin conexión
Antes de que puedas enviar o recibir paquetes UDP, ya seas el cliente o el servidor, necesitas
crear un socket para hablar usando elsocket()función, y pasar
elSOCK_DGRAMyIPPROTO_IDPparameters:
SOCKET sUDPSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
Una vez que hayas creado tus sockets, también necesitasbind()el enchufe a la interfaz en la que
quieres recibir datos. Esto se hace exactamente de la misma manera que usando una conexión TCP.
Ahora que tenemos nuestros sockets listos, echemos un vistazo a lo que se requiere para enviar y recibir.
paquetes de datagrama. Recuerda que aunque hemos enlazado el socket, no necesitamos llamar
elescuchar()oaceptar()funciones, ya que vamos a operar de manera desconectada,
lo que nos permite enviar o recibir paquetes a cualquier dispositivo en la red.
Enviando un datagrama UDP
Una vez que hayas creado tus sockets, enviar un paquete a través de UDP es bastante sencillo. Para enviar un
mensaje, necesitas llamar alenviar()función, que se define de la siguiente manera:
int sendto (SOCKET s, const char *buf, int len, int flags,
const struct sockaddr *to, int tolen);
Puedes notar que los parámetros son similares a losenviar()función.
Elsel parámetro es el socket en el que queremos enviar datos, que fue creado usando
elsocket()función. Elbufel parámetro es un puntero a un búfer que contiene los datos que queremos
enviar, y su longitud está especificada en ellenparámetro. Elbanderasel parámetro se utiliza para afectar el
la forma en que se envían los datos, y puede ser 0 oMSG_NO_RUTEO, que especifica que los datos no deben ser
enrutado. Típicamente, este parámetro se establecerá en 0. Elael parámetro contiene un puntero a
aSOCKADDR_INestructura de dirección con la dirección de destino del paquete. También puedes construir un
paquete de transmisión (enviándolo a cada máquina en la red, lo cual generalmente no se recomienda), y
puedes usar la direcciónINADDR_BROADCASTsi has configurado la opción de socket en modo de difusión
(ver la sección "Opciones de Socket"). Finalmente, elrobarel parámetro especifica la longitud de
eladirección.
Elsendto()la función devolverá el número de bytes que ha transferido, o unERROR_DE_SOCKETsi hay
hubo un problema al enviar el datagrama.
El siguiente ejemplo envía un datagrama UDP:
// Crear un socket sin conexión
SOCKET sUDPSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
// Check to see if we have a valid socket
si(sUDPSocket == SOCKET_INVALID) {
int iSocketError = WSAGetLastError();
devuelve FALSO;
}
// Configurar la dirección del dispositivo objetivo. Para esta muestra,
// we are assuming it is a machine at [Link], and on
// puerto 40040
SOCKADDR_IN sDispositivoObjetivo;
memset(&sTargetDevice, 0, sizeof(SOCKADDR_IN));
sTargetDevice.sin_family = AF_INET;
sTargetDevice.sin_port = htons(40040);
sTargetDevice.sin_addr.s_addr = inet_addr("[Link]");
// Enviar un datagrama al dispositivo objetivo
char cBuffer[1024] = "Buffer de prueba";
int nBytesSent = 0;
int nBufSize = strlen(cBuffer);
nBytesSent = sendto(sUDPSocket, cBuffer, nBufSize, 0,
(SOCKADDR *) &sTargetDevice
sizeof(SOCKADDR_IN));
// Cerrar el socket
cierraelsoquetedesocket(sUDPSocket);
Recibiendo un datagrama UDP
Para que su aplicación reciba un paquete UDP, debe llamar alrecvfrom()función, que
se bloqueará hasta que los datos hayan llegado de un cliente (o puede devolver inmediatamente si está en modo no bloqueante; consulte
"Socket Options"):
int recvfrom (SOCKET s, char *buf, int len, int flags,
struct sockaddr *from, int *fromlen);
Observe que los parámetros son muy similares a los descritos para elrecibir()función. El primero
parámetros, es el socket en el que queremos recibir datos. A continuación,bufes un puntero a un búfer para
los datos entrantes, y su tamaño está especificado por ellongitudparámetro. Elbanderasel parámetro debe ser establecido
a 0. Finalmente, eldeel parámetro contiene un puntero a elSOCKADDR_INestructura, que contiene
información sobre el dispositivo que envió los datos. Un puntero a su longitud está en eldesdecampo.
Si el paquete se recibe correctamente,recvfrom()regresará un 0; de lo contrario, unERROR_DE_SOCKETvoluntad
ocurrir.
El siguiente ejemplo muestra cómo recibir un paquete de datagramas UDP:
// Crear un socket sin conexión
SOCKET sUDPSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
// Verificar si tenemos un socket válido
si(sUDPSocket == SOCKET_INVALIDO) {
int iSocketError = WSAGetLastError();
return FALSE;
}
// Configurar un enlace en el socket, indicándonos qué puerto y
// adaptador para recibir datagramas. Suponga que estamos escuchando
en el puerto 40040
SOCKADDR_IN sReceiveFromAddr;
memset(&sReceiveFromAddr, 0, sizeof(SOCKADDR_IN));
sReceiveFromAddr.sin_family = AF_INET;
sReceiveFromAddr.sin_port = htons(40040);
sReceiveFromAddr.sin_addr.s_addr = htonl(INADDR_ANY);
si(bind(sUDPSocket, (SOCKADDR *)&sReceiveFromAddr,
sizeof(SOCKADDR_IN)) ==
SOCKET_ERROR)
int iSocketError = WSAGetLastError();
retornar FALSO;
}
Recibir un datagrama de otro dispositivo
char cBuffer[1024] = "";
int nBytesRecv = 0;
int nBufSize = strlen(cBuffer);
int nReceiveAddrSize = 0;
// Obtener el datagrama
nBytesRecv = recvfrom(sUDPSocket, cBuffer, nBufSize, 0,
(SOCKADDR *) &sReceiveFromAddr,
&nReceiveAddrSize);
// Cerrar el socket
closesocket(sUDPSocket);
WSACleanup();
Una nota final sobre el envío y recepción de datos UDP: También puedes transferir datos utilizando
elconectar(), enviar(), yrecv()Funciones. Transmitir datos UDP de esta manera se considera un
transferencia sin conexión 'dirigida' de alguna manera, y solo se debe utilizar si planeas comunicarte
con un dispositivo más durante una sesión (es decir, todos los paquetes se envían a la misma dirección). Para hacer esto,
después de que se haya creado su socket UDP, llame alconectar()función conSOCKADDR_INestablecer en el
máquina con la que deseas establecer una sesión. No se establecerá una conexión real, pero puedes
usar elenviar()yrecv()funciones para transferir datos con la dirección asociada.
¿Qué es un datagrama de usuario?
¿Protocolo (UDP)?
Definición rápida: El Protocolo de Datagramas de Usuario (UDP) es un
estándar de comunicaciones para el intercambio de datos a través de la
Internet. UDP prioriza la velocidad sobre la fiabilidad, utilizando un
proceso sin conexión para enviar paquetes de datos a un
destination. Due to its low latency, UDP is ideal for time-
casos de uso sensibles como la transmisión de video, Voce sobre
Protocolo de Internet (VoIP), juegos de video y Nombre de Dominio
Búsquedas del Sistema (DNS).
G LO SAR I O I OT
Escrito por EMnify
SHARE THIS POST
Cuando los protocolos de alto nivel necesitan transmitir datos rápidamente, dependen de UDP para
paquetear y distribuir esos datos a través del Protocolo de Internet (IP).
A diferencia deProtocolo de Control de Transmisión (TCP)el protocolo más comúnmente utilizado
para transmitir datos a través de Internet—UDP no ordena los paquetes de datos ni
establecer directamente una conexión entre los puntos finales, como la seguridad de IoT
cámara y un teléfono inteligente. También carece de sistemas de control de congestión para
optimizar los recursos de la red. Simplemente obtiene datos del Punto A al Punto B
tan rápido como sea posible.
Al intercambiar datos a través del Protocolo de Internet, los paquetes de datos a menudo pueden
llegar fuera de orden o perderse en la transmisión. TCP solicitará retransmisiones
of lost data packets and reorganize packets that arrive out of order. This
aumenta la precisión, pero también aumenta la latencia, y si los paquetes individuales de
un archivo de audio o video se pierde, a menudo los humanos ni siquiera pueden detectar los errores.
La retransmisión de paquetes faltantes o su reordenamiento cuando llegan solo
causar más interferencias en el flujo de datos en tiempo real.
UDP no corrige errores, duplicados ni piezas faltantes. Si un protocolo utiliza
UDP para la transmisión de datos, la integridad de los datos es poco importante, o el
la aplicación misma tiene un proceso para verificar errores.
Encabezados UDP
Al igual que TCP, UDP etiqueta los paquetes de datos con un encabezado. Pero los encabezados de UDP son
mucho más simple. Solo hay cuatro campos:
Puerto de origen
2. Puerto de destino
3. Longitud de UDP
4. Suma de verificación
El puerto de origen indica de dónde proviene la transmisión.
el puerto de destino indica a dónde va. La longitud de UDP especifica cuántos
cuántos bytes representan el encabezado y los datos. Y el checksum es un campo
que se puede utilizar para verificar errores en el encabezado o en el flujo de datos.
TCP tiene numerosos campos adicionales en el encabezado que ayudan a verificar que el
Los paquetes de datos llegan intactos y se pueden reorganizar según sea necesario. Estos adicionales
los campos aumentan significativamente el tamaño del encabezado.
UDP en IoT
En IoT (y la transmisión de datos en general), el Protocolo de Datagramas de Usuario es menos
más común que TCP. Pero UDP a menudo atrae a los fabricantes de IoT porque lo
usa menos recursos de red para transmitir y no tiene que mantener un
conexión constante entre los dos puntos finales. En otras palabras, utiliza menos
datos y consume menos energía.
Dispositivos con recursos limitados
Los dispositivos IoT a menudo operan dentro de Redes de Bajo Consumo y Pérdida (LLNs). LLNs
están optimizados para la eficiencia energética, por lo que tienen muy pocos recursos.
El Protocolo de Aplicación Constrained (CoAP) fue desarrollado específicamente para ayudar
estos dispositivos se comunican, y funciona en dispositivos que utilizan UDP.
Bajas transmisiones de bajada
UDP no envía ninguna confirmación de que se recibió una transmisión.
El remitente no sabe si los paquetes de datos arribaron, pero el intercambio
requiere menos presupuesto de bajada. Para transmisiones con baja bajada
las asignaciones, UDP puede ser un protocolo de comunicación valioso.
Aplicaciones de bajo consumo
In IoT, it’s often not a problem to lose a single datapoint because the device
lo envía periódicamente. Intentar reenviar los datos agota más batería cada vez
un punto de datos se pierde o tiene un error. Y como UDP no envía un
acuso de recibo, el dispositivo puede apagarse más rápido después de enviar o recibir un
transmisión. Esto hace que UDP sea atractivo para los desarrolladores que quieren
maximizar la eficiencia energética.
Seguridad UDP
Aunque UDP es fácil de implementar y tiene menos sobrecarga, también deja tu
devices more vulnerable to cyber attacks.
Dado que TCP establece una conexión directa y proporciona un número de secuencia,
es más difícil para alguien enviar un paquete a una aplicación específica. Con
UDP, es más fácil interceptar, alterar y replicar paquetes de datos para atacar a un
dispositivo, aplicación o red.
Además, las botnets (redes masivas de computadoras hackeadas, incluyendo IoT
los dispositivos) pueden usar UDP para enviar paquetes fraudulentos a una computadora. Los bots estarán
a menudo envía transmisiones de spam a puertos inexistentes, y la computadora luego tiene que
envía una respuesta que el puerto no está disponible. Esto rápidamente toma la red
recursos de transmisiones de datos legítimas y pueden derribar la red.
Con UDP, necesitas ser proactivo acerca deSeguridad IoTy ten confianza en que
su seguridad a nivel de hardware y de red puede proteger los datos de sus clientes
y prevenir que tus dispositivos se conviertan en responsabilidades.
Obtén conectividad IoT segura con
EMnify
EMnify es una plataforma de comunicación dedicada a IoT. No solo puede tu
los dispositivos se conectan a través de nuestra red móvil global, pero la plataforma también
asegura la seguridad de tu dispositivo. Con características de seguridad avanzadas como
redes privadas, cortafuegos de red con listas blancas de IP y DNS personalizado que
prevenir ataques comunes de UDP y hacer comunicación maliciosa con tu
dispositivo imposible.
Protocolo de Datagramas de Usuario (UDP) :
Es un protocolo de capa de transporte. Es un protocolo no confiable y sin conexión.
es mucho más rápido, simple y eficiente que TCP. Sin embargo, no verifica errores
debido a lo cual se ahorra ancho de banda. Se utiliza ampliamente en servicios en tiempo real como
videojuego, voz o comunicación por video
Los paquetes enviados por el UDP se llaman datagramas de usuario.
Los servicios ofrecidos por el TCP son los siguientes:
Transmisión de segmentos de puerto a puerto de proceso a proceso
Protocolo sin conexión y con mínimo Overhead
Transmisión rápida y sencilla
Sin control de flujo y errores, las aplicaciones que utilizan servicios UDP son responsables
por proporcionarles
UDP encapsula y desencapsula los mensajes.
Ventajas :
El paquete creado por UDP es relativamente más pequeño que el de TCP (UDP
Encabezado: 8 bytes
Transmisión sin conexión
Es más rápido, simple y eficiente
Desventajas :
No hay garantía de que el remitente recibirá los datos
Falta de mecanismos adecuados de verificación de errores
Los paquetes perdidos no serán retransmitidos
Hay una posibilidad de recibir paquetes fuera de orden
Ejemplos de la vida real de UDP:
1. Juegos en línea –
La mayoría de los juegos en línea que jugamos utilizan los servicios de User Datagram
Protocolo. Dado que no se puede tolerar ningún tipo de retraso en los juegos en línea.
UDP se utiliza ampliamente sobre TCP, que es bastante más lento. UDP no retransmite.
los datos perdidos y es un protocolo sin conexión debido a lo cual es mucho más rápido.
Todos los juegos en línea
[Link] Conferencia –
Las aplicaciones de videoconferencia como Skype, Gmeet, Zoom, todas utilizan los servicios de
UDP debido al hecho de que son aplicaciones en tiempo real y cualquier retraso en
no se puede tolerar la recepción de datos.
Ej: Skype, Google Meet, Zoom y Facetime.
[Link] Over IP(VoIP) –
Es similar a la videoconferencia, donde apps como Viber, Whatsapp, Google
Hangouts utiliza UDP para convertir nuestra voz en datos digitales y transmitirlos.
a través de la red, de ahí el nombre VoIP.
Ex: Viber, Whatsapp Llamadas de voz, Llamadas por Wi-Fi.
[Link] de Nombres de Dominio (DNS) –
Es un servicio utilizado para mapear nombres de dominio a sus correspondientes direcciones IP.
dirección. Se utiliza en la capa de aplicación. También se puede ver como un
distributed DataBase that has a hierarchical name Server. DNS uses UDP
para obtener la dirección IP correspondiente debido a las siguientes razones:
a) UDP es mucho más rápido que TCP. Después de todo, la velocidad importa mucho al cargar
una página web
Las solicitudes DNS son típicamente solicitudes pequeñas y se pueden acomodar.
dentro de los segmentos UDP (Encabezado).
c) A pesar de que UDP no es confiable, se puede lograr en la capa de aplicación.
demasiado
Por lo tanto, estos fueron los ejemplos de la vida real de TCP y UDP.
UDP - Ejemplo de Cliente y Servidor
Programas en Python
[Link]
2.Módulos
[Link]
4. Ejemplo de cliente-servidor Udp
UDP Overview:
UDP es la abreviatura de Protocolo de Datagramas de Usuario. UDP hace uso de
Protocolo de Internet de la suite TCP/IP. En las comunicaciones que utilizan UDP, un cliente
el programa envía un paquete de mensaje a un servidor de destino en el que
el servidor de destino también funciona con UDP.
Propiedades de UDP:
El UDP no proporciona entrega garantizada de paquetes de mensajes. Si
Por algún problema en una red, si un paquete se pierde, podría perderse para siempre.
Dado que no hay garantía de entrega asegurada de mensajes, UDP es
considerado un protocolo poco fiable.
Los mecanismos subyacentes que implementan UDP no involucran conexión.
based communication. There is no streaming of data between a UDP
servidor o y un cliente UDP.
Un cliente UDP puede enviar 'n' número de paquetes distintos a un servidor UDP
y también podría recibir un número "n" de paquetes distintos como respuestas de
el servidor UDP.
Dado que UDP es un protocolo sin conexión, la sobrecarga involucrada en UDP es
menos en comparación con un protocolo basado en conexión como TCP.
Ejemplo: Servidor UDP usando Python
importar socket
localIP = "[Link]"
localPort = 20001
bufferSize = 1024
msgFromServer = "Hello UDP Client"
bytesToSend = [Link](msgFromServer)
Crear un socket de datagramas
UDPServerSocket = [Link](familia=socket.AF_INET, tipo=socket.
# Vincular a la dirección y dirección IP
[Link]((localIP, localPort))
Servidor UDP en funcionamiento y escuchando
Escuchar datagramas entrantes
mientras(True):
bytesAddressPair = [Link](tamañoBuffer)
message = bytesAddressPair[0]
address = bytesAddressPair[1]
clientMsg = "Message from Client:{}".format(message)
clientIP = "Client IP Address:{}".format(address)
print(clientMsg)
print(clientIP)
Enviando una respuesta al cliente
[Link](bytesToSend, dirección)
Output:
Servidor UDP en ejecución y escuchando
Hola Servidor UDP
Client IP Address:("[Link]", 51696)
Ejemplo: Cliente UDP usando Python
importar socket
msgFromClient = "Hello UDP Server"
bytesToSend = [Link](msgFromClient)
serverAddressPort = ("[Link]", 20001)
bufferSize = 1024
Crear un socket UDP en el lado del cliente
UDPClientSocket = [Link](family=socket.AF_INET, type=socket.
Enviar al servidor utilizando el socket UDP creado
[Link](bytesToSend, serverAddressPort)
msgDelServidor = [Link](tamañoDelBuffer)
msg = "Message from Server {}".format(msgFromServer[0])
imprimir(msg)
Output:
Message from Server b"Hello UDP Client"
DesventajasoinconvenientesdeUDP
A continuación se presentan las desventajas o inconvenientes de UDP:
➨Es un protocolo de transporte sin conexión y poco fiable. No hay agrupamiento.
y ninguna función para asegurar que los datos se reciban en el mismo orden en que fueron
transmitido.
➨No utiliza ningún control de errores. Por lo tanto, si UDP detecta algún error en el
paquete recibido, lo descarta en silencio.
➨No hay control de congestión. Por lo tanto, un gran número de usuarios transmitiendo mucho.
la transmisión de datos a través de UDP puede causar congestión y nadie puede hacer nada al respecto.
➨No hay control de flujo ni reconocimiento de datos recibidos.
➨Solo la capa de aplicación se encarga de la recuperación de errores. Por lo tanto, las aplicaciones pueden simplemente
pídale al usuario que envíe el mensaje nuevamente.
➨Los enrutadores pueden ser descuidados con UDP. No retransmiten un datagrama UDP.
después de la colisión y a menudo descartará paquetes UDP antes que paquetes TCP.