Socket Stream

Introducción


El paradigma Cliente/Servidor es quizás el más conocido de los paradigmas para aplicaciones de red. Se usa para describir un modelo de interacción entre dos procesos, que se ejecutan de forma simultánea. Este modelo es una comunicación basada en una serie de preguntas y respuestas, que asegura que si dos aplicaciones intentan comunicarse, una comienza la ejecución y espera indefinidamente que la otra le responda y luego continua con el proceso. 

Los dos componentes del paradigma son: 

Cliente que es la aplicación que inicia la comunicación, es dirigida por el usuario y el servidor el cual es quien responde a los requerimientos de los clientes, son procesos que se están ejecutando indefinidamente.
Los procesos clientes son más sencillos que los procesos de los servidores, los primeros no requieren de privilegios de sistemas para funcionar, en cambio los procesos servidores sí.

¿Qué es un Socket?


Se le denomina Socket a una interfaz de entrada o salida de datos que permite la intercomunicación entre procesos. Los procesos pueden estar ejecutandose en el mismo o en distintos sistemas unidos mediante una red.

Se crean dentro de un dominio de comunicación; en donde nos dice dónde se encuentran los procesos que se van a intercomunicar.
¿Qué es un socket stream?
Es servicio orientado a conexión, donde los datos se transfieren como un flujo continuo, sin encuadrarlos en registros o bloques. Este tipo de socket se basa en el protocolo TCP, que es un protocolo orientado a conexión. Esto implica que antes de transmitir información hay que establecer una conexión entre los dos sockets.
Mientras uno de los sockets atiende peticiones de conexión (servidor), el otro solicita la conexión (cliente). Una vez que los dos sockets están conectados, ya se puede transmitir datos en ambas direcciones. El protocolo incorpora de forma transparente al programador la corrección de errores. Es decir, si detecta que parte de la información no llegó a su destino correctamente, esta volverá a ser trasmitida. Además, no limita el tamaño máximo de información a transmitir.


Stream vs Datagrama

Mientras que el Stream es un servicio orientado a conexión donde los datos se transfieren sin encuadrarlos en registros o bloques, además de que si se rompe la conexión entre los procesos, éstos serán informados, el datagrama es un servicio de transporte sin conexión en donde se transmiten paquetes individuales de información y no garantiza que los paquetes llegarán en alguna forma en particular. De hecho los paquetes pueden perderse, duplicarse e incluso llegar en desorden.
El protocolo de comunicaciones con streams es un protocolo orientado a conexión, hay que establecer en primer lugar una conexión entre un par de sockets. Una vez que los dos sockets, en cambio,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


Se puede concluir que los sockets son extremadamente útiles en las conexiones del modelo cliente servidor, mientras que los sockets permiten la correcta transferencia de datos y la interconexión entre equipos y programas, el uso de los sockets stream permiten el correcto uso de los paquetes de información, vitales para la conexión.

Desde sus inicios e implementación junto a él o modelo cliente servidor y el modelo TCP/IP las conexiones entre programas y computadoras han mejorado cada vez más  y se ha vuelto más fácil y rápido implementar; es difícil de predecir como las conexiones cambiaran en el futuro, es evidente que mejoraran y se volverán más optimas de lo que ya son, pero no se sabe ni sabremos como esto pasara.

Bibliografía


- Comer, D. (2014). Internetworking with TCP/IP. Upper Saddle River: Pearson Education Inc.

- Coulouris, G., Dollimore, J., Kindberg, T., Junquera, J., Fernández, B. & Hernández, J. (2001). Sistemas distribuidos : conceptos y disen̋o. Madrid: Pearson Educación,Addison Wesley.

Comentarios

Entradas más populares de este blog

Cifrado Asimétrico

Proceso de depuración

Sockets