Autores: Daniel Carrocera Melero y Angel Suarez Fernandez
Fecha: 18 de mayo de 2007
El objetivo de este trabajo es probar algunas formas de transferencia de ficheros entre ordenadores, nosotros nos centraremos en las redes de tipo Peer to Peer y las de tipo Ftp, explicaremos en que se basan, cuales son sus características, implementaremos un servidor ftp sencillo en una red local con un router que hace NAT, y explicaremos también la forma de hacer que dos ordenadores de una red local usen simultaneamente un servicio P2P. Por otro lado estudiaremos las ventajas y desventajas que presentan ambas tipos de conexiones, y trataremos de mostrar cual es para determinadas tareas y cual mejor para otras.
eMule: Uno de los mas conocidos programas de transferencia de archivos, esta basado en redes Peer to Peer; es decir entre pares. No posee ni clientes ni servidores fijos, sino una serie de nodos que se comportan simultáneamente como clientes y como servidores respecto a los demás nodos de la red.
Para tener buena conexión con el eMule es importante tenerlo bien configurado; os voy a mostrar a que se deben la mayoría de los problemas que aparecen con la conexión:
Normalmente suele haber problemas con ID:
Bit Torrent: es también un sistema de descarga de archivos bastante conocido y se esta empezando a imponer, ya que es un hibrido que mezcla las ventajas del FTP y del Peer to Peer. Esto se debe a que permite la descarga directa como si fuese un FTP simple, pero a la vez se trata de un tipo de red donde no hay ni clientes ni servidores fijos sino que se basa en una serie de nodos que se comportan simultáneamente como clientes y servidores.
La gran ventaja de BitTorrent sobre otros clientes P2P es su velocidad, y ademas funciona mejor para compartir archivos grandes a diferencia del FTP donde la descarga del archivo debe ser de un solo tirón. A continuación se muestra el funcionamiento del protocolo BitTorrent:
Componentes de una red con protocolo Bit Torrent:
Acciones a realizar para subir, y posteriormente descargar, un archivo de Bit Torrent:
Luego lo que se hace es abrir el .torrent con un cliente de BitTorrent cualquiera, e indicarle como lugar de descarga el mismo lugar donde tenemos el original
Cuando tengamos el archivo al 100% descargado nos convertiremos automáticamente en un seed. Cuando un nuevo usuario se conecta, se añade un peer y empieza recibir trozos del archivo ya sea desde otro peer o un seed. Cuando consigue tener el 100% del archivo, automáticamente pasa de ser un peer a convertirse en un seed y así sucesivamente. Cuantos más seeds y peers hayan, más rápidamente se bajara un archivo.
Los archivos desaparecen en el momento que el tracker los descarta y éste suele hacerlo a las 24 o 48 horas seguidas sin la conexión de ningún seed, aunque puede variar porque depende de la configuración del tracker.
Servidor Ftp: Cuando un router está configurado en multipuesto dinamico utiliza NAT para dirigir la información que llega de la WAN hacia un equipo determinado de la red local. Veamos en que consiste el multipuesto dinamico.
Cada línea de acceso a Internet está dividida en una serie de puertos para facilitar el paso de información, y cada aplicación o juego hace uso de uno o varios puertos. En Multipuesto el paso de información por estos puertos se ve más controlado y por esta razón muchas veces la información entrante o saliente es rechazada. Esto no significa que no pueda pasar información, sino que determinado tipo de esta es rechazado. Esta es la razón por la cual muchas veces, estando en Multipuesto, nos vemos imposibilitados a jugar online con cierto juego o usar cierta aplicación que requiera el uso de nuestra conexión. Para solucionar este problema los routers incorporan una funcionalidad llamada NAT.
El NAT nos permitirá mapear los puertos que necesitemos, de tal forma que toda la información que llegue a ellos será remitida al puesto que indiquemos. Pero debemos tener en cuenta que solo podremos mapear el mismo puerto para un solo puesto (PC).
Como consecuencia de la configuración multipuesto veremos que para hacer que un ordenador de la red local se comporte con un servidor habrá que configurar una serie de parámetros en el router. Además de lo anteriormente dicho nuestra ip publica es dinámica lo que quiere decir que cada vez que reiniciamos el router o por alguna razón la conexión se cae, tendremos cada vez una direccion ip publica distinta, lo cual para establecer un servidor para dar servicio a equipos fuera de nuestra red local no es lógico, ya que de esta manera los clientes tendrían que preguntar al administrador del servicio cuál es su ip cada vez que deseen conectarse al servidor.
Una conexión FTP puede funcionar de dos modos: Activo(el modo por defecto) y pasivo (conocido como passive mode).
Para entender cómo funcionan estos modos, debemos profundizar un poco más en el esquema cliente/servidor y explicar cómo se realiza paso a paso una conexión entre la máquina cliente y servidor. Un puerto es un identificador de conexión remota. No es más que un número, e identifica la conexión de tal modo que para conectarnos a una máquina remota, debemos utilizar un puerto que esté libre. Normalmente, se admiten números de puerto desde 1 hasta 65535, y los 1024 primeros están reservados para el sistema (esto depende el sistema operativo). Cuando nos conectamos a una máquina remota, debemos indicar la dirección o nombre de la máquina (dirección IP y nombre de dominio) y el número de puerto del servidor (el identificador de nuestra conexión). De este modo, cuando llega un dato a la máquina remota, sabe perfectamente a qué conexión pertenece dicho dato. Si no existiera el puerto, una máquina sólo podría atender una conexión remota simultáneamente, porque no sería capaz de diferenciar los datos de las distintas conexiones. Tanto el cliente como el servidor deben tener un puerto activo durante la conexión. Normalmente, el que inicia la conexión (cliente) decide el puerto del servidor al que quiere conectarse y es el sistema el que asigna un número de puerto libre para el cliente.
En el modo activo, o por defecto, vemos que el cliente inicia la conexión con el servidor a través de un puerto X hacia el puerto 21 del servidor que será el puerto de control de ftp. A continuación el servidor establece siempre el canal de datos a través de su puerto 20 hacia el puerto Y del cliente, lo que a veces puede suponer un problema. Se verá mas adelante el por qué.
A continuación vamos a ver el modo pasivo:
El cliente arranca e intenta conectarse contra el servidor. Para ello crea un canal de control estableciendo una conexión física a la dirección IP (o nombre de dominio) del servidor, y desde cualquier puerto del cliente (puerto X) hacia el puerto 21 del servidor. (este punto es igual que en el modo activo).
Esto, aunque parezca un detalle sin importancia, puede ser vital en algunas situaciones. Supongamos que nuestra conexión a internet utiliza un cortafuegos. El principal cometido del cortafuegos es cerrar los puertos para conexiones entrantes, es decir: que sobre ciertos puertos sea imposible realizar una conexión remota. Si el cliente FTP utiliza un cortafuegos, y se utiliza el modo activo de conexión, tendremos muchas posibilidades de que no funcione correctamente, ya que cuando el servidor necesite abrir el canal de datos, se podría utilizar uno de los puertos que el cortafuegos mantiene cerrado. Sin embargo, en el modo pasivo, un cortafuegos no supone ningún problema, ya que las conexiones siempre las inicia el cliente, y el servidor nunca intentará abrir una conexión con el cliente.
Así que, sabiendo esto, es recomendable utilizar el modo pasivo si tenemos alguna sospecha de que puede haber sus cortafuegos en nuestra conexión.
Esto es todo lo que se puede decir a grades rasgos sobre los modos de conexión a un servidor ftp. Ahora explicaremos brevemente las dos formas de autitentificarse como usuario frente un servidor ftp.
La primera de las formas es de manera anónima, para ello cuando configuramos le servidor tenemos que habilitarlas, cosa que nosotros hemos hecho. Conectandonos de esta forma, el servidor ftp no sabe quien somos, en realidad no hay ninguna cuenta de usuario que nos identifique creada en el servidor, solo hay una cuenta anónima que utilizarán todos los usuarios que deseen conectarse de esta forma.
Si una servidor posee servicio 'FTP anonymous' solamente con teclear la palabra anonymous, cuando pregunte por tu usuario tendrás acceso a ese sistema. No se necesita ninguna contraseña preestablecida, aunque tendrás que introducir una sólo para ese momento, normalmente se suele utilizar la dirección de correo electrónico propia.
Solamente con eso se consigue acceso a los ficheros del FTP, aunque con menos privilegios que un usuario normal. Normalmente solo podrás leer y copiar los ficheros existentes, pero no modificarlos ni crear otros nuevos.
El segundo de estos métodos el la identificación como un usuario normal, el cual tiene una cuenta creada dentro del servidor con su nombre de usuario y contraseña correspondiente, con lo que cuando tenga que autentificarse ante el servidor esta información será la que suministre el cliente.
Configuración de partida de la red local antes de montar el servidor ftp: Se trata de un terminal con Windows xp conectado a un router en multipuesto dinamico.
Para el montaje del servicio P2P en los dos ordenadores también usaremos la misma red local.
Vamos a tratar en primera instancia todo lo que tiene que ver con la configuración del router.
Se trata de un router zyxel P660HW-D1 de los que te ponen en casa cuando contratas el conocido trío de imagenio.
Cuando lo contratas, por defecto solo puedes configurar algunos aspectos del router a traves de un llamado portal Alejandra a traves de cual solo puedes abrir puertos pero nada mas allá por lo que necesitamos obtener una contraseña para configurar el router a través de telnet.
Pasos a seguir:
Para acceder a el vamos al siguiente portal www.dyndns.com y una vez alli seguimos los siguientes pasos:
Configuracion del programa Serv-U FTP:
Inicio --> Panel de control--> Firewall de windows-->excepcionesUna vez aquí pinchar en agregar programa y seleccinamos Serv U ftp para que el firewall no bloquee las conexiones de nuestro programa. Tambien sería recomendable dejar pasar trafico por los puertos que se han abierto para las conexiones en modo pasivo. 6446 y 6447 . Para ello pinchamos en agregar puerto y simplemente se teclea el nº de puerto que queremos liberar.
Una de las dudas mas frecuentes en cuanto al uso de emule en mas de un equipo dentro de una red LAN es si
se puede usar el mismo servicio en distintos equipos simultaneamente. La respuesta es que si.
Pongamos el siguiente ejemplo con dos equipos A(192.168.2.2) y B(192.168.2.3). Para lograr nuestro propósito
deberemos ir a la tabla del NAT de nuestro router y mapear para la direccion del equipo A el puerto que
queremos utilizar para el emule y para la dirección del equipo B redireccionaremos otro puerto distinto del
que hemos utilizado para el quipo A. El proceso de redireccionamiento de puertos es análogo al explicado
para el servidor ftp.
Vamos a probar dos tipos de redes de transferencia de archivos, para ello vamos a usar el eMule y el programa Serv-U FTP de manipulación de redes FTP. Para realizar las pruebas lo que haremos será descargarnos 3 archivos de diferentes tamaños desde el programa eMule y recogeremos los tiempos, velocidades, etc. Posteriormente subiremos los archivos al servidor FTP, y los volveremos a descargar recogiendo tiempo y velocidades, posteriormente compararemos los resultados.
Los archivos son:
Nota: la disponibilidad se refiere al numero de usuarios que poseen ese archivo en el eMule.
Comparando las mediciones vemos que: el eMule para archivos pequeños es bastante rápido, por el contrario el FTP es muy lento. A medida que se va incrementando el tamaño del archivo, el FTP va reduciendo sus tiempos de descarga, incluso con una velocidad de descarga menor.
Podriamos decir que hay una relacion entre el tamaño y tiempo de descarga entre ambos programas.
Y la relacion seria la siguiente:
Hemos observado que en algunas ocasiones las descargas con el eMule pueden volverse lentas y tediosas.
Pondremos a continuación un ejemplo que clarificará de alguna manera el por qué de estas situaciones.
Supongamos que tenemos una canal de un Mb de ancho, es decir, que por el puede pasar un 1Mb o lo qu
e es lo mismo 125KBs. Tenemos hasta un maximo de 2000 grifos cuyo caudal es variable y que va desde 56kbs=2,8
a 2000kbs=196KBs. Pero cada grifo no surte solo a ese canal sino simultáneamente a varios canales distintos
variando el numero de canales surtidos por cada grifo entre 1-10, normalmente.Surge entonces la siguiente
pregunta: ¿Cuántos grifos necesitamos que viertan agua simultáneamente para que por el canal pase su caudal
máximo?
Hay que tener en cuenta también que hemos instalado unas sondas en el canal para saber qué grifos dan
agua y qué tipo de agua dan, lo que puede dar lugar a una merma a veces significativa de la capacidad del
canal de datos.
Sin embargo, aunque es cierto que hay 8 bits en cada byte, la naturaleza asíncrona de la transmisión de
datos por Internet requiere recibir 2 bits (de inicio y fin) por cada 8 de datos útiles. Así, hacen falta 10
bits para recibir 8 de información solicitada. Este factor, unido a variables como la pérdida de paquetes de
información, calidad de la línea, congestión de redes y servidores, etc., convierte el rendimiento 'verdadero'
de la línea en una ciencia inexacta.
En cuanto a las bajas velocidades de transferencia observadas en el uso del servidor ftp puede ser
debido a no utilizar un servidor dedicado para este fín, ya que este se ha montado en un ordenador de
sobremesa preparado para utilizarse como cliente y no para ofrecer este tipo de servicios además de alguna
de las razones comentadas anteriormente como puede ser la calidad de las lineas de la operadora. Con lo cual,
en el momento que estemos accediendo a internet y debamos compartir la conexión con un cliente que se conecta
a nuestro servidor, el rendimiento de este caerá considerablemente debiendose a que nuestro ancho de banda está
preparado para ser cliente.
El servicio ftp además tiene serios problemas de seguridad que con la conexión anónima no quedan
tan a la vista como pueden ser el envio de claves y datos en texto claro(sin cifrar), lo que les convierte en
objetivos fáciles de espiar.
Tanto los serviciós Ftp como p2p no éstuvieron exentos nunca de ciertas controversias legales por exponer
al público contenidos que solo se puede acceder a ellos mediante pago y actualmente aún se sigue debatiendo sobre
la legalidad de estos servicios que tanto usa la gente y tantos quebraderos de cabeza está creando a los
encargados de regular la propiedad intelectual.
Como cunclusión final podríamos decir que si no se dispone de los suficientes medios para ofrecer
un servicio ftp con unas velocidades de descarga aceptables se recomienda hacer uso de los servicios p2p ya que
con él se podrían llegar a alcanzar unas tasas de transferencia aceptables con equipos de sobremesa normales.