Introducción -...

33
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

Transcript of Introducción -...

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