Vous êtes sur la page 1sur 5

TECNOLOGIAS DE SOCKET Andrs Adolfo Verstegui Ollervides Divisin de Estudios de Posgrado e Investigacin Resumen En este artculo se aborda la historia,

funcionamiento, aplicacin y herramientas que utilizan la tecnologa de sockets, esta tecnologa se encuentra dentro de los procesos que realizan las computadoras, tanto entre aplicaciones dentro de una misma computadora, como entre computadoras distintas. Facilitando as la comunicacin entre procesos. Palabras Clave: Tecnologas de socket, interfaz de sockets, interfaz de programacin de aplicaciones. 1. Introduccin Los sockets son una tecnologa diseada para permitir el intercambio de cualquier flujo de datos, de manera fiable y ordenada, este flujo de datos se da entre dos programas, los cuales pueden estar posiblemente en computadoras distintas, el termino socket tambin se conoce con el nombre de interfaz de programacin de aplicaciones (API) dentro de la familia de protocolos de internet TCP/IP, la cual es provista por el sistema operativo. Los orgenes de los sockets est intrnsecamente relacionado con la historia del internet; las primeras computadoras que implementaron sus protocolos de comunicacin fueron las de la Universidad de Berkeley, esta implementacin fue realizada en una variante del sistema operativo Unix, llamado BSD Unix. Esta interfaz fue diseada para permitir a los programas acceder y comunicarse a travs de una red de comunicaciones, esta interfaz fue conocida como el interfaz de sockets viendo el potencial de esta tecnologa la interfaz fue incorporada a la versin 4.1 del sistema operativo. Este sistema operativo al ser adoptado por varios fabricantes estuvo disponible en gran cantidad de mquinas. Debido a esto fue ampliamente aceptado y se convirti en un estndar de facto.

2. Historia

Un socket es una conexin virtual a travs de la cual una computadora es capaz de recibir un dato, esta tecnologa es un mtodo para la comunicacin entre un programa del cliente y un programa del servidor en una red. Esta tecnologa surgi como un medio de comunicacin entre procesos a principios de los aos 80 con el sistema Unix de Berkeley. La idea inicial era utilizar las funciones que suministraba el sistema operativo Unix siempre que fuera posible y, aadir nuevas llamadas al sistema si era difcil encajar los requerimientos de la programacin en red con las funciones existentes en el sistema operativo. Un socket puede ser tambin una direccin de internet, combinando una direccin IP, y un nmero de un puerto, esto permite la comunicacin entre programas que se encuentren en diferentes equipos. 3. Funcionamiento Un socket requiere: un protocolo, una direccin y un puerto. La utilizacin de un socket requiere de dos participantes: uno de ellos denominado servidor y el otro denominado cliente, Entre estos dos participantes se realiza el intercambio de datos, el servidor se encuentra siempre en espera de una peticin entrante por el puerto indicado, y el cliente es quien enva la peticin quedando en espera de una respuesta por parte del servidor. La creacin de esta conexin requiere de la creacin de 1 socket desde cada punta de la conexin, es decir, tanto el servidor como el cliente debern crear un socket, utilizando la misma direccin y puerto, ambos conviniendo el protocolo para poder mantener la comunicacin. La creacin de un socket por ambos participantes no involucra que en la realidad existan dos lneas de comunicacin, ya que los dos clientes utilizan el mismo puerto y direccin, por lo tanto ambos sockets son en realidad una sola lnea de comunicacin. La creacin del socket aunque similar, difiere en ciertos puntos dependiendo si fungir como cliente o como servidor. En la Figura 1 se puede observar el proceso de un socket desde el lado del servidor. El primer paso es crear el socket, recibiendo como parmetros una direccin y un puerto. Esto permitir que el flujo de datos salga y entre por el mismo puerto sin problemas de conexin. La funcin bind hace la conexin con el puerto previamente indicado, quedando listo para listen el cual realiza la funcin de estar al pendiente de cualquier peticin entrante por el puerto, al tener una peticin entrante esta es aceptada y leda por el comando read el cul analiza la peticin, siendo esta peticin procesada, al cual al arrojar una respuesta es recibida por write que se

encarga de mandar el resultado por el socket, para despus concluir cerrando la conexin con el cliente. Es importante tomar en cuenta que desde listen hasta close, el socket se encuentra dentro de un ciclo, ya que al tratarse de un servidor este est siempre en espera de peticiones, otro punto importante es que el comando close slo cierra la conexin con el cliente que est atendiendo, para poder terminar si peticin, de modo que el socket nunca es cerrado.

Figura 1. Mapa conceptual del funcionamiento de un socket en un servidor

Desde la perspectiva de un cliente, la creacin y manipulacin de un socket es bastante similar al de un servidor, con la diferencia de que en el cliente este no escucha ni acepta peticiones, solo se limita a enviarlas y recibir el resultado. El proceso desde el cliente inicia con la creacin del socket el cual debe de tener la misma direccin y puerto del servidor al cual pretende conectarse, al conectarse con el puerto el cliente tiene acceso al servidor, ante lo cual lanza su peticin con write y queda en modo read, esperando a recibir la respuesta del servidor, debido a que el cliente puede tener mltiples peticiones tanto el write como el read quedan dentro de un ciclo, esperando hasta que el servidor cierre la conexin, para poder finalmente cerrar la suya. Ntese que a diferencia del servidor el cliente utiliza connect y no bind, esto debido a que el servidor siempre est escuchando por lo tanto su conexin con el puerto no termina, por el contrario el cliente slo se conecta al puerto cuando tiene una peticin para el servidor

Figura 2. Mapa conceptual del funcionamiento de un socket en un cliente

4. Aplicacin 5. Herramientas 6. Conclusiones Referencias.

Vous aimerez peut-être aussi