180 likes | 353 Views
Capítulo 26: Transferencia de Archivos y Acceso Remoto a Archivos. ICD-326: Redes de Computadores Agustín J. González. Introducción. Muchos programas están escritos para manejar archivos como datos de entrada y salida.
E N D
Capítulo 26: Transferencia de Archivos y Acceso Remoto a Archivos ICD-326: Redes de Computadores Agustín J. González
Introducción • Muchos programas están escritos para manejar archivos como datos de entrada y salida. • Antes de tener redes, la transferencia de datos involucró la trasferencia de datos vía medios removibles como discos o cintas magnéticas. • Las redes permitieron la comunicación directa: • Transferencia de archivos: equivalente a transferencias de cintas o discos. • Sistemas de archivos remotos: acceso a archivos remotos como si ellos fueran locales.
Dos Problemas • La posibilidad de usar archivos remotos creó dos problemas: • 1. Es necesario coordinar el acceso distribuido de los archivos • 2. Es necesario guardar resultados intermedios para no perder grandes cantidades de procesamiento debido a una falla en la red. • Solución: Modelo de transferencia de archivos: Los programas escriben resultados intermedios en archivos en disco. • Las componentes de una aplicación distribuida no necesitan correr concurrentemente. • Resultados intermedios pueden ser usados para reiniciar computaciones fallidas .
Tras una transferencia de archivos generalizada • El problema de transferir archivos desde una máquina a otra pasó a ser un problema recurrente que los programadores debían programar en cada caso. • Una solución genérica debe permitir la transferencia de archivos arbitrarios. Esto es: • Acomodar diferentes tipos de archivos. • Hacer conversiones entre sistemas heterogéneos: • Tipos de datos (ASCII, binario) • Largo de palabras • Reglas para definir nombres de archivos. • Login de usuarios: propiedad y permisos de archivos. ¿Qué hacer si un usuario no posee una cuenta en el sistema remoto? ¿Con qué atributos es almacenado el archivo localmente?
Transferencias en modo “Batch” y modo Interactivo • Transferencia en modo Batch: • El usuario crea una lista de archivos a ser transferidos, • El requerimiento es puesto en una cola, • El programa de transferencia lee los requerimientos y efectúa la transferencias. • Transferencia Interactiva • Los usuarios ejecutan el programa de transferencia, • Las acciones incluyen comandos para listar directorios y transferir archivos, • Los usuarios pueden buscar los archivos y transferirlos inmediatamente, • Se obtiene una notificación rápida en caso de errores de digitación u otros.
Protocolo de Transferencia de Archivos • En TCP/IP, el protocolo estándar para transferencia de archivos es FTP, File Transfer Protocol. • Es un protocolo de propósito general: • Es independiente del sistema operativo y hardware. • Transfiere archivos arbitrarios. • Acomoda la propiedad de los archivos y las restricciones de acceso. • Es previo a TCP/IP. Fue adaptado después para TCP/IP.
Modelo e Interfaz • El protocolo trabaja en modo interactivo o batch. • Por ejemplo: el cliente ftp provee una interfaz interactiva, • MIME, HTTP puede usar el protocolo directamente en modo batch. • Las acciones del protocolo incluyen: • Listar el contenido de los directorios, • Cambio de directorio • Traer archivos (get) • poner archivos (put)
Comandos del Cliente ftp (cont..) • La interfaz del cliente ftp tiene su origen en BSD UNIX (Berkeley Software Distribution) y se transformó en un estándar de-facto. • Muchos comandos están obsoletos y no se usan: Ej: tenex, carriage control, • Los más usados: cd, dir, ls, get, put, mget, mput. • Otros útiles: lcd, pwd • Es un proceso de dos pasos: • Ejecutar ftp • Conectarse a la máquina remota. • La conexión involucra el uso de una cuenta en una máquina remota. • Los servidores ftp proveen cuenta de usuario anonymous para ofrecer acceso a usuarios que externos al sistema. Una dirección e-mail se usa como password.
Transferencias en Dos Sentidos Cliente Servidor • get: transfiere archivos desde el servidor FTP a la máquina desde donde se corre el cliente. • put: transferencia hacia el servidor FTP desde la máquina donde corre el cliente. • En caso de omisión se usa el mismo nombre en ambas máquinas. El cliente ftp permite especificar otro nombre. • mget, mput permiten transferir múltiples archivos en combinación de * para especificar parcialmente una lista de archivos. Ej. La lista m* incluye martes, miércoles, mario. • prompt permite desactivar las consultas al usuario en transferencias en modo batch. Cliente Servidor
Ejemplo en WinNT Z:\>ftp ftp> open mateo Connected to mateo.elo.utfsm.cl. 220 mateo FTP server (UNIX(r) System V Release 4.0) ready. User (mateo.elo.utfsm.cl:(none)): agv 331 Password required for agv. Password: 230 User agv logged in. ftp> help Commands may be abbreviated. Commands are: ! delete literal prompt send ? debug ls put status append dir mdelete pwd trace ascii disconnect mdir quit type bell get mget quote user binary glob mkdir recv verbose bye hash mls remotehelp cd help mput rename close lcd open rmdir ftp> help mget mget get multiple files ftp> bye 221 Goodbye. Thanks for using the SunMediaCenter. Z:\>
Nombre de Archivos y sus Tipos • La sintaxis para los nombres en distintos sistemas puede ser incompatible. • Ej. UNIX permite hasta 128 caracteres, DOS sólo 8 (nombre)+3(extensión), total 11. • Caracteres válidos puede variar, como el tratamiento de mayúsculas. • Hay diferencias en el tipo de los archivos: • Ej. UNIX sin tipo, un archivo puede contener cualquier cosa. • MacOS- los archivos poseen tipos • ftp efectúa dos tipos de transferencia: • Texto (ascii) : hace transformación necesaria para mantener integridad. Caracteres usados para definir el fin de una línea. UNIX <linefeed>, DOS y WINxx <carriage return><linefeed> • Binario (binary): No hay ninguna transformación.
Mensajes en FTP • Cada mensaje desde el servidor incluye un número de tres dígitos decimales. • Esto facilita la comunicación con programas, que ponen atención al código numérico, y personas, que ponen atención en el texto. • Ej. 220 mateo FTP server (UNIX(r) System V Release 4.0) ready. User (mateo.elo.utfsm.cl:(none)): agv 331 Password required for agv. Password: 230 User agv logged in. ftp> bye 221 Goodbye. Thanks for using the SunMediaCenter. • Modo verboso (verbose) muestra los mensajes; modo silencioso suprime los mensajes. verbose: permite conmutar entre un modo y el otro.
Modelo cliente-servidor en FTP • Servidor remoto acepta una conexión desde el cliente local. Esta conexión es usada sólo para datos de control. • El cliente envía comandos al servidor a través de esta conexión. • Ésta persiste por toda la sesión. • El servidor crea una conexión de datos por cada transferencia de datos. Los datos se transfieren en un sentido o en el otro. Permite abortar transferencia Notar sentido de conexión!
TFTP • Trivial File Transfer Protocol (TFTP) es mucho más simple que FTP. • Está basado en UDP • Sólo permite transferencia de archivos: no lista directorios. • No exige autorización • Requiere menos memoria que FTP. • Usado para bootstrap por ejemplo en sistemas basados en ROM y sin disco.
NFS • Pero ¿qué pasa si sólo deseamos agregar unas líneas de texto a un archivo muy grande? ¿debemos transferir el archivo completo dos veces? • Network File System (NFS) permite acceso aleatorio a archivos en red. • Hay otros sistemas de archivos distribuidos • NFS es un estándar TCP/IP • También AppleShare • Microsoft/NETBIOS • NSF está basado en el modelo cliente-servidor. • NSF es integrado al sistema de archivos del computador. No es una aplicación que se corra como ftp. • Está disponible en UNIX y muchos sistemas PC. • Usa TCP.
Funciones en NFS • NFS provee funciones equivalentes a las de acceso local a archivos: OPEN, READ, WRITE, CLOSE. • Las operaciones locales son mapeadas a mensajes de red • Cada mensaje contiene la operación. • Cada mensaje READ/WRITE lleva un bloque de disco. • Los nombres de archivos están integrados en el sistema de directorio local. El sistema de archivos remoto está montado como un directorio local.
Implementaciones NFS • Las operaciones en NFS son similares a las operaciones con archivos en sistema UNIX. • NFS provee mecanismos para bloquear un archivo. Así se previene acceso simultáneo para escritura. • Los sistemas operativos locales proveen almacenamiento local de los datos. Luego son usados como cache. • El nombre de los archivos, identificación del dueño y sus permisos son problemáticos porque la forma de especificarlos no es la misma en todos los sistemas operativos. ---- Fin Capítulo ----