Sockets
TELEPROCESO Y SISTEMAS DISTRIBUIDOS
La Interfaz Socket
Lic. Vanesa S. Roffé
Año 2009
Introducción - Origen de la INTERFAZ SOCKET
La Interfaz Socket es una API para redes TCP/IP que se
compone de funciones o rutinas.
Originalmente se construyó a principios de los 80 para el
sistema operativo UNIX , aunque hoy en día también la
utilizanotros sistemas operativos como Microsoft
Windows, Mac, OS2, etc...
La Interfaz Socket
2
Introducción - Origen de la INTERFAZ SOCKET
Las llamadas al sistema de E/S en UNIX se basan en el
proceso de open-read-write-close (abrir-leer-escribircerrar), y esto se utiliza
tanto con archivos como con dispositivos hardware.
En este tipo de comunicación se basó el diseño de lainterfaz de sockets,
con lo que para comunicarse con una red TCP/IP, se abre
primero una conexión con la red, se leen y escriben datos a
través de ella y una vez terminados los procesos se cierra la
conexión.
La Interfaz Socket
3
Introducción - SOCKETS
Las aplicaciones desarrolladas en Sockets están basadas
en la arquitectura Cliente-Servidor.
La aplicación necesita conocer elpapel que va a
desempeñar (cliente o servidor), ya que la estructura del
sw y primitivas difieren.
La Interfaz Socket
4
Introducción - SOCKETS
Permiten comunicaciones orientadas a conexión o sin
conexión.
Un socket está completamente definido cuando consta de
dirección y puerto (ej. IP + puerto TCP).
Para que se dé la comunicación en una red, el programa
requiere unsocket en cada extremo del proceso de
comunicación.
La Interfaz Socket
5
Creación de un Socket
Para crear un socket, se utiliza la función socket y se
deben especificar tres parámetros:
socket = socket(protocol_familiy, socket_type, protocol)
1. Familia de Protocolos (Protocol Family): Identifica a una
familia de protocolos relacionados, como TCP/IP.
2. Tipo de Socket(Socket_type): Si el programa utilizará el
socket para transmitir flujo de bytes o datagramas.
SOCK_DGRAM para datagramas y SOCK_STREAM
para flujo de bytes.
La Interfaz Socket
6
Creación de un Socket
3. Protocolo a utilizar: Permite especificar qué protocolo
utilizará el socket. IPPROTO_TCP , IPPROTO_UDP.
Ej: socket_handle = socket(PF_INET, SOCK_STREAM,
IPPROTO_TCP);
Cuando sellama a la función socket, la implementación
del socket lo crea y devuelve un identificador de socket
que identifica a un registro en la tabla de descripción. El
registro muestra la estructura de datos del socket.
La Interfaz Socket
7
Estructura de Datos del Socket
Familia de Protocolos
Tipo de Servicio
Dirección IP Local
Dirección IP Remota
Puerto de Protocolo Local
Puerto deProtocolo Remoto
Cada vez que la aplicación llama a la función socket,
la implementación de este reserva memoria para una
nueva estructura de datos y almacena la dirección de
la familia, el tipo de socket y el protocolo.
La Interfaz Socket
8
Configuración del Socket
Una vez creado el socket, utilizando la función socket, se
pueden utilizar las funciones de configuracióndependiendo del uso que se le vaya a dar al socket:
Si se trata de un cliente orientado a conexión, se deberá
llamar a la función connect que se encargará de almacenar
toda la información local y remota en la estructura de datos
del socket.
Si se trata de un cliente sin conexión las funciones llamadas
son:
Máquina Local: bind - Máquina remota: send
La Interfaz Socket
9Configuración del Socket
En el caso de un servidor orientado a conexión:
Máquina Local: bind
Máquina Remota: listen y accept
En el caso de un servidor sin conexión:
Máquina Local: bind
Máquina Remota: recvfrom
La Interfaz Socket
10
Primitivas Sockets Orientadas a Conexión (TCP)
Socket: Crea un descriptor de socket.
Close: Cierra socket
Bind:...
Regístrate para leer el documento completo.