viernes, febrero 13, 2009

Workaround para el ancho de banda



Desde hace un tiempo se viene escuchando en la radio, tv, internet y diarios sobre la campaña "Mas Ancho de Banda", en la cual se pretende enviar una carta al ministro de industria en 
reclamo a la baja velocidad que brinda Antel en todos sus paquetes de ADSL. Sobre todo la asimetria del servicio, lo que dependiendo del uso que le des, te puede afectar en mayor o menor medida.
 
En mi caso, la asimetria me mata. Necesito poder subir a archivos "grandes" (entre comillas porque para mi son grandes... en otros paises ya no asusta transferir esta cantidad de informacion).
Por ejemplo, si tuviera que subir este archivo de 2.5 gb mas o menos:



necesitaria en el mejor de los casos y a velocidad constante de 256kbps (y asumiendo que realmente alguna vez llegás a tener esa velocidad) unas 23 horas.
2.623.418 KB a 256kpbs ~ 32KBs = 81982 segundos = 22.7 horas

Pero quienes hayan intentado esta titánica tarea, comparable solo con las aventuras mas extremas en el Himalaya, saben que es practicamente imposible realizarla en ese tiempo... y que quizas sea practicamente imposible realizarla y punto!
Que feo cuando el FTP se queda clavado en un % y de golpe te dice "Resumiendo".... y tuc.. vuelve a empezar de 0 !!!

Pero bueno, al son de "es lo que hay valor", se nos ocurrió un pequeño workaround (o solución alternativa y temporal). Nuestra solución se basa en lograr que varios clientes suban a la vez los mismos archivos a su maxima velocidad de subida posible, y que el servidor descargue estos archivos a la velocidad total posible (sumatoria de velocidades de subida de los clientes).
Aclaro que no es una solución muy cómoda y que se aplica en nuestro caso ya que tenemos control remoto del servidor. Si la única forma que tenés de acceder al servidor es via FTP, lo mejor es partir el archivo con el WinRar y armarte de paciencia y que la fuerza te acompañe.

Paso 1)
Instalar un cliente de torrents en el servidor. Por ejemplo el uTorrent o el Azureus (Vuze)
Instalar un cliente de torrents en las máquinas de quienes aporten su adsl para subir el archivo.
Nosotros tenemos 2 adsl en la oficina y somos 5 que podemos dejar subiendo el archivo en nuestra casa, con lo que tendriamos un total de 7 clientes.

Paso 2)
Crear un .torrent del o los archivos que se quieran subir. Esto es sencillo usando el wizard del cliente:





El archivo generado es un archivo de unos 30kb con extensión .torrent.


Paso 3)
Repartir el archivo de 2.5gb y el .torrent a los que van a colaborar para subirlo.
Cada uno tiene que poner el archivo de 2.5 gb en el folder compartido del Azureus o uTorrent y luego darle doble click al .torrent.
El cliente automaticamente se da cuenta que ya lo tenés descargado y lo pone en la cola de subida, listo para que alguien lo descargue.



Paso 4)
En el servidor, subis el .torrent (de tamaño 30kb) y le das doble click... el Azureus comienza a buscar semillas de este archivo y encuentra los clientes que lo están compartiendo (nosotros). Comienza la descarga del archivo, un pedazo de cada cliente.
Los resultados son mágicos!!!
El Azureus se encarga de la partición, la retoma, etc... si un cliente se va offline simplemente toma la parte de otro cliente.

Puede resultar engorroso la primera vez, pero una vez que aceitas el tema lográs velocidades de upload superiores a los 40 KBs, es decir que el servidor descarga el arhivo a una velocidad global (sumando los upload de cada cliente) mayor a 40KBs con picos de hasta 70KBs y sin tener que reiniciar la transferencia en ningun momento!

Cuantos más clientes están compartiendo el archivo, más rápida sera la descarga.

Después de escribir este post... leer que en Japón tienen una velocidad media residencial de 63 Mbps y que en USA se quejan de tener solo 2.7Mbps y después de sentirme por un rato en el cuarto mundo ... me voy a firmar la famosa carta!!!



1 comments:

Los Cardenales dijo...

Hola Estimado, mirá lo que yo pienso del ancho de banda en uruguay.

http://solucionesdealfredo.blogspot.com/2009/02/adsl-banda-ancha-en-uruguay.html

saludos