Sockets
Enviado por Albert • 8 de Marzo de 2018 • 24.584 Palabras (99 Páginas) • 308 Visitas
...
Validation of the hypothesis has been tested and proven through statistical model used, generating the overall conclusion as a result of the testing of the global hypothesis using the following statement: "... Whenever the requirements of system developments are more rigorous and with the advancement of technology many things are provided, the end user wants to have a system that is fast, reliable, understandable and visually appealing, with the development of this project both the application that will function as "Web Socket Server" and the rules for establish a standard communication between user and application, it may provide a more user-friendly to developers who interact with these requirements alternative. ".
Keywords: Sockets, Socket Web Server, Technology Sockets.
---------------------------------------------------------------
4. ANTECEDENTES
En el ámbito nacional e internacional, se han encontrado las siguientes investigaciones:
Rivera (2012) señalan que los servidores DNS son máquinas que resuelven consultas sobre nombres de dominio y se caracterizan por atender grandes cantidades de pequeñas peticiones que usualmente caben en una única unidad de comunicación en Internet llamada paquete. Para aumentar la cantidad de respuestas, el software encargado de esto explota las máquinas con múltiples procesadores, paralelizando las atenciones, lo cual ha mostrado no generar las ganancias esperadas. Para estudiar este problema se replicó la operación usando núcleos de Sistemas Operativos modernos e intentando leer concurrentemente desde un socket, identificando así los posibles puntos de falla: la implementación de read en la libc, el mecanismo de atención de las llamadas al sistema, o alguna porción de código ejecutado al recibir un paquete desde Internet.
Los primeros dos posibles orígenes fueron descartados con pruebas directas mediante la comparación del rendimiento de read al leer desde distintas fuentes y determinando cómo se comporta la atención de las llamadas a sistema, mediante la creación de una de estas con fines de prueba. Así, el estudio se concentra en la tercera posible fuente del problema: el núcleo de Linux (Rivera, 2013).
Para estudiar el comportamiento de cómo es recibido un paquete, se investigó cómo fluye la información a través del stack de red desde que ésta arriba al dispositivo. Se descubrió que la información era encolada en estructuras de datos compartidas, requiriendo sincronización, e identificando, por lo tanto, un posible punto de falla. Para corroborarlo, se modificó un núcleo con el fin de determinar cómo la sincronización afectaba en la serialización de los accesos a un socket. Los resultados de las pruebas anteriores ejecutadas sobre el núcleo modificado arrojaron que el esquema de sincronización utilizado no permitía las lecturas concurrentes, por lo que se propuso cambiar el esquema de encolamiento de los paquetes en el socket, introduciendo estructuras que sí permitan la paralelización de read. Para simplificar la situación, el esquema de encolamiento de paquetes fue modelado en una implementación en C en espacio usuario, replicando estructuras y sincronización presentes en el núcleo. Sobre este modelo fue implementada una solución con múltiples colas de recepción de paquetes, creando colas por cada lector concurrente desde el lado de la aplicación. Finalmente, el modelo arrojó que esta solución permite efectivamente paralelizar los accesos, llegando a duplicar el throughput alcanzado actualmente por los sockets en determinadas configuraciones de threads (Rivera, 2013).
En la Universidad Ricardo Palma, Zavala y Molina (2011) presentaron la investigación titulada “Optimización de las comunicaciones bidireccionales en sistemas Web basados en tecnología WebSockets en HTML”, donde se indicó que desde la versión 4.0.249.0 de Google Chrome tenemos disponible los Web Sockets. Los Web Sockets son la siguiente generación en la tecnología de comunicación bidireccional para las aplicaciones web que está siendo estandarizada como parte del documento Web Applications 1.0. Hasta hace poco, la comunicación para las aplicaciones web era implementada por los desarrolladores usando XMLHttpRequest. La comunicación bidireccional usando esta tecnología, forzaba al programador a crear una complejidad innecesaria en el lado del servidor. Web Sockets nos proporciona una comunicación bidireccional real con el navegador, solucionando este problema ya que, una vez establecida la conexión, podemos enviar datos desde el navegador al servidor llamando al método send (), y recibir datos desde el servidor implementando el evento onmessage. Como parte de los Web Sockets, también se ha desarrollado un nuevo protocolo "Web Sockets Protocol", que el navegador usará para comunicarse con los servidores.
[pic 1]
En el código de ejemplo, verás una URI diferente usada para utilizar el nuevo protocolo.
[pic 2]
Y nos preguntaremos, para qué otro protocolo de comunicación si podemos usar los más que probados TCP o HTTP. Pues sencillo, el protocolo no puede ser TCP porque necesitamos mantener el mismo modelo de seguridad proporcionado en el origen. Tampoco puede ser HTTP porque el tráfico manejado difiere del modelo petición-respuesta de éste. (Zavala & Molina, 2011).
Román (2012) presentó la tesis titulada “Diseño e implementación de un sistema colaborativo sockets”, en este documento se presentó el uso del nuevo protocolo también debería de proporcionar un menor uso del ancho de banda, ya que no es necesario el envío de cabeceras una vez establecida la conexión inicial. Para poder usar la nueva API, el protocolo, hacer uso de un modelo de programación más sencillo y obtener un tráfico de red más eficiente, necesitamos una nueva implementación del servidor. Google ha desarrollado una extensión para Apache, llamada pywebsocket, que puede ejecutarse como módulo o incluso como servidor (Roman, 2012, pág. 31).
---------------------------------------------------------------
5. MARCO TEÓRICO
5.1. Conceptos básicos
5.1.1. Dominios de comunicación
En el Manual de Laboratorio de Gestión de Redes de la Universidad de la Coruña (2012) se indica que los sockets se crean dentro de lo que se denomina un dominio de comunicación,
...