viernes, 21 de septiembre de 2012

Napster



  Algo de historia:

  Shawn Fanning publicó Napster en 1999 que era una aplicación que permitía compartir archivos mp3, en 2001 tenía sobre 26.1 millones de usuarios registrados, quienes en un solo mes compartieron 2.8 billones de ficheros y en julio de 2001 cerró por orden judicial (derechos de autor). En  mayo de 2008 Napster anunció el lanzamiento de la tienda más grande de MP3 del mundo, con 6 millones de canciones, en free.napster.com. El aviso también indicó que todas las ventas de descargas en Estados Unidos hechas con Napster ahora estarían en formato MP3. El 1 de diciembre de 2011 Napster se fusionó con Rhapsody.


  Napster funcionaba del siguiente modo: cuando un cliente se conecta, este contacta con el servidor central indicándole su dirección ip y la lista de archivos que está dispuesto a compartir, para pedir un archivo el cliente le solicita al servidor una lista de los participantes que tienen ese fichero, y este responde dándole sus ip. El archivo se obtiene directamente desde los participantes de la lista anterior, sin pasar por el servidor.






  Para mantener dicha base de datos actualizada, el servidor central mantenía una conexión TCP con cada usuario a través de la cuál preguntaba a los clientes si estaban conectados y recogía las respuestas constantemente. Además, los clientes anunciaban qué contenidos querían añadir o quitar de la lista.

  La ventaja más importante de Nasper era que la búsqueda era a través del servidor central y por ello la búsqueda era rápida. La desventaja de esto es que si falla el servidor central falla todo, ya que el proceso de búsqueda no se realizaría. Pese a que la transferencia de archivos es descentralizada la localización es centralizada.

jueves, 20 de septiembre de 2012

Peer to peer



  Las aplicaciones de red constan de dos partes: cliente y servidor.

  El servidor es el encargado de proporcionar servicios a los clientes, es un proceso infinito (salvo que ocurra algún problema).
  El cliente es el que inicia contacto con el servidor solicitándole algo, es un proceso finito que finaliza cuando el cliente recibe lo solicitado.

  El servidor funciona enviando/recibiendo los mensajes a través de su socket (que es la puerta del servidor por la cual entran/salen los mensajes del cliente y del servidor, algo así como dos puertas en un pasillo donde el pasillo es la red).

  Para que todo esto surja tiene que existir un proceso que pida un servicio a través de la red (navegador, juego...), el cual tiene que tener en el mensaje un identificador donde está su dirección ip y el número de puerto y host para que le llegue la respuesta.

  Ahora que definimos lo que es cada cosa metámonos en el p2p.

  El objetivo de estas redes es compartir los recursos de los que disponemos (red, disco duro, procesador... ), para ellos un ordenador es cliente y servidor a la vez.

  Como cliente enviamos solicitudes y recibimos la respuesta y como servidor recibimos solicitudes, las procesamos, enviamos la respuesta y propagamos solicitudes.

  Sus características son:
  1. Que no se dispone de un servidor central como ocurre normalmente, se usa el ancho de banda en toda la red.
  2. Es imposible tener una visión del sistema completo.
  3. Los usuarios son autónomos (se bastan solos, no necesitan un intermediario).
  4. La responsabilidad del servicio es de todos los usuarios.



Sus dificultades son que las redes disponen de cortafuegos (sólo permiten el paso de cierto protocolos bien definidos (RFC) y en ciertos sentidos, etc.), las ip de los usuarios son dinámicas...

Conforme nos adentramos nos damos cuenta que necesitamos saber cómo participar en una red p2p, cómo puedo compartir un archivo, cómo lo busco, cómo lo descargo...
 Bien, vayamos poco a poco y por partes, en mis siguientes entradas explicaré algunos ejemplos de clientes y en ellos repondere a las anteriores cuestiones mediante ejemplos.

lunes, 17 de septiembre de 2012

Alternativas seguras a Dropbox

Hola, llevo tiempo buscando alternativas a dopbox pero algo donde el alojamiento estuviese en mi casa o en su defecto bajo mi supervisión donde la cantidad de GB la pusiese yo, de mismo modo cuando estuviese activo y cuando no.



Primero comencé creando un servidor FPTS pero sincronizarlo a un dominio y que este siempre supiese lincarlo a mi ordenador teniendo una conexión a internet dinámica (dirección ip cambiante) en si todo muy un poco enrevesado y más por que tenia que hacerlo mediante una web donde me abría ventanas emergentes cada vez que quería acceder a mi pc.

Buscando y buscando me encontré con muchos proyectos tipo dropbox hasta que di con Syncbox pero en si no me convenció, valía para mis propósitos pero el servidor solo funciona en windows cuando yo uso linux, aparte de que el código no es libre, por lo que seguí buscando y di con iFolder (no es de apple) donde es exactamente igual pero el código es libre y sí puedo tener mi servidor sobre linux,



La principal diferencia respecto al anterior es que es un proyecto de codigo abierto y el servidor corre sobre linux (un pelín más seguro, no?)