Anda di halaman 1dari 7

VIOLETA VALERIA VELAZQUEZ VALDEZ

ILSE GUADALUPE NIETO POSADA


JESSICA MARIA PUENTE MUIZ

UNIDAD 2 PROGRAMACION CLIENTE/SERVIDOR DE BAJO NIVEL: SOCKET Y CANALES.


2.1 CONCEPTO DE SOCKET 2.2 DOMINIOS Y TIPOS DE SOCKET

UNIDAD 2 PROGRAMACION CLIENTE / SERVIDOR DE BAJO NIVEL: SOCKETS Y CANALES. 2.1 CONCEPTO DE SOCKET
QUE ES UN SOCKET
Un socket (enchufe), es un mtodo para la comunicacin entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexin. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de funcin a veces llamados interfaz de programacin de aplicacin de sockets (API, application programming

INSTITUTO TECNOLOGICO DE CIUDAD VICTORIA


PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR
interface).

Un socket es tambin una direccin de Internet, combinando una direccin IP (la direccin numrica nica de cuatro partes que identifica a un ordenador particular en Internet) y un nmero de puerto (el nmero que identifica una aplicacin de Internet particular, como FTP, Gopher, o

WWW).

Definicin
Un socket es un punto final de un proceso de comunicacin. Es una abstraccin que permite manejar de una forma sencilla la comunicacin entre procesos, aunque estos procesos se encuentren en sistemas distintos, sin necesidad de conocer el funcionamiento de los protocolos de comunicacin subyacentes.

Abstraccin del proceso de comunicacin entre dos mquinas. Es as como estos puntos finales sirven de enlaces de comunicaciones entre procesos. Los procesos tratan a los sockets como descriptores de ficheros, de forma que se pueden intercambiar datos con otros procesos transmitiendo y recibiendo a travs de sockets.

Comunicacin entre dos procesos a travs de sockets.

Cmo funciona?
El modelo ms bsico de los sockets consta de 2 simples programas, un servidor y un cliente. Bsicamente el programa servidor comienza a escuchar en un puerto determinado (nosotros lo especificamos), y posteriormente el programa que la hace de cliente debe conocer la ip o nombre de dominio/hostname del servidor y el puerto que est escuchando, al saber esto simplemente solicita establecer una conexin con el servidor. Es aqu cuando el servidor acepta esa conexin y se puede decir que estos programas estn conectados, de este modo pueden intercambiar informacin.

Funcionamiento genrico

Normalmente, un servidor se ejecuta sobre una computadora especfica y tiene un socket que responde en un puerto especfico. El servidor nicamente espera, escuchando a travs del socket a que un cliente haga una peticin. En el lado del cliente: el cliente conoce el nombre de host de la mquina en la cual el servidor se encuentra ejecutando y el nmero de puerto en el cual el servidor est conectado. Para realizar una peticin de conexin, el cliente intenta encontrar al servidor en la mquina servidora en el puerto especificado.

Si todo va bien, el servidor acepta la conexin. Adems de aceptar, el servidor obtiene un nuevo socket sobre un puerto diferente. Esto se debe a que necesita un nuevo socket ( y ,en consecuencia, un numero de puerto diferente) para seguir atendiendo al socket original para peticiones de conexin mientras atiende las necesidades del cliente que se conect.

Por la parte del cliente, si la conexin es aceptada, un socket se crea de forma satisfactoria y puede usarlo para comunicarse con el servidor. Es importante darse cuenta que el socket en el cliente no est utilizando el nmero de puerto usado para realizar la peticin al servidor. En lugar de ste, el cliente asigna un nmero de puerto local a la mquina en la cual est siendo ejecutado. Ahora el cliente y el servidor pueden comunicarse escribiendo o leyendo en o desde sus respectivos sockets.

2.2 DOMINIOS Y TIPOS DE SOCKET


DOMINIOS
Un dominio puede referirse a dos cosas: Es un conjunto de ordenadores conectados en una red que confan a uno de los equipos de dicha red la administracin de los usuarios y los privilegios que cada uno de los usuarios tiene en dicha red. Es la parte principal de una direccin en la web que indica la organizacin o compaa que administra dicha pgina. Un dominio representa una familia de protocolos Un socket est asociado a un dominio desde su creacin Slo se pueden comunicar sockets del mismo dominio

Los servicios de sockets son independientes del dominio Los sockets se crean dentro de un dominio de comunicacin, igual que un archivo se crea dentro d e un filesystem. El dominio de comunicacin nos dice dnde se encuentran los procesos que se van a intercomunicar. Si los procesos estn en el mismo sistema, el dominio de comunicacin ser AF_ UNIX, si los procesos estn en distintos sistemas y stos se hallan unidos mediante una red TCP/IP, el dominiode comunicacin ser AF_INET. Cabe aclarar que existen otros dominios de comunicaci n. Los sockets no se han diseado solamente para TCP/IP. La idea original fue que se usase la mism a interfaz tambin para distintas familias de protocolos. En esta introduccin slo trataremos el do minio AF_INET. Indica el formato de las direcciones que podrn tomar los sockets y los protocolos que soportarn dichos sockets. La estructura genrica es

struct sockaddr { u__short char }; sa__family; sa__data[14]; /* familia */ /* direccin */

Pueden ser:

* Dominio AF_UNIX ( Address Family UNIX ):

El cliente y el servidor deben estar en la misma mquina. Debe incluirse el fichero cabecera /usr/include/sys/un.h. La estructura de una direccin en este dominio es: struct sockaddr__un { short char }; sun__family; /* en este caso AF_UNIX */ sun__data[108]; /* direccin */

* Dominio AF_INET ( Address Family INET ):

El cliente y el servidor pueden estar en cualquier mquina de la red Internet. Deben incluirse los ficheros cabecera /usr/include/netinet/in.h, /usr/include/arpa/inet.h, /usr/include/netdb.h. La estructura de una direccin en este dominio es:

struct in__addr { u__long }; s__addr;

struct sockaddr__in { short u__short sin_family; /* en este caso AF_INET */ sin_port; /* numero del puerto */ sin__addr; /* direcc Internet */

struct in__addr char };

sin_zero[8]; /* campo de 8 ceros */

Estos dominios van a ser los utilizados en xshine. Pero existen otros como: * Dominio AF_NS: Servidor y cliente deben estar en una red XEROX. * Dominio AF_CCITT: Para protocolos CCITT, protocolos X25, ...

TIPOS DE SOCKET
El tipo de sockets describe la forma en la que se transfiere informacin a travs de ese socket. Existen muchos tipos de sockets, sin embargo, los ms populares son: Stream (TCP) Datagram (UDP) Raw (acceso directo al protocolo: root)

Socket Stream

Son un servicio orientado a la conexin, donde los datos se transfieren sin encuadrarlos en registros o bloques, asegurndose de esta manera que los datos lleguen al destino en el orden de transmisin. Si se rompe la conexin entre los procesos, stos sern informados de tal suceso para que tomen las medidas oportunas, por eso se dice que estn libres de errores. El protocolo de comunicaciones con streams es un protocolo orientado a conexin, ya que para establecer una comunicacin utilizando el protocolo TCP (Transmission Control Protocol), hay que establecer en primer lugar una conexin entre un par de sockets. Mientras uno de los sockets atiende peticiones de conexin (servidor), el otro solicita una conexin (cliente). Una vez que los dos sockets estn conectados, se pueden utilizar para transmitir datos en ambas direcciones.

Socket Datagram
Son un servicio de transporte no orientado a la conexin. Son ms eficientes que TCP, pero en su utilizacin no est garantizada la fiabilidad. Los datos se envan y reciben en paquetes, cuya entrega no est garantizada. Los paquetes pueden ser duplicados, perdidos o llegar en un orden diferente al que se envi. Las comunicaciones a travs de datagramas usan UDP (User Datagram Protocol), lo que significa que, cada vez que se enven datagramas es necesario enviar el descriptor del socket local y la direccin del socket que debe recibir el datagrama. Como se puede ver, hay que enviar datos adicionales cada vez que se realice una comunicacin, aunque tiene la ventaja de que se pueden indicar direcciones globales y el mismo mensaje llegar a un muchas mquinas a la vez.

Socket Raw
Son sockets que dan acceso directo a la capa de software de red subyacente o a protocolos dems bajo nivel. Se utilizan sobre todo para la depuracin del cdigo de los protocolos.

http://www.electron.frba.utn.edu.ar/~mdoallo/descargas/redes.pdf http://es.tldp.org/Universitarios/seminario-2-sockets.html http://es.scribd.com/doc/19795778/Sockets-y-su-Programacion-en-Java

Anda mungkin juga menyukai