Sockets Datagram (Ensayo)
Diego Vertiz Alexis
5IM7
Sockets Datagram
Introducción
El modelo cliente-servidor tiene una grandiosa utilidad, y para que éste se pueda efectuar de la manera correcta se necesitan diversas herramientas, y una de ellas son los sockets, que engloba un gran número de funciones dentro de la comunicación entre diversos medios como comuputadoras a traves de mensajes.
Desarrollo
Un socket, es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API, application programming interface).
Un socket es también una dirección de Internet, combinando una dirección IP (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular, como FTP, Gopher, o WWW).
Los sockets son mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando en distintas máquinas.
Una familia, o dominio de la conexión, agrupa todos aquellos sockets que comparten características comunes. Especifica el formato de las direcciones que se podrán dar al socket y los diferentes protocolos soportados por las comunicaciones vía los sockets de este dominio.
Cada protocolo, a la hora de referirse a un nodo de la red, implementa un mecanismo de direccionamiento. La dirección distingue de forma inequívoca a cada nodo u ordenador, y es utilizada para encaminar los datos desde el nodo origen hasta el nodo destino. Hay muchas llamadas al sistema que necesitan un puntero a una estructura de dirección de socket para trabajar.
Cada tipo de socket va a definir una serie de propiedades en función de las comunicaciones en las cuales está implicado:
-La fiabilidad de la transmisión. Ningún dato transmitido se pierde.
-La conservación del orden de los datos. Los datos llegan en el orden en el que han sido emitidos.
-La no duplicación de datos. Sólo llega a destino un ejemplar de cada dato emitido.
-La comunicación en modo conectado. Se establece una conexión entre dos puntos antes del principio de la comunicación (es decir, se establece un circuito virtual). A partir de entonces, una emisión desde un extremo está implícitamente destinada al otro extremo conectado.
-La conservación de los límites de los mensajes. Los límites de los mensajes emitidos se pueden encontrar en el destino.
-El envío de mensajes (urgentes). Corresponde a la posibilidad de enviar datos fuera del flujo normal, y por consecuencia accesibles inmediatamente (datos fuera de flujo).
Esta primitiva permite la creación de un socket, es decir, la creación e inicialización de entradas en las diferentes tablas del sistema de gestión de archivos, que son: tabla de descriptores de procesos, tabla de archivos y estructuras de datos, conteniendo las características del socket. Entre estas características se encuentran:
-El tipo, el dominio y el protocolo.
-El estado del socket (conectado o no, enlazado, en estado de recibir o de emitir)
-La dirección del socket conectado (si hay alguno): al socket se le asocia un buffer de emisión y otro de recepción.
-Punteros a los datos (en emisión y en recepción)
-Un grupo de procesos para la gestión de mecanismos asíncronos.
Los sockets datagrama son un servicio de transporte sin conexión. Son más eficientes que TCP, pero no está garantizada la fiabilidad. Los datos se envían y reciben en paquetes, cuya entrega no está garantizada. Los paquetes pueden ser duplicados, perdidos o llegar en un orden diferente al que se envió. El protocolo de comunicaciones con datagramas es un protocolo sin conexión, es decir, cada vez que se envíen datagramas es necesario enviar el descriptor del socket local y la dirección del socket que debe recibir el datagrama.
Conclusión
En la actualidad muchas aplicaciones están implementadas usando sockets de forma interna. Por ejemplo: los gestores de bases de datos relacionales, chats, herramientas para el control de versiones, servicios en la nube, e incluso las páginas que solicitamos en el internet se envían y reciben en los browser a través de sockets.
En programación los sockets tienen mucha importancia debido a su uso extendido. A través de ellos y en conjunto con un patrón de diseño podemos implementar un servicio web robusto y extensible, para que el cliente logre obtener lo que desee.
Para que logremos un buen y eficiente sistema distribuido se deben de tomar en cuenta siempre los sockets, ya que cuando se toman en funcionamiento se llega a mejores resultados facilitando la comunicación entre equipos y muchas otras cosas más.
Los sockets nos proporcionan una gran ventaja, porque al usarlos se pueden crear chats donde la respuesta de un servidor sea inmediata, y no como las que se alojan en bases de datos, los cuales comparados con los sockets, tienen mucha lentitud.
Otra de las cualidades de los sockets son la optimización del ancho de banda y que son compatibles con casi todos los lenguajes de Programación, además de estar disponible en casi todos los sistemas operativo
Fuentes
-Developers Android. (22017).Obtenido de https://developer.android.com: https://developer.android.com/reference/java/net/DatagramSocket.html-Mirely, H. (2012). Sockets. Octubre 8, 2017, de BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA Sitio web: https://facturapp.weebly.com/sockets.html
Comentarios
Publicar un comentario