Servidor de Archivos Edgar A. Mendieta
1
Introducción
Las aplicaciones hoy en día utilizan los archivos como
elemento central. Así podemos ver desde las aplicaciones en
tiempo real; que aunque la E/S no esté dada por archivos
usará de ellos para registrar problemas, secuencias, etc.
Así también existen otras aplicaciones que utilizan esta
estructura de datos para registrar la salida o tomar la
entrada para procesar su contenido.
Se puede hablar de diferentes tecnologías hoy en día, pero
una de las más utilizadas es la tecnología
Cliente/Servidor. Independientemente de la aplicación
utilizada para ejecutar el servicio o levantar el proceso
que ayudara a fungir como servidor, se hace necesario el
uso de archivos; ya sea archivos del sistema operativo en
el cual se ejecute la aplicación o archivos de la
aplicación que se ejecuta. A esto también le podemos añadir
los archivos que en un momento dado se requiera compartir.
Cuando se habla de compartir archivos podemos hablar de
diferentes formas de hacerlo; tal es el caso de accesos
locales (equipo local), accesos remotos (arquitectura
cliente/servidor).
A raíz del nacimiento y puesta en marcha del conjunto de
protocolos TCP-IP se ve el surgimiento de diferentes tipos
de tecnologías así mismo aplicaciones y necesidades de
agilizar diferentes funciones hechas anteriormente. En este
caso llevaremos nuestro estudio a la arquitectura
Cliente/Servidor, basada en el conjunto de protocolos
TCP/IP; este estudio será dirigido a el funcionamiento,
características y aplicaciones para servidores de archivos.
Con el incremento de la disponibilidad de computadoras
personales y potentes servidores no muy caros, ha habido
Servidor de Archivos Edgar A. Mendieta
2
una mayor tendencia hacia el proceso de datos distribuidos,
en el que los procesadores, datos y otros elementos del
sistema de proceso de datos pueden estar distribuidos.
Muchas organizaciones utilizan computadoras, las cuales se
basan dependen enormemente de los servidores; estas
computadoras albergarán aplicaciones amigables, tales como
procesadores de texto, hojas de calculo y gráficos de
presentación. Mientras que en los servidores pueden
encontrarse bases de datos, aplicaciones para compartir
archivos, etc.
Es importante señalar que estas tendencias han sido
apoyadas por la evolución de las capacidades distribuidas
de los sistemas operativos y de las utilidades de soporte.
Servidor de Archivos Edgar A. Mendieta
3
Servidores de Archivos.
I. Gestión de Archivos.
Cada vez que se habla de archivos se pueden ver
involucrados cuatro conceptos diferentes; campo, registro,
archivo y bases de datos.
Un sistema de gestión de archivos es aquel sistema software
que provee servicios a los usuarios y aplicaciones en el
uso de archivos. El único camino que tiene el usuario o la
aplicación tiene para acceder a los archivos es a través de
un sistema de gestión de archivos. Esto revela para el
usuario o programador la necesidad de desarrollar software
de propósito especial para cada aplicación y provee al
sistema un medio de controlar su ventaja más importante.
1. Organización y Acceso a Archivos. La organización física del archivo en almacenamiento
secundario depende de la estrategia de agrupación y de la
estrategia de asignación de archivos.
Para seleccionar una organización de archivos hay diversos
criterios que son importantes:
• Acceso Rápido para recuperar la información
• Fácil actualización
• Economía de almacenamiento
• Mantenimiento simple.
• Fiabilidad para asegurar la confianza de los datos.
La prioridad relativa de estos criterios va a depender de
las aplicaciones que va a usar el archivo.
El numero de alternativas de organización de archivos que
se han implementado o propuesto es inmanejable, incluso
para un libro dedicado a los sistemas de archivos.
Servidor de Archivos Edgar A. Mendieta
4
La mayor parte de las estructuras empleadas en los sistemas
reales se encuadran en una de estas categorías o puede
implementarse como una combinación de estas:
• Pilas (The pile)
• Archivos secuenciales (sequential file)
• Archivos Secuenciales indexados (indexed sequential
file)
• Archivos indexados.(indexed file)
• Archivos directos o de dispersión (direct or hashed
file).
Pilas
La forma menos complicada de organización de archivos puede
denominarse la pila. Los datos se recolectan en el orden en
que llegan. Cada registro consiste en una ráfaga de datos.
El propósito de la pila es simplemente acumular la masa de
datos y guardarlo.
Como no hay estructura para el archivo de la pila. el
acceso a registro es por búsqueda exhaustiva..Si se quiere
todos los registros que contienen un campo particular o que
tienen un valor determinado para ese campo, debe buscarse
en el archivo entero.
Los archivos de pilas se aplican cuando los datos se
recogen y almacenan antes de procesarlos o cuando no son
fáciles de organizar. Este tipo de archivo usa bien el
espacio cuando los datos almacenados varían en tamaño y en
estructuras. Este tipo de archivos no se adapta a la
mayoría de las aplicaciones.
Archivos Secuenciales
La forma mas común de estructura de archivo es el archivo
secuencial. En este tipo de archivo, un formato fijo es
usado para los registros. Todos los registros tienen el
Servidor de Archivos Edgar A. Mendieta
5
mismo tamaño, constan del mismo número de campos de tamaño
fijo en un orden particular. Como se conocen la longitud y
la posición de cada campo, solamente los valores de los
campos se necesitan almacenarse; el nombre del campo y
longitud de cada campo son atributos de la estructura de
archivos.
Un campo particular, generalmente el primero de cada
registro se conoce como el campo clave. El campo clave
identifica unívocamente al registro. Así, los valores de la
clave para registros diferentes son siempre diferentes.
Los archivos secuenciales son típicamente utilizados en
aplicaciones de proceso de lotes Y son óptimos para dichas
aplicaciones si se procesan todos los registros. La
organización secuencias de archivos es la única que es
fácil de usar tanto en disco como en cinta.
Para las aplicaciones interactivas que incluyen peticione s
o actualizaciones de registros individuales, los archivos
secuenciales ofrecen un rendimiento pobre.
Normalmente un archivo secuencial se almacena en bloques,
en un orden secuencial simple de los registros. La
organización física del archivo en una cinta o disco se
corresponde exactamente con la ubicación lógica del
archivo. En este caso, el procedimiento para ubicar los
nuevos registros en un archivo de pila separado, llamado
archivo de registro (log file) o archivo de transacciones.
Periódicamente, se realiza una actualización por lotes que
mezcla el archivo de registro con el archivo maestro para
producir un nuevo archivo en secuencia correcta de claves.
Archivos Secuenciales indexados
Un método popular para superar las desventajas de los
archivos secuenciales es el del archivo secuencias
indexado. El archivo secuencial indexado mantiene las
Servidor de Archivos Edgar A. Mendieta
6
características básicas de los archivos secuenciales: los
registros están organizados en una secuencia basada en un
campo. Dos características se añaden: un índice del archivo
para soportar los accesos aleatorios y un archivo de
desbordamiento (overflow). El índice provee una capacidad
de búsqueda para llegar rápidamente a las proximidades de
un registro deseado. El archivo de desbordamiento
(overflow) es similar al archivo de registro usado en un
archivo secuencial, pero esta integrado de forma que los
registros del archivo de desbordamiento se ubican en la
dirección de un puntero desde si registró precedente. En la
estructura secuencial indexada más simple, se usa un solo
nivel de indexación. El índice, en este caso, es un archivo
secuencial simple. Cada registro del archivo índice tiene
dos campos: un campo clave, que es el mismo que el campo
clave del archivo principal y un puntero al archivo
principal. Para encontrar un campo específico se busca en
el índice hasta encontrar el valor mayor de la clave que es
igual o precede al valor deseado de la clave. La búsqueda
continúa en el archivo principal a partir de la posición
indicada por el puntero.
Archivos Indexados
Los archivos secuenciales indexados retienen la limitación
del archivo secuencial: la eficacia en el procesamiento se
limita al basado en un único campo del archivo. Cuando es
necesario buscar un registro basándose en algún otro
atributo distinto del campo clave ambas formas de archivo
secuencial no son adecuadas. En algunas aplicaciones esta
flexibilidad es deseable.
Para alcanzar esta flexibilidad, se necesita una estructura
que utilice múltiples índices, uno para cada tipo de campo
que pueda ser objeto de la búsqueda.
Servidor de Archivos Edgar A. Mendieta
7
Se suelen utilizar dos tipos de índices. Uno índice
exhaustivo contiene una entrada par cada registro del
archivo principal. Otro índice parcial contendrá entradas
a los registros donde este el campo de interés. Con
registros de longitud variable, algunos registros no
contendrán todos los campos.
Los archivos indexados son muy utilizados en aplicaciones
donde es crítica la oportunidad de la información y donde
los datos son rara vez procesados de forma exhaustiva.
Archivos Directos o de Dispersión
Los archivos directos explotan la capacidad de los discos
para acceder directamente a cualquier bloque de dirección
conocida. Como en los archivos secuenciales y secuenciales
indexados, se requiere un campo clave en cada registro.
Sin embargo, aquí no hay concepto de ordenamiento
secuencial.
2. Organización de Directorios. Asociado con algunos sistemas de gestión de archivos o
cualquier colección de archivos suele haber un directorio
de archivos. El directorio contiene información acerca de
los archivos, incluyendo atributos, localización y
propietario. Mucha de esta información, especialmente la
concernida con el almacenamiento es gestionada por el
sistema operativo. El directorio es propiamente un archivo,
poseído por el sistema operativo y, accesible a traces de
diversas rutinas de gestión de archivos. Aunque alguna
información en los directorios esta disponible para los
usuarios y aplicaciones, en general, la información se
proporciona indirectamente a través de rutinas del sistema.
De este modo los usuarios pueden acceder directamente al
directorio, incluso en modo de solo lectura.
Servidor de Archivos Edgar A. Mendieta
8
Estructura.
La manera en que la información se almacena difiere mucho
en los diferentes sistemas. Parte de la información puede
almacenarse en un registro de cabecera asociado al archivo,
esto reduce el espacio necesario para el directorio,
haciendo más fácil mantener todo el directorio.
La forma mas fácil de estructuración de un directorio es
una lista de entradas, unas para cada archivo. Esta
estructura puede representarse con un simple archivo
secuencial, con el nombre del archivo haciendo las veces de
clave.
Operaciones que se pueden realizar con un directorio:
• Buscar: Cuando alguien referencia el archivo, debe
buscarse en el directorio la entrada correspondiente
al archivo.
• Crear archivo: Al crear un nuevo archivo. debe
añadirse una entrada al directorio.
• Borrar archivo: Al borrar un archivo, debe eliminarse
una entrada al directorio.
• Listar directorio: Puede solicitarse todo el
directorio o una parte.
Una simple lista no se ajusta bien a estas operaciones. Si
el directorio es una simple lista secuencias, no ofrecerá
ayuda en la organización de los archivos y obligara al
usuario a tener cuidado de no usar el mismo nombre para dos
tipos diferentes de archivos. Para resolver este problema
se puede acudir a un esquema de dos niveles donde hay un
directorio para cada usuario y un directorio maestro.
Un método más potente y flexible es el directorio
jerárquico o estructurado en árbol. Existe un directorio
maestro que contiene un número determinado de directorios
Servidor de Archivos Edgar A. Mendieta
9
de usuario. Cada uno de estos directorios puede tener a su
vez subdirectorios y archivos como entradas. Esto se
cumple en cualquier nivel.
Para organizar cada directorio y subdirectorio. El método
mas simple es almacenar cada directorio como un archivo
secuencial. Cuando los directorios contengan un número muy
grande de entradas, tal organización puede conducir a
tiempos de, búsqueda innecesariamente grandes. En ese caso
se prefiere una estructura de dispersión.
Designación (Naming).
Los usuarios necesitan poder referirse a un archivo
mediante un nombre simbólico. Cada archivo del sistema debe
tener un nombre único para que las referencias al archivo
no sean ambiguas. Por otro lado, es una carga inaceptable
para los usuarios el proporcionar nombres únicos,
especialmente en los sistemas compartidos.
El uso de directorios estructurados en árbol minimiza la
dificultad de asignar nombres únicos. Cualquier archivo
del sistema puede ser localizado siguiendo un camino desde,
el directorio raíz o maestro. Descendiendo por varias ramas
hasta que se alcance el archivo. La serie de nombres de
directorios, terminados con el propio nombre del archivo,
constituye el propio nombre del camino del archivo.
Cada usuario interactivo o proceso tiene asociado un
directorio actual, conocido a menudo como directorio de
trabajo.
3. Compartimiento de Archivos. En un sistema multiusuario, casi siempre existe la
necesidad de permitir a los usuarios compartir archivos.
Dos problemas surgen:
• Los derechos de accesos
Servidor de Archivos Edgar A. Mendieta
10
• Gestión de los accesos simultáneos
Derechos de Acceso:
El sistema de archivos provee una herramienta flexible para
permitir compartir extensos archivos entre los usuarios.
El sistema de archivos debe proporcionar un numero de
opciones de modo en que un archivo que es accedido pueda
ser controlado. Normalmente, a los usuarios o a los grupos
de usuarios se les otorgan ciertos derechos de acceso a
cada archivo. Un amplio rango de derechos de acceso se ha
venido usando. La siguiente lista representa los derecho de
acceso que pueden ser asignados a un usuario en particular
para un archivo en particular:
• Ninguno: El usuario no puede siquiera determinar la
existencia del archivo ni mucho menos acceder al
mismo. No se permite al usuario leer el directorio de
usuario que incluya al archivo.
• Conocimiento: El usuario sabe de la existencia del
archivo Y quien el dueño. El usuario puede solicitar
los derechos de acceso adicionales al propietario.
• Ejecución: El usuario puede ejecutar y cargar un
programa pero no copiarlo.
• Lectura: El usuario puede leer el archivo para
cualquier propósito, incluyendo copia y ejecución.
• Adición: El usuario puede añadir datos al archivo,
generalmente al final, pero no puede modificar o
borrar el contenido del mismo.
• Actualización: El usuario puede modificar, borrar y
añadir otros datos al archivo.
• Cambio de protección: El usuario puede cambiar los
derechos de acceso otorgados a usuarios.
Servidor de Archivos Edgar A. Mendieta
11
• Borrado: El usuario puede borrar el archivo del
sistema de archivos.
Los derechos constituyen una jerarquía. Si un usuario
adquiere el derecho de la actualización para un archivo
determinado, también habrá adquirido los derechos
siguientes: conocimiento, ejecución, lectura y adición.
El propietario de un archivo dispone de los derechos de
acceso listados antes y puede otorgar derechos a los otros.
Puede ofrecerse acceso a las siguientes clases de usuarios:
• Usuario específico: Usuarios individuales quienes son
designados por su ID de usuario.
• Grupos de usuarios: Un conjunto de usuarios no
definidos individualmente.
• Todos: Todos los usuarios que tengan acceso al
sistema. Estos serán archivos públicos.
Acceso Simultáneo:
Cuando el acceso es concedido para añadir o actualizar un
archivo a más de un usuario, el sistema operativo o el
sistema de gestión de archivos debe hacer cumplir una
disciplina. Un método de fuerza bruta consiste en permitir
a los usuarios bloquear el archivo entero cuando lo vaya a
actualizar. Un mejor control es bloquear los registros
individuales durante la actualización. Al disertar la
posibilidad de accesos comparados, deben abordarse aspectos
de exclusión mutua e ínter bloqueo.
II. TCP/IP y la Arquitectura Cliente/Servidor.
Cuando las computadoras, terminales u otros dispositivos de
proceso de datos intercambian información, los mecanismos
implicados pueden ser bastante complejos.
Servidor de Archivos Edgar A. Mendieta
12
La arquitectura TCP/IP es el resultado de la investigación
y desarrollo de protocolos desarrollada en la red
experimental de intercambio de paquetes ARPANET; fue creado
por la Agencia del Gobierno DARPA (Defense Advance Research
Projects Agency), Agencia para Proyectos de Investigación
Avanzada en Defensa) y conocido generalmente como protocolo
TCP/IP.
La tecnología de la arquitectura de comunicaciones está
bien desarrollada y es soportada por todos los fabricantes.
Posiblemente, la tendencia más significativa en los
sistemas de información de los últimos años ha sido la
escalada del proceso cliente/servidor. Este modo de
procesamiento está reemplazando a gran velocidad tanto a
los métodos de procesamiento basados en computadoras
centrales, como al proceso centralizado y otras formas
alternativas de proceso distribuido de datos.
1. Arquitectura de Protocolos TCP/IP. TCP/IP es el protocolo común utilizado por todos los
ordenadores conectados a Internet, de manera que éstos
puedan comunicarse entre sí. Hay que tener en cuenta que en
Internet se encuentran conectados ordenadores de clases muy
diferentes y con hardware y software incompatibles en
muchos casos, además de todos los medios y formas posibles
de conexión. Aquí se encuentra una de las grandes ventajas
del TCP/IP, pues este protocolo se encargará de que la
comunicación entre todos sea posible. TCP/IP es compatible
con cualquier sistema operativo y con cualquier tipo de
hardware.
TCP/IP no es un único protocolo, sino que es en realidad lo
que se conoce con este nombre es un conjunto de protocolos
que cubren los distintos niveles del modelo OSI. Los dos
protocolos más importantes son el TCP (Transmission Control
Servidor de Archivos Edgar A. Mendieta
13
Protocol) y el IP (Internet Protocol), que son los que dan
nombre al conjunto. La arquitectura del TCP/IP consta de
cinco niveles o capas en las que se agrupan los protocolos,
y que se relacionan con los niveles OSI de la siguiente
manera:
• Aplicación: Se corresponde con los niveles OSI de
aplicación, presentación y sesión. Aquí se incluyen
protocolos destinados a proporcionar servicios, tales
como correo electrónico (SMTP), transferencia de
ficheros (FTP), conexión remota (TELNET) y otros más
recientes como el protocolo HTTP (Hypertext Transfer
Protocol).
• Transporte: Coincide con el nivel de transporte del
modelo OSI. Los protocolos de este nivel, tales como
TCP y UDP, se encargan de manejar los datos y
proporcionar la fiabilidad necesaria en el transporte
de los mismos.
• Internet: Es el nivel de red del modelo OSI. Incluye
al protocolo IP, que se encarga de enviar los paquetes
de información a sus destinos correspondientes. Es
utilizado con esta finalidad por los protocolos del
nivel de transporte.
• Red: Es la interfaz de la red real. TCP/IP no
especifíca ningún protocolo concreto, así es que corre
por las interfaces conocidas, como por ejemplo: 802.2,
CSMA/CD, X.25, etc.
• Físico: Análogo al nivel físico del OSI.
Servidor de Archivos Edgar A. Mendieta
14
El TCP/IP necesita funcionar sobre algún tipo de red o de
medio físico que proporcione sus propios protocolos para el
nivel de enlace de Internet. Por este motivo hay que tener
en cuenta que los protocolos utilizados en este nivel
pueden ser muy diversos y no forman parte del conjunto
TCP/IP. Sin embargo, esto no debe ser problemático puesto
que una de las funciones y ventajas principales del TCP/IP
es proporcionar una abstracción del medio de forma que sea
posible el intercambio de información entre medios
diferentes y tecnologías que inicialmente son
incompatibles.
Para transmitir información a través de TCP/IP, ésta debe
ser dividida en unidades de menor tamaño. Esto proporciona
grandes ventajas en el manejo de los datos que se
transfieren y, por otro lado, esto es algo común en
cualquier protocolo de comunicaciones. En TCP/IP cada una
de estas unidades de información recibe el nombre de
"datagrama" (datagram), y son conjuntos de datos que se
envían como mensajes independientes.
2. Protocolos TCP.
Servidor de Archivos Edgar A. Mendieta
15
• FTP (File Transfer Protocol). Se utiliza para
transferencia de archivos.
• SMTP (Simple Mail Transfer Protocol). Es una
aplicación para el correo electrónico.
• TELNET: Permite la conexión a una aplicación remota
desde un proceso o terminal.
• RPC (Remote Procedure Call). Permite llamadas a
procedimientos situados remotamente. Se utilizan las
llamadas a RPC como si fuesen procedimientos locales.
• SNMP (Simple Network Management Protocol). Se trata de
una aplicación para el control de la red.
• NFS (Network File System). Permite la utilización de
archivos distribuidos por los programas de la red.
• X-Windows. Es un protocolo para el manejo de ventanas
e interfaces de usuario.
3. Caracteristicas de TCP.
• Ya que dentro de un sistema TCP/IP los datos
transmitidos se dividen en pequeños paquetes, éstos
resaltan una serie de características.
• La tarea de IP es llevar los datos a granel (los
paquetes) de un sitio a otro. Las computadoras que
encuentran las vías para llevar los datos de una red a
otra (denominadas enrutadores) utilizan IP para
trasladar los datos. En resumen IP mueve los paquetes
de datos a granel, mientras TCP se encarga del flujo y
asegura que los datos estén correctos.
• Las líneas de comunicación se pueden compartir entre
varios usuarios. Cualquier tipo de paquete puede
transmitirse al mismo tiempo, y se ordenará y
combinará cuando llegue a su destino. Compare esto con
la manera en que se transmite una conversación
Servidor de Archivos Edgar A. Mendieta
16
telefónica. Una vez que establece una conexión, se
reservan algunos circuitos para usted, que no puede
emplear en otra llamada, aun si deja esperando a su
interlocutor por veinte minutos.
• Los datos no tienen que enviarse directamente entre
dos computadoras. Cada paquete pasa de computadora en
computadora hasta llegar a su destino. Éste, claro
está, es el secreto de cómo se pueden enviar datos y
mensajes entre dos computadoras aunque no estén
conectadas directamente entre sí. Lo que realmente
sorprende es que sólo se necesitan algunos segundos
para enviar un archivo de buen tamaño de una máquina a
otra, aunque estén separadas por miles de kilómetros y
pese a que los datos tienen que pasar por múltiples
computadoras. Una de las razones de la rapidez es que,
cuando algo anda mal, sólo es necesario volver a
transmitir un paquete, no todo el mensaje.
• Los paquetes no necesitan seguir la misma trayectoria.
La red puede llevar cada paquete de un lugar a otro y
usar la conexión más idónea que esté disponible en ese
instante. No todos los paquetes de los mensajes tienen
que viajar, necesariamente, por la misma ruta, ni
necesariamente tienen que llegar todos al mismo
tiempo.
• La flexibilidad del sistema lo hace muy confiable. Si
un enlace se pierde, el sistema usa otro. Cuando usted
envía un mensaje, el TCP divide los datos en paquetes,
ordena éstos en secuencia, agrega cierta información
para control de errores y después los lanza hacia
fuera, y los distribuye. En el otro extremo, el TCP
recibe los paquetes, verifica si hay errores y los
Servidor de Archivos Edgar A. Mendieta
17
vuelve a combinar para convertirlos en los datos
originales. De haber error en algún punto, el programa
TCP destino envía un mensaje solicitando que se
vuelvan a enviar determinados paquetes.
4. TCP y UDP. En Internet existen dos protocolos principales, TCP y UDP.
Ambos se encuentran dentro de la capa de transporte. Estos
protocolos son diferentes entre sí, uno de ellos, TCP, es
orientado a conexión y UDP es un protocolo sin conexiones.
TCP (Protocolo de Control de Transmisión) es un protocolo
de comunicación que ofrece un servicio orientado a conexión
punto a punto, es decir, una conexión TCP tiene dos
terminales. Define un servicio fiable de transmisión,
asegurando que los datos enviados llegarán a su destino sin
fallas, completos y ordenados. TCP brinda un servicio
dúplex donde una aplicación solicita una conexión, se crea
la conexión, puede transmitir en ambos sentidos y termina
la conexión, todo de manera confiable.
El encabezado de TCP cuenta con 12 campos:
• Puerto de origen.
• Puerto de destino.
• Número de secuencia que especifica el número del
primer byte del mensaje
• Número de confirmación que contiene el número de
secuencia del siguiente byte.
• La longitud de cabecera TCP que indica la cantidad de
palabras de 32 bits en la cabecera.
• Espacio reservado de 6 bits seguido por una serie de
banderas de 1 bit: URG (urgente), ACK (número de acuse
de recibo), PSH (indica datos empujados, con PUSH),
RST (para restablecer una conexión o para rechazar un
Servidor de Archivos Edgar A. Mendieta
18
segmento no válido o un intento de conexión), SYN
(para establecer conexiones) y FIN (para liberar una
conexión).
• La Ventana especifica el espacio de almacenamiento
disponible para los datos.
• La suma de verificación indica que el mensaje se daño
en el trayecto.
• El apuntador de urgente marca el primer dato de
urgente en el mensaje.
• Las opciones.
• Los datos que contienen información de las capas
superiores.
Para que TCP pueda crear y terminar de manera confiable sus
conexiones utiliza un método llamado "acuerdo de tres
vías". Si un host 1 quiere establecer una conexión con un
host 2, ejecuta una petición CONNECT con la dirección y el
puerto del host 2, envía un mensaje TCP con el bit SYN
(segmento de sincronización) en encendido y espera una
respuesta. Este mensaje TCP busca el puerto en el host 2, y
si en el puerto no existe un proceso en estado de LISTEN,
se manda un mensaje al host 1 rechazando la conexión. Pero
si algún proceso está en estado LISTEN, entonces este puede
Servidor de Archivos Edgar A. Mendieta
19
decidir si acepta o no la conexión; si se acepta entonces
manda un mensaje de ACK (acuse de recibo). Si no se acepta
la conexión manda entonces un mensaje de rechazo. Y por
último si el host 1 recibe el ACK manda entonces los datos
y al final de estos añade un segmento FIN (o de
terminación).
UDP (Protocolo de Datagramas de Usuario) es un protocolo de
transporte sin conexión previa, ofrece un mecanismo para
enviar Datagramas sin tener que establecer y liberar
conexiones. Es un servicio no fiable ya que no agrega al
mensaje IP funciones de confiabilidad, control de flujo y
recuperación de errores. Por esto el UDP es mucho más
ligero que TCP y como su encabezado es mucho mas pequeña
genera menos carga en la red. El segmento UDP tiene una
encabezado de 8 bytes seguida de los datos. El encabezado
UDP, que se muestra en la figura 2.7 tiene cuatro campos:
los puertos de origen y destino que identifican los puntos
terminales, la longitud UDP que tiene el tamaño de la
cabecera y los datos, y la suma de comprobación que es una
verificación de la integridad de los datos, que es opcional
(0 significa que no se calcula).
5. Cliente/Servidor.
Cliente/servidor describe la relación entre dos programas
de computadoras en la cual uno de ellos, el cliente, hace
una solicitud de servicio de otro programa, el servidor,
quien cumple la solicitud. Aunque la idea cliente/servidor
Servidor de Archivos Edgar A. Mendieta
20
puede usarse en programas dentro de un mismo computador, es
una idea más importante en una red. En ella, el modelo
cliente/servidor proporciona una forma conveniente de
interconectar programas que se distribuyen eficientemente
por varias ubicaciones. Las transacciones de computador que
usan el modelo cliente/servidor son muy comunes. Por
ejemplo, para revisar nuestra cuenta de banco desde nuestro
computador, un programa cliente en nuestra máquina envía
nuestra solicitud a un programa servidor en el banco. Ese
programa puede, a su vez, reexpedir la solicitud a su
propio programa cliente que envía una solicitud a un
servidor de base de datos en otro ordenador del banco para
obtener nuestro saldo. El saldo es enviado al cliente del
banco, que a su vez se lo sirve de vuelta al cliente en
nuestro computador personal, que despliega la información
para que la veamos. El modelo cliente/servidor se ha
convertido en una de las ideas centrales de la computación
en red. La mayoría de las aplicaciones de negocios que se
están escribiendo actualmente usan el modelo
cliente/servidor. Igual lo hace el principal programa de
Internet, el TCP/IP.
En el modelo usual cliente/servidor, un servidor, a veces
llamado daemon, se activa y espera las solicitudes de los
clientes. Habitualmente, programas cliente múltiples
comparten los servicios de un programa servidor común.
Tanto los programas cliente como los servidores son con
frecuencia parte de un programa o aplicación mayores. Con
relación a Internet, nuestro navegador de la Red es un
programa cliente que solicita servicios (el envío de
páginas web o archivos) de un servidor web (que
técnicamente se llama un servidor de Protocolo de
Transporte de Hipertexto, Hypertext Transport Protocol o
Servidor de Archivos Edgar A. Mendieta
21
HTTP) en otro ordenador en algún lugar de Internet. De modo
similar, nuestro ordenador con TCP/IP instalado nos permite
hacer solicitudes de cliente para recibir archivos de
servidores de Protocolo de Transferencia de Archivos (File
Transfer Protocol, FTP) en otros ordenadores de Internet.
Otros modelos de relación entre programas incluían el
maestro/esclavo, en el que un programa estaba a cargo de
todos los demás programas, e igual-a-igual, donde
cualquiera de dos programas puede iniciar una transacción.
6. Clases de Aplicaciones Cliente/Servidor.
Dentro del entorno general cliente/servidor, se dispone de
una gama de posibles implementaciones que dividen el
trabajo entre el cliente y el servidor de manera diferente.
• Proceso basado en una máquina central. El proceso
basado en una máquina central (host) no es realmente
un proceso cliente/servidor, de acuerdo con el uso que
se hace del término. El proceso basado en host se
refiere más bien el entorno tradicional de grandes
sistemas en el que todo o casi todo el tratamiento se
realiza en un computador central.
• Proceso basado en el servidor. El tipo más básico de
configuración cliente/servidor es aquél en que el
servidor es básicamente responsable de ofrecer una
interfaz de usuario gráfica, mientras casi todo el
Servidor de Archivos Edgar A. Mendieta
22
tratamiento se hace en el servidor. Esta configuración
es típica de los primeros intentos de
cliente/servidor, especialmente de los sistemas
departamentales.
• Proceso basado en el cliente. En el otro extremo, casi
todo el proceso de la aplicación puede hacerse en el
cliente, con la excepción de las rutinas de validación
de datos y otras funciones lógicas de la base de datos
que realizan mejor en el servidor. En general, algunas
de las más sofisticadas funciones de la base de datos
residen en el cliente. Esta arquitectura es
posiblemente el método cliente/servidor más común
actualmente. Permite al usuario utilizar aplicaciones
a la medida de sus necesidades locales.
• Proceso cooperativo. En una configuración de proceso
cooperativo, el proceso de la aplicación se lleva a
cabo de forma optimizada, aprovechando la potencia de
las máquinas de cliente y servidora y la distribución
de los datos.
III. Servidores de Archivos.
Cuando se habla de servidores de archivos se puede hablar
de archivos compartidos entre diferentes hosts. Pero no
entendiendose como compartir el simple procedimiento de
habilitar el movimiento de archivos de un lugar a otro. El
servidor de archivo implica mas que esto.
1. Qué es un servidor de archivos. Tipo de servidor de red de computadoras cuya función es
permitir el acceso remoto a archivos almacenados o
directamente accesibles por este. En principio, cualquier
ordenador conectado a una red con un software apropiado,
Servidor de Archivos Edgar A. Mendieta
23
puede funcionar como servidor de archivos. Desde el punto
de vista del cliente de un servidor de archivos, la
localización de los archivos compartidos es transparente. O
sea, normalmente no hay diferencias perceptibles si un
archivo esta almacenado en un servidor de archivos remoto o
en el disco de la propria máquina.
Algunos protocolos comumente utilizados en servidores de
archivos:
• SMB/CIFS (Windows, Samba en Unix). SMB; Server Message
Block. Protocolo de red para el compartimento de
archivos y impresoras utilizada en redes Microsoft
Windows
• NFS (Unix).
2. Caracteristicas de los Servidores de Archivos.
• Agilisan las transacciones. Todos los hosts que
formen parte de una red podran hacer uso de los
archivos almacenados en el servidor.
• Reducción de Costos. Muchas empresas y
organizaciones se limitan la compra de
dispositivos de almacenamiento para cada uno de
sus usuarios. Al tener almacenado todo en un solo
equipo el administrador debera preocuparse solo
por respaldar el contenido del servidor de
archivos.
• Archivos Compartidos.
• Seguridad por grupos de usuarios. Los archivos
almacenados en el server seran accesados solo por
usuarios los cuales tengan permisos para accesar
tanto el lugar donde se guarden los archivos y
los archivos en sí.
Servidor de Archivos Edgar A. Mendieta
24
3. SMB; Server Message Block. SMB/CIFS es el protocolo que las máquinas Windows 95/98 y
NT usan para comunicarse con el servidor Samba y entre
ellos. A alto nivel, la suite del protocolo SMB es
relativamente simple. Incluye comandos para todas las
operaciones de archivos e impresión que puedas necesitar
hacer sobre un disco o impresora local, como:
• Abrir y cerrar un fichero.
• Crear y eliminar ficheros y directorios.
• Leer y escribir sobre un fichero.
• Buscar archivos.
• Enviar y eliminar archivos a una cola de impresora.
Cada una de estas operaciones puede ser codificada en un
mensaje SMB y transmitida hacia/desde un servidor. El
nombre de SMB viene de su formato de datos: son versiones
de las estructuras estandar de las llamadas al sistema DOS,
o Server Message Blocks, rediseñadas para transmitir a otra
máquina a través de una red.
Formato SMB.
Richard Sharpe, del equipo de desarrollo de Samba, define
SMB como un protocolo "petición-respuesta". En efecto, esto
significa que un cliente envía una petición SMB a un
servidor, y el servidor envía una respuesta SMB de vuelta
al cliente. Raramente un servidor envía un mensaje que no
es respuesta a la petición de un cliente.
Un mensaje SMB no es tan complejo como puedas pensar.
Echemos un vistazo a la estructura interna de uno de estos
mensajes. Este puede dividirse en dos partes: la cabecera
(header), la cual es de tamaño fijo, y la cadena de comando
(command string), cuyo tamaño puede variar en base al
contenido del mensaje.
Servidor de Archivos Edgar A. Mendieta
25
Formato de Cabecera de SMB.
La tabla muestra el formato de una cabecera SMB. Los
comandos SMB no necesitan usar todos los campos de la
cabecera SMB. Por ejemplo, cuando un cliente inicialmente
intenta conectar a un servidor, este todavía no tiene un
valor de identificador de árbol ("tree identifier") (TID) -
se asigna uno cuando se realiza una conexión con éxito-,
así que se emplaza un TID nulo (0xFFFF) en el campo de la
cabecera. Otros campos pueden ser rellenados con ceros
cuando no se usan.
Formato de Comando SMB.
Inmediatamente después de la cabecera va un número variable
de bytes que forman un comando o respuesta SMB. Cada
comando, tal como "Open File" (identificador de campo COM:
SMBopen) o "Get Print Queue" (SMBsplretq), tiene su propio
conjunto de parámetros y datos. Al igual que en el caso de
los campos en las cabeceras SMB, no todos los campos de
comando necesitan estar rellenados, dependiendo de cada
Servidor de Archivos Edgar A. Mendieta
26
comando específico. Por ejemplo, el comando "Get Server
Attributes" (SMBdskattr) establece los campos WCT y BCC a
cero. Los campos del segmento de comando se muestran en la
Tabla.
Variaciones sobre SMB.
El protocolo SMB ha sido extendido con nuevos comandos
muchas veces desde su concepción. Cada nueva versión es
compatible con las anteriores. Esto hace posible tener en
una misma LAN varios clientes y servidores corriendo
diferentes versiones del protocolo SMB al mismo tiempo.
La Tabla muestra las mejores versiones del protocolo SMB.
Dentro de cada "versión" de SMB hay muchas subversiones que
incluyen comandos soportando versiones determinadas de los
mejores sistemas operativos. El ID de cadena es usado por
clientes y servidores para determinar qué nivel de
protocolo usarán para hablar unos con otros.
Servidor de Archivos Edgar A. Mendieta
27
4. NFS. Network File System.
Fue desarrollado para permitir montar una partición
perteneciente a una máquina remota como si fuesa una
partición local. Nos proporciona, por tanto, un método
rápido y eficaz de compartir archivos y espacio de disco
entre distintos ordenadores de una red que soporte este
sistema.
El protocolo NFS está diseñado para ser independiente de la
máquina, el sistema operativo y el protocolo de transporte.
Esto es posible porque se implementa sobre RPC (Remote
Procedure Call). RPC establece la independencia de la
máquina usando XDR("External Data Representation").
Servidor de Archivos Edgar A. Mendieta
28
NFS permite a los usuarios autorizado acceder a ficheros
localizados en sistemas remotos como si fueran locales. Dos
protocolos sirven a este propósito:
• El protocolo de montaje Mount para especificar el host
remoto y el sistema de ficheros al que se va a acceder
así como dónde localizarlo en la jerarquía local de
ficheros.
• El protocolo NFS para efectuar la auténtica E/S de
ficheros sobre el sistema remoto de ficheros.
Tanto el protocolo Mount como el NFS son aplicaciones de
RPC(concepto de llamador/servidor) y son transportados por
UDP.
Protocolo.
El protocolo Mount es una aplicación de RPC integrada con
NFS. Su número de programa es el 100005. El protocolo Mount
es transportado por UDP. Mount es un servidor RPC y
proporciona un total de seis procedimientos:
NULL. No hace nada, es útil para testear las respuestas del
servidor.
MOUNT. Función Mount, devuelve un descriptor de fichero
apuntando al directorio.
DUMP. Devuelve la lista de todos los sistemas de ficheros
montados.
UMOUNT. Elimina una entrada de la lista de sistemas de
ficheros montados.
UNMTALL. Elimina todas de las entradas de la lista de
sistemas de ficheros montados para el cliente.
EXPORT. Devuelve información sobre los sistemas de ficheros
disponibles.
La llamada a MOUNT devuelve un descriptor de fichero que
apunta al directorio. Este descriptor es un campo de 32
Servidor de Archivos Edgar A. Mendieta
29
bytes, que el cliente usará posteriormente para acceder a
los ficheros. Los descriptores son una parte fundamental de
NFS ya que a través de ellos se referenciará cada fichero y
directorio. Algunas implementaciones encriptan los
descriptores por razones de seguridad(por ejemplo, el NFS
de VM puede usar opcionalmente programas de encriptación
para esto).
El comando MOUNT aporta la interfaz a esta aplicación de
RPC. El usuario ejecuta el comando MOUNT para localizar el
sistema de ficheros remoto en su propia jerarquía de
ficheros.
Protocolo NFS.
NFS es la aplicación de RPC que suministra funciones de E/S
sobre ficheros en un host remoto, una vez que ha sido
solicitado mediante el comando MOUNT. Tiene el número de
programa 100003 y a veces usa el puerto IP 2049. Como este
no es un número de puerto asignado oficialmente, y ya
existen diversas versiones de NFS(y de MOUNT) lo números de
puerto pueden cambiar. Es aconsejable dirigirse al
Portmap(número de puerto 111) para obtener los números de
puerto para MOUNT y NFS. El protocolo NFS es transportado
por UDP.
El programa NFS soporta 18 procedimientos para todas las
operaciones básicas de E/S, como por ejemplo:
LOOKUP. Busca un fichero en el directorio actual y si lo
encuentra, devuelve un descriptor a ese fichero más
información sobre los atributos del fichero.
READ y WRITE. Primitivas básicas para acceder el fichero.
RENAME. Renombra un fichero.
REMOVE. Borra un fichero.
MKDIR y RMDIR. Creación/borrado de subdirectorios.
Servidor de Archivos Edgar A. Mendieta
30
GET y SET-ATTR. Devuelve conjuntos de atributos de
ficheros.
Además hay otras funciones soportadas.
Se correponden con la mayoría de primitivas de E/S usadas
en el sistema operativo local para acceder a ficheros
locales. De hecho, una vez que se ha montado el directorio
remoto, el sistema operativo local tiene que "reencaminar"
las primitivas de E/S al host remoto. Esto hace que todas
las operaciones de E/S sobre ficheros tengan el mismo
aspecto, independientemente de si el fichero es local o
remoto. El usuario puede trabajar con los comandos y
programas habituales en ambos tipos de ficheros; en otras
palabras, el protocolo NFS es completamente transparente al
usuario.
Sistemas de Ficheros de NFS.
NFS asume un sistema de ficheros jerárquico (directorios).
Los ficheros son secuencias de bytes sin estructura y
carentes de significado inherente: es decir, todos lo
ficheros se ven como una secuencia contigua de bytes, sin
ninguna estructura de registros.
Con NFS, todas las operaciones sobre ficheros son
síncronas. Esto significa que la operación sólo retorna
cuando el servidor ha completado todo el trabajo asociado
para esa operación. En caso de una solicitud de escritura,
el servidor escribirá físicamente los datos en el disco, y
si es necesario, actualizará a estructura de directorios,
antes de devolver una respuesta al cliente. Esto garantiza
la integridad de los ficheros.
NFS también especifica que los servidores no deberían estar
asociados a un cliente determinado. Es decir, un servidor
no necesita mantener información extra de ninguno de sus
clientes para funcionar correctamente. En caso de un fallo
Servidor de Archivos Edgar A. Mendieta
31
del servidor, los clientes sólo tienen que reintentar la
solicitud hasta que el servidor responda, sin tener que
repetir la operación de mount.
Servidor de Archivos Edgar A. Mendieta
32
Conclusión.
La puesta en marcha de una suite o conjuntos de protocolos
los cuales tendran el control, soporte y entrega de
información que se origine en un host y que tenga destino
otro host ha cambiado la forma de trabajar tecnologicamente
hablando. Cada transacción hecha anteriormente ha sido
agilisada con el uso de la tecnologia existente.
En la actualidad las grandes empresas buscan agilisar todo
proceso informatico que se de en ella; pero la busqueda de
estas modificaciones no deben incurrir en gastos y debe ser
amigable para todo el personal. Por tal motivo se pueden
ver que podemos hablar de protocolos TCP/IP y podemos
hablar de arquitecturas Cliente/Servidor. Es de gran
importancia destacar que debido a estos cambios
tecnologicos los sistemas operativos se han amoldado a cada
uno de ellos, uno con mas robustez que otros.
Los servidores de archivos han logrado llenar un vacío que
existia en muchas empresas; las cuales buscaban la forma de
compartir archivos de forma rápida y segura.
Servidor de Archivos Edgar A. Mendieta
33
Bibliografia.
1. Stallings, William (2001). Sistemas Operativos. España:
Prentices Hall. Segunda Edición. 764 páginas.
2. Craig, Hunt (1995). Networking Personal Computers. United Stated of America: O’Reilly & Associates, Inc. Primera
Edición. 383 páginas.
3. AlTablero.com (Revista Electronica) (2004). Redes
Informaticas: Servidor de Archivos.
http://www.altablero.org/modules.php?name=News&file=print
&sid=30
4. Robert Eckstein, David Collier-Brown, Peter Kelly
(Noviembre 1999). Usando Samba.
http://es.tldp.org/Manuales-LuCAS/USANDO-SAMBA/usando-
samba-html/using-samba.html