PDF de programación - Servicio de transferencia de ficheros

Imágen de pdf Servicio de transferencia de ficheros

Servicio de transferencia de ficherosgráfica de visualizaciones

Publicado el 25 de Agosto del 2019
325 visualizaciones desde el 25 de Agosto del 2019
405,1 KB
41 paginas
Creado hace 2a (18/09/2017)
SERVICIO DE
TRANSFERENCIA DE FICHEROS

Celeste Campo (celeste@it.uc3m.es)

Carlos García Rubio (cgr@it.uc3m.es)

TRANSFERENCIA DE FICHEROS

Pág. 1

ÍNDICE

1.

Introducción.

2. Protocolo FTP.

3. Protocolo TFTP.

TRANSFERENCIA DE FICHEROS

Pág. 2

BIBLIOGRAFÍA

• Básica:

– “TCP/IP Illustrated, Vol. 1 - The protocols”, W. R. Stevens.

Addison-Wesley 1994. (Chapter 15, 27).

– “Computer networks: an open source approach”, Ying- Dar Lin,

Ren-Hung Hwang, Fred Baker. New York, NY: McGraw-Hill, 2012.
(Capítulo 6.5)

– “TCP/IP Protocol Suite”, 4ª Ed. B. Forouzan, McGraw-Hill, 2010.

(Chapter 21).

• Complementaria:

– “TCP/IP Tutorial and Technical Overview”. IBM Redbook. 2006.

(Chapter 14).

• RFCs:

– RFC 959: File Transfer Protocol.

– RFC 1350: The TFTP Protocol (revision 2).

TRANSFERENCIA DE FICHEROS

Pág. 3

Transferencia de ficheros

• Copia de ficheros entre máquinas:

– distinto que los sistemas de ficheros en red, como NFS.

• Dos aplicaciones:

– FTP

• File Transfer Protocol.
• RFC 959 (año 1985).

– Extensiones: seguridad (RFC 2228, 2577, 2773), internacionalización (2640),

otros (3659, 5797, 7151).

• Objetivo: copia fiable de ficheros entre máquinas heterogéneas.

– diferentes sistemas operativos, sistemas de ficheros, juegos de caracteres, etc.

• Sobre TCP.

– TFTP

• Trivial File Transfer Protocol.
• RFC 1350 (año 1992).

– Extensiones: nuevas opciones (RFC 2347-2349, 7440).

• Objetivo: arranque de máquinas sin disco en red local (junto con

BOOTP/DHCP).

• Requisitos: sencillo y pequeño, para que quepa en una PROM.
• Sobre UDP.

TRANSFERENCIA DE FICHEROS

Pág. 4

FTP: Dos conexiones TCP

• FTP usa dos conexiones TCP:

– Transparente al usuario.

• Una de control:

– Con el puerto 21 del servidor.
– Se envían comandos, se reciben respuestas.
– Dura mientras dure la conexión FTP entre cliente y servidor.

• Una de datos:

– Normalmente puerto 20 en el servidor FTP:

• suele ir en sentido inverso a la de control.

– Se crea y se destruye cada vez que se transmite un fichero:

• cuando se hace un “dir”, se transmite un fichero.
• dura sólo mientras dura esa transferencia.

Usuario

Sist.

ficheros

Interfaz
usuario

Intérprete
comandos

Transf.
ficheros

Conexión de control

(comandos/respuestas FTP)

Conexión de datos

Intérprete
comandos

Transf.
ficheros

Sist.

ficheros

TRANSFERENCIA DE FICHEROS

Pág. 5

FTP: Comandos (I)

• De cliente a servidor.

• Se envían a través de la conexión de control:

– No confundir con los que intercambia el usuario con su interfaz de

cliente FTP:

• NO son get, put, mget, dir, bye...
• Puede no haber una correspondencia uno a uno.

• Se admiten dos comandos telnet:

– Se usan para abortar una transferencia de fichero en curso:




IAC, IP: interrupt process
IAC, DM: sync

– A los de negociación de opciones se responde con DONT o

WONT.

• Resto de comandos FTP en NVT ASCII:

– 3 ó 4 caracteres ASCII, seguidos opcionalmente de argumentos,

terminados por <CR><LF>.

TRANSFERENCIA DE FICHEROS

Pág. 6

FTP

Comandos principales (I)

• Hay más de 30, los principales son los siguientes:

• Relacionados con el control de acceso:

– USER <username>: identificador del usuario en el servidor.

– PASS <password>: clave del usuario en el servidor.

• Se envía en claro, sin cifrado.

– QUIT: desconectar (finaliza la sesión FTP).

• Relacionados con solicitar información al servidor:

– SYST: pregunta el tipo de sistema operativo del servidor.

– HELP: ayuda, pide al servidor información sobre comandos que implementa.

• Relacionados con navegación por sistema ficheros del servidor:

– PWD: muestra el directorio de trabajo en el servidor.

– CWD <pathname>: cambio de directorio de trabajo en el servidor.

– CDUP: cambiar al directorio padre (“cd ..”).

– DELE <pathname>: borra fichero en el servidor.

– MKD <pathname>: crea directorio en el servidor.

– RMD <pathname>: borra directorio en el servidor.

– RNFR: Rename from.

– RNTO: Rename to.

TRANSFERENCIA DE FICHEROS

Pág. 7

FTP

Comandos principales (II)

• Relacionados con la transferencia de ficheros:

– RETR <pathname>: copiar fichero del servidor al cliente.
– STOR <pathname>: copiar fichero de cliente a servidor.
– LIST [<pathname>]: lista el directorio de trabajo en el servidor, o el

directorio indicado.

– ABOR: interrumpir la transferencia de fichero en curso.

• Relacionados con parámetros de transferencia de ficheros:

– PORT h1,h2,h3,h4,p1,p2: dirección IP (h1.h2.h3.h4) y puerto (p1*256+p2)

de la conexión de datos en el cliente.

– PASV: solicita al servidor que entre en modo pasivo para la conexión de

datos.

– TYPE A / E / I / L <bytes> / N / T / C: tipo de representación.
– STRU F / R / C: estructura de fichero.
– MODE S / B / C: modo de transferencia.

• Otros:

– NOOP: para mantener la conexión abierta cuando no hay nada que

transmitir.

TRANSFERENCIA DE FICHEROS

Pág. 8

FTP

Otros comandos
• Relacionados con solicitar información al servidor:

– FEAT: Get the feature list implemented by the server.
– OPTS: Select options for a feature.
– STAT: Returns the current status.

• Relacionados con parámetros de transferencia de ficheros:

– EPRT: Specifies an extended address and port to which the server should connect.
– EPSV: Enter extended passive mode.
– ALLO: Allocate sufficient disk space to receive a file.
– APPE: Append.
– MDTM: Return the last-modified time of a specified file.
– SIZE: Return the size of a file.
– NLST: Returns a list of file names in a specified directory.
– REIN: Re initializes the connection.
– REST: Restart transfer from the specified point.

• Relacionados con seguridad:

– ADAT: Authentication/Security Data.
– AUTH: Authentication/Security Mechanism.
– CCC: Clear Command Channel.
– CONF: Confidentiality Protection Command.
– ENC: Privacy Protected Channel.
– MIC: Integrity Protected Command.
– PROT: Data Channel Protection Level.

TRANSFERENCIA DE FICHEROS

Pág. 9

FTP: Respuestas (I)

• De servidor a cliente.

• A través de la conexión de control.

• 3 dígitos + carácter blanco + texto opcional + <CR><LF>

– Todo en NVT ASCII.
– El cliente FTP sólo mira el código de 3 dígitos.
– El texto opcional es para los humanos:

1yz

2yz
3yz

4yz

5yz

6yz

Respuesta preliminar positiva
• Ha comenzado ejecución de comando
• Debe esperarse a una respuesta completa para enviar nuevo comando
Respuesta completa positiva
Respuesta intermedia positiva
• Comando aceptado, pero se debe enviar otro comando
Respuesta completa negativa transitoria


la acción solicitada no se ha ejecutado correctamente, pero la causa de
error es temporal y puede reintentarse

Respuesta completa negativa permanente
• El comando no ha sido aceptado y no debería reintentarse
Respuesta protegida
• Respuestas a comandos seguros, codificadas en base64.

TRANSFERENCIA DE FICHEROS

Pág. 10

FTP: Respuestas (II)

• Respuestas (continuación)

x0z
x1z
x2z
x3z
x4z
x5z

Sobre errores de sintaxis
De información
Relacionada con el estado de las conexiones
Relacionada con login
Sin especificar
Sobre estado del sistema de ficheros

• Ejemplos de respuestas:

125 Data connection already open; transfer starting
200 Command OK
331 Username OK, password required
425 Can’t open data connection
452 Error writing file
500 Syntax error (unrecognized command)
501 Syntax error (invalid arguments)
502 Unimplemented MODE type
631 Integrity protected reply
632 Confidentiality and integrity protected reply.
633 Confidentiality protected reply.

TRANSFERENCIA DE FICHEROS

Pág. 11

FTP: Respuestas (III)

• Normalmente ocupan una sola línea:

– Ejemplo: 221 Goodbye

• Si ocupa más:

– Primera línea, código de 3 dígitos seguido de un guión
– Última línea, el mismo código seguido de blanco
– Ejemplo, respuesta al comando HELP:

--> HELP

214-The following commands are recognized (* =>'s unimplemented).

USER PORT STOR MSAM* RNTO NLST MKD CDUP

PASS PASV APPE MRSQ* ABOR SITE XMKD XCUP

ACCT* TYPE MLFL* MRCP* DELE SYST RMD STOU

SMNT* STRU MAIL* ALLO CWD STAT XRMD SIZE

REIN* MODE MSND* REST XCWD HELP PWD MDTM

QUIT RETR MSOM* RNFR LIST NOOP XPWD

214 Direct comments to ftp-bugs@.itserv2

TRANSFERENCIA DE FICHEROS

Pág. 12

FTP: Conexión de datos

• La conexión de datos se puede usar para tres cosas:

– Para transmitir ficheros de cliente a servidor.
– Para transmitir ficheros de servidor a cliente.
– Para transmitir listados de ficheros (LIST) de servidor a cliente.

• La conexión de datos se abre y se cierra cada vez que se tiene

que usar.

• ¿En qué puerto TCP?:

– La iniciativa de abrir una conexión de datos la tiene siempre el cliente

(get, put, dir).

– Comportamiento por defecto (FTP activo):

• El cliente elige un puerto local libre y queda a la escucha (apertura

pasiva).

• Envía por la conexión de control al servidor un comando PORT con su IP

y puerto en que escucha.

• A continuación manda por la conexión de control el comando

correspondiente (RETR, STOR, LIST).

• El servidor abre una conexión TCP de datos desde su puerto 20 del

servidor al indicado en el comando PORT del cliente.

TRANSFERENCIA DE FICHEROS

Pág. 13

FTP

Secuencia típica de comandos / respuestas (I)
• El cliente (C) establece una conexión TCP de control con el

puerto 21 del servidor (S).



Identificación:
– El servidor envía un mensaje de bienvenida:

• S: 220 server ready

– El cliente envía su nombre de usuario y su clave:

• C: USER nombre_usuario

• S: 331 Password required

• C: PASS clave
• S: 230 User logged in

– El cliente pregunta al servidor qué tipo de sistema es.

• C: SYST

• S: 215 UNIX Type: L8

• Cambio de directorio de trabajo:

• C: CWD /user/ro
• S: 200 directory changed

TRANSFERENCIA DE FICHEROS

Pág. 14

FTP

Secuencia típica de comandos / respuestas (II)



Listado de directorio en el servidor:
– El cliente elige un puerto local libre p = p1*256+p2 y queda a la escucha

en
  • Links de descarga
http://lwp-l.com/pdf16498

Comentarios de: Servicio de transferencia de ficheros (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad