Red de conocimiento informático - Aprendizaje de código fuente - ¿Qué campo en el paquete indica que se trata de una comunicación basada en UDP?

¿Qué campo en el paquete indica que se trata de una comunicación basada en UDP?

El nombre completo del protocolo UDP es User Datagram, que se utiliza para procesar paquetes de datos en la red como el protocolo TCP. En el modelo OSI, la cuarta capa, la capa de transporte, es la capa superior del protocolo IP. UDP tiene la desventaja de no proporcionar agrupación y ensamblaje de datagramas y la incapacidad de ordenar paquetes de datos. Es decir, después de enviar un mensaje, es imposible saber si ha llegado de forma segura y completa.

Por qué usar UDP

A la hora de elegir un protocolo a utilizar, debes tener cuidado al elegir UDP. En un entorno donde la calidad de la red no es muy satisfactoria, la pérdida de paquetes del protocolo UDP será grave. Sin embargo, debido a las características de UDP: no es un protocolo de tipo conexión, por lo que tiene las ventajas de un bajo consumo de recursos y una rápida velocidad de procesamiento. Por lo tanto, el audio, el video y los datos ordinarios generalmente se transmiten mediante UDP, porque incluso si lo hacen. De vez en cuando, perder uno o dos paquetes de datos no tendrá mucho impacto en los resultados de la recepción. Por ejemplo, el ICQ y el OICQ que utilizamos para el chat utilizan el protocolo UDP.

Manipulación de UDP en Java

Utilizando las clases DatagramSocket y DatagramPacket ubicadas en el paquete Java.net en el JDK, puede controlar los mensajes de datos del usuario de manera muy conveniente.

Antes de describirlos, es necesario comprender la clase InetAddress ubicada en la misma ubicación. InetAddress implementa la interfaz Java.io Serializable y no permite herencia. Se utiliza para describir y encapsular una dirección IP de Internet y devuelve una instancia de InetAddress a través de tres métodos:

getLocalhost(): Devuelve una instancia que encapsula la dirección local.

getAllByName(String host): devuelve una matriz de instancias de InetAddress que encapsulan la dirección del host.

getByName(String host): Devuelve una instancia que encapsula la dirección del Host. Entre ellos, Host puede ser un nombre de dominio o una dirección IP legal.