2. QUE ES UN SOCKET
Un socket (enchufe), 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, aplicación programan 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).
TIPOS DE SOCKET
Sockets está diseñado de forma genérica; un socket por sí mismo no contiene
información suficiente para describir la comunicación entre procesos. Los
sockets operan dentro de dominios de comunicación, que determinan el
formato de direcciones a utilizar y el protocolo de comunicación. Además el
dominio define si los dos procesos que se comunican se encuentran en el
mismo sistema o en sistemas diferentes y cómo pueden ser direccionados. De
esta forma un socket puede clasificarse según su dominio y según el tipo de
conexión que realice.
En función del tipo de conexión se dispone de varios tipos de socket, que
describen la forma en la que se transfiere información a través de ese
socket: sockets stream, sockets datagrama y sockets raw.
Los sockets stream son un servicio orientado a conexión donde los
datos se transfieren sin encuadrarlos en registros o bloques. Para
establecer una comunicación utilizando el protocolo TCP.
Los sockets datagrama son un servicio de transporte si conexión que
utilizan el protocolo de transporte UDP. Cada vez que se envían
datagramas es necesario enviar el descriptor del socket local y la
dirección del socket que debe recibir el datagrama. Por tanto, hay que
enviar datos adicionales cada vez que se realice una comunicación. Los
datos se envían y reciben en paquetes cuya entrega no está
garantizada.
Los sockets raw dan acceso a la capa de software de red subyacente o
a protocolos de más bajo nivel. Se utilizan sobre todo para la depuración
del código de los protocolos. Los sockets raw proporcionan acceso
al Internet Control Message Protocol, ICMP, y se utiliza para
comunicarse entre varias entidades IP.
COMUNICACIÓN DE SOCKET
3.
4.
5. IMPLEMENTACION DE SOCKET
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los
servidores. La separación entre cliente y servidor es una separación de tipo lógico,
donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es
necesariamente un sólo programa. Los tipos específicos de servidores incluyen los
servidores webs, los servidores de archivo, los servidores del correo, entre otros.
Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica
seguirá siendo la misma.
La comunicación entre procesos a través de sockets se basa en la filosofía cliente-
servidor: un proceso en esta comunicación actuará de proceso servidor creando un
socket cuyo nombre conocerá el proceso cliente, el cual podrá “hablar” con el proceso
servidor a través de la conexión con dicho socket nombrado.
El proceso crea un socket sin nombre cuyo valor de vuelta es un descriptor sobre el
que se leerá o escribirá, permitiéndose una comunicación bidireccional, característica
propia de los sockets. El mecanismo de comunicación vía sockets tiene los siguientes
pasos: • El proceso servidor crea un socket con nombre y espera la conexión. • El
proceso cliente crea un socket sin nombre. • El proceso cliente realiza una petición de
conexión al socket servidor. • El cliente realiza la conexión a través de su socket
mientras el proceso servidor mantiene el socket servidor original con nombre.