You are on page 1of 5

TECNOLOGIAS DE SOCKET Andrés Adolfo Verástegui Ollervides División de Estudios de Posgrado e Investigación Resumen En este artículo se aborda la historia

, funcionamiento, aplicación y herramientas que utilizan la tecnología de sockets, esta tecnología 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 comunicación entre procesos. Palabras Clave: Tecnologías de socket, interfaz de sockets, interfaz de programación de aplicaciones. 1. Introducción Los sockets son una tecnología diseñada 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 también se conoce con el nombre de interfaz de programación de aplicaciones (API) dentro de la familia de protocolos de internet TCP/IP, la cual es provista por el sistema operativo. Los orígenes de los sockets está intrínsecamente relacionado con la historia del internet; las primeras computadoras que implementaron sus protocolos de comunicación fueron las de la Universidad de Berkeley, esta implementación fue realizada en una variante del sistema operativo Unix, llamado BSD Unix. Esta interfaz fue diseñada para permitir a los programas acceder y comunicarse a través de una red de comunicaciones, esta interfaz fue conocida como el interfaz de sockets viendo el potencial de esta tecnología la interfaz fue incorporada a la versión 4.1 del sistema operativo. Este sistema operativo al ser adoptado por varios fabricantes estuvo disponible en gran cantidad de máquinas. Debido a esto fue ampliamente aceptado y se convirtió en un estándar de facto.

2. Historia

siendo esta petición procesada. La creación de un socket por ambos participantes no involucra que en la realidad existan dos líneas de comunicación. el servidor se encuentra siempre en espera de una petición entrante por el puerto indicado. añadir nuevas llamadas al sistema si era difícil encajar los requerimientos de la programación en red con las funciones existentes en el sistema operativo. y un número de un puerto. 3. difiere en ciertos puntos dependiendo si fungirá como cliente o como servidor. La creación de esta conexión requiere de la creación de 1 socket desde cada punta de la conexión. recibiendo como parámetros una dirección y un puerto. quedando listo para listen el cual realiza la función de estar al pendiente de cualquier petición entrante por el puerto. es decir. combinando una dirección IP. La función bind hace la conexión con el puerto previamente indicado. Funcionamiento Un socket requiere: un protocolo. al cual al arrojar una respuesta es recibida por write que se . al tener una petición entrante esta es aceptada y leída por el comando read el cuál analiza la petición. tanto el servidor como el cliente deberán crear un socket. Esto permitirá que el flujo de datos salga y entre por el mismo puerto sin problemas de conexión. Un socket puede ser también una dirección de internet. La utilización de un socket requiere de dos participantes: uno de ellos denominado servidor y el otro denominado cliente.Un socket es una conexión virtual a través de la cual una computadora es capaz de recibir un dato. utilizando la misma dirección y puerto. El primer paso es crear el socket. esto permite la comunicación entre programas que se encuentren en diferentes equipos. ambos conviniendo el protocolo para poder mantener la comunicación. En la Figura 1 se puede observar el proceso de un socket desde el lado del servidor. esta tecnología es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. ya que los dos clientes utilizan el mismo puerto y dirección. Entre estos dos participantes se realiza el intercambio de datos. y el cliente es quien envía la petición quedando en espera de una respuesta por parte del servidor. Esta tecnología surgió como un medio de comunicación entre procesos a principios de los años 80 con el sistema Unix de Berkeley. una dirección y un puerto. por lo tanto ambos sockets son en realidad una sola línea de comunicación. La idea inicial era utilizar las funciones que suministraba el sistema operativo Unix siempre que fuera posible y. La creación del socket aunque similar.

ya que al tratarse de un servidor este está siempre en espera de peticiones. otro punto importante es que el comando close sólo cierra la conexión con el cliente que está atendiendo. Es importante tomar en cuenta que desde listen hasta close. para después concluir cerrando la conexión con el cliente.encarga de mandar el resultado por el socket. para poder terminar si petición. Figura 1. de modo que el socket nunca es cerrado. Mapa conceptual del funcionamiento de un socket en un servidor . el socket se encuentra dentro de un ciclo.

esperando a recibir la respuesta del servidor. El proceso desde el cliente inicia con la creación del socket el cual debe de tener la misma dirección y puerto del servidor al cual pretende conectarse. por el contrario el cliente sólo se conecta al puerto cuando tiene una petición para el servidor Figura 2. con la diferencia de que en el cliente este no escucha ni acepta peticiones. Nótese que a diferencia del servidor el cliente utiliza connect y no bind. al conectarse con el puerto el cliente tiene acceso al servidor. debido a que el cliente puede tener múltiples peticiones tanto el write como el read quedan dentro de un ciclo.Desde la perspectiva de un cliente. para poder finalmente cerrar la suya. solo se limita a enviarlas y recibir el resultado. la creación y manipulación de un socket es bastante similar al de un servidor. esperando hasta que el servidor cierre la conexión. Mapa conceptual del funcionamiento de un socket en un cliente . ante lo cual lanza su petición con write y queda en modo read. esto debido a que el servidor siempre está escuchando por lo tanto su conexión con el puerto no termina.

Aplicación 5.4. Conclusiones Referencias. Herramientas 6. .