bits a los tres primeros, 110, característicos [192-223] ( 2097152 redes de clase C ).
Los 8 bits restantes se usan para direccionar sus hosts locales ( 256 hosts: del 0 al
255 ).
Redes clase D: Dirección multicast:
Sus primeros 4 bits son 1110 [224-239], indicando que s etrata de una dirección
multicast. Los restantes 28 bits comprenden un grupo específico multicast. Esta
dirección es una dirección destino para una o varias máquinas ( a diferencia de las
clases anteriores, que se referían sólo a una máquina )
Para simplificar el direccionamiento, se utilizan direcciones simbólocas del tipo
host.organización ( dominios )
El fichero /etc/hosts muestra correspondencia entre las direcciones IP y los nombres
de los hosts definidos por defecto.
4.- LOS SOCKETS.
Los sockets no son más que puntos o mecanismos de comunicación entre
procesos que permiten que un proceso hable ( emita o reciba información ) con otro
proceso incluso estando estos procesos en distintas máquinas. Esta característica de
interconectividad entre máquinas hace que el concepto de socket nos sirva de gran
utilidad. Esta interfaz de comunicaciones es una de las distribuciones de Berkeley al
sistema UNIX, implementándose las utilidades de interconectividad de este Sistema
Operativo ( rlogin, telnet, ftp, ... ) usando sockets.
Un socket es al sistema de comunicación entre ordenadores lo que un buzón o un
teléfono es al sistema de comunicación entre personas: un punto de comunicación
entre dos agentes ( procesos o personas respectivamente ) por el cual se puede emitir
o recibir información. La forma de referenciar un socket por los procesos implicados es
mediante un descriptor del mismo tipo que el utilizado para referenciar ficheros.
Debido a esta característica, se podrá realizar redirecciones de los archivos de E/S
estándar (descriptores 0,1 y 2) a los sockets y así combinar entre ellos aplicaciones de
la red. Todo nuevo proceso creado heredará, por tanto, los descriptores de sockets de
su padre.
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 y que los diferencia de los pipes, o canales de comunicación
unidireccional entre procesos de una misma máquina. El mecanismo de comunicación
vía sockets tiene los siguientes pasos:
1º) El proceso servidor crea un socket con nombre y espera la
conexión.
2º) El proceso cliente crea un socket sin nombre.
3º) El proceso cliente realiza una petición de conexión al socket
servidor.
4º) El cliente realiza la conexión a través de su socket mientras el
proceso servidor mantiene el socket servidor original con
nombre.
Es muy común en este tipo de comunicación lanzar un proceso hijo, una vez
realizada la conexión, que se ocupe del intercambio de información con el proceso
cliente mientras el proceso padre servidor sigue aceptando conexiones. Para eliminar
esta característica se cerrará el descriptor del socket servidor con nombre en cuanto
realice una conexión con un proceso socket cliente.
-> Todo socket viene definido por dos características fundamentales:
- El tipo del socket, que indica la naturaleza del mismo, el tipo de comunicación
que puede generarse entre los sockets.
- El dominio del socket especifica el conjunto de sockets que pueden establecer
una comunicación con el mismo.
Vamos a estudiar con más detalle estos dos aspectos:
4.1.- Tipos de sockets.
Define las propiedades de las comunicaciones en las que se ve envuelto un
socket, esto es, el tipo de comunicación que se puede dar entre cliente y servidor.
Estas pueden ser:
- Fiabilidad de transmisión.
- Mantenimiento del orden de los datos.
- No duplicación de los datos.
- El "Modo Conectado" en la comunicación.
- Envío de mensajes urgentes.
Los tipos disponibles son los siguientes:
* Tipo SOCK_DGRAM: sockets para comunicaciones en modo no conectado,
con envío de datagramas de tamaño limitado ( tipo telegrama ). En dominios Internet
como la que nos ocupa el protocolo del nivel de transporte sobre el que se basa es el
UDP.
* Tipo SOCK_STREAM: para comunicaciones fiables en modo conectado, de
dos vías y con tamaño variable de los mensajes de datos. Por debajo, en dominios
Internet, subyace el protocolo TCP.
* Tipo SOCK_RAW: permite el acceso a protocolos de más bajo nivel como el IP
( nivel de red )
* Tipo SOCK_SEQPACKET: tiene las características del SOCK_STREAM pero
además el tamaño de los mensajes es fijo.
4.2.- El dominio de un socket.