Explicando Skype

En un comentario al post anterior sobre Skype, me pide Miguel que me meta a explicar un poco el concepto de P2P aplicado a telefonía, y porqué la red mejora cuanta más gente está conectada a ella. Lo estaba escribiendo, pero se me estaba yendo un poco largo para un comentario, así que lo «elevaremos» a la categoría de post…

Lo verdaderamente innovador en Skype no es que se trate de un sistema de voz sobre IP (VoIP). Esto ya estaba inventado y explotado hace mucho tiempo, mi primera cuenta en uno de estos servicios, Net2Phone, data de 1996, recién llegado a USA, cuando era especialmente sensible a este tipo de temas. Compañías como PeopleCall, Net2Phone, Vonage y muchas otras han estado comercializando VoIP durante mucho tiempo, con éxito desigual. Los principios tecnológicos de VoIP los podéis ver en diferentes sitios (en HowStuffWorks, en Wikipedia…) pero de una manera hipersencilla, se basan en convertir a digital una señal sonora, y someterla al protocolo IP, es decir, convertirla en paquetes de información que son enviados a una dirección determinada. Como todo en Internet, esos paquetes son enviados a través de diversas rutas, definidas por lo que los routers quieran hacer con ellos en función de tablas de asignación dinámicas, características de la red, condiciones del tráfco, etc. y, eventualmente, llegan a su destino, donde son reagrupados, desempaquetados y vueltos a montar en el orden indicado en la cabecera de cada paquete. Si algún paquete no llega, se pierde o desaparece, el receptor no envía su correspondiente confirmación de recepción (acknowledge, ACK), y el emisor lo vuelve a enviar. Todo ello se puede entender fantásticamente bien y sin que se te vuelva a olvidar jamás viendo la fantástica película que utilizo en casi todos mis cursos introductorios desde hace muchos años, Warriors of the Net (necesitaréis un buen ancho de banda para ello).

El problema, claro, surge cuando en lugar de enviar texto o imagen, pretendes enviar voz. A un texto o una foto «no les importa demasiado» que «unos bits tarden más que otros» por condiciones del tráfico o porque han tenido que ser reenviado. En un momentito más o menos, el usuario lee su texto o ve su foto sin problemas. En la voz no es así. Si unos bits llegan más tarde, oiré eco, o tendré cortes en el sonido, o mi calidad será simplemente deleznable. Por eso, para usarlo con voz, es preciso hacer ajustes en el protocolo IP para evitar ese tipo de problemas, que aún así y todo, son inherentes a ese tipo de servicios. Aquí es donde Pau en su comentario al post anterior tenía razón: las mejoras a este tipo de servicios han venido más que nada del incremento de banda ancha en manos de los usuarios y de la mejora de las comunicaciones en general.

El caso de Skype es diferente, porque la verdadera innovación no viene de la VoIP, sino del ingenioso empleo de la tecnología Peer-to-Peer (P2P), la misma que utilizaron anteriormente sus fundadores para desarrollar KaZaA (que después vendieron a la australiana Sharman Networks). Hay un hilo conceptual clarísimo entre desarrollar KaZaA y lanzarse a fundar Skype, como bien comentó Niklas en su charla en el Instituto de Empresa (que, por cierto, espero colgar en streaming en breve). Skype, realmente, no se entiende en su desarrollo conceptual sin KaZaA. La idea es combinar esas dos tecnologías, VoIP y P2P, en algo nuevo. Ahí es donde veo yo la verdadera innovación. Francamente, no sé cómo será de sostenible, y ahí es donde surgen la mayoría de mis dudas al respecto de Skype, porque ambas son por separado tecnologías «dominadas». Ya hemos mencionado VoIP, y el P2P es más claro aún en ese sentido: Shawn Fanning desarrolló Napster (que no es verdadero P2P) en un par de noches sin dormir, y hay personas que han conseguido programar una aplicación P2P en tan solo quince líneas de código en Phyton. Ignoro que cosa tan especial habrán conseguido Niklas y Janus con su código, pero intuitivamente no parece complejo. Yo de hecho creo que pretenden basar su ventaja no en la tecnología, sino en el desarrollo de red, en tener una red más grande que cualqueir competidor que venga detrás. Pero esto corresponde a otro análisis diferente que haremos en otro momento.

Vamos con el P2P: una red P2P es una en la que todos sus nodos se unen dinámicamente y colaboran para participar en tareas intensivas en capacidad de proceso, como enrutamiento de paquetes, procesamiento, y otras que, de no estar en una red P2P, tendrían que ser llevadas a cabo por servidores centrales de algún tipo. Es pura cuestión de matemáticas: como el añadir un nodo adicional aporta más capacidad de proceso que trabajo como tal (entre otras cosas porque no hablamos durante todo el tiempo), la red puede escalar en número de usuarios de manera infinita. Cada nodo añade más capacidad de proceso y más ancho de banda a la red. La mayoría de usuarios de Skype cargan el programa, hablan, pero lo dejan cargado, de manera que cuando no lo usan, el programa está «trabajando para la red». Eso proporciona a la red una mayor calidad, una pura cuestión de dimensionamiento. De hecho, uno de los temas que más preocupaba a Niklas (y que le pregunté el día que estuvo aquí) era el de la seguridad. Si se empiezan a esparcir rumores (infundados hasta el momento) de que es peligroso mantener Skype abierto, muchos usuarios escogerían utilizar el programa, pero salir de él completamente cuando terminan de hablar, de manera que reducirían el aporte de ancho de banda y capacidad de proceso disponibles para el resto. Aún así, sería raro que esto pasase, porque perderíamos la capacidad de recibir llamadas sin haber hecho algún tipo de «cita previa».

Esta es un poco mi explicación al respecto, perdón por la extensión (Miguel, este es el riesgo de preguntar a un académico… hablamos más que el catecismo). Por supuesto, hay mucha gente que podría ampliar o corregir mucho esta explicación, entre otros Herme García, Socio y Director General de Peoplecall, que sé que me lee habitualmente (aunque en Actualidad Económica no lo diga :-) No sé si mi explicación será «tecnicamente correcta» en toda su extensión, no soy nada brillante como técnico (qué más quisiera), y no he priorizado el rigor, sino la legibilidad, el ponerla en «prosa fácil». Ya me contaréis si lo he conseguido…

17 comentarios

  • #001
    Pau Garcia i Quiles - 18 febrero 2005 - 15:02

    Y sin embargo, yo sigo pensando que da igual que sea P2P o no.

    El que sea P2P a la gente no le importa: el cuello de botella de todos los servicios de VoIP es el canuto que llega al usuario final. Si el usuario final tiene un módem de 33.6 Kbps o 56 Kbps, la calidad será mala, con o sin P2P. Si el usuario final tiene ADSL o cable a 256 Kbps, por mala que sea la codificación de voz, el resultado será bueno.

    Los únicos que obtienen alguna ventaja de que Skype use P2P son los de la empresa Skype, que se ahorran pagar facturas ingentes por el ancho de banda consumido: el ancho de banda lo ponen los usuarios. Pero como digo, eso no importa: el éxito de Skype viene de saber venderse y de llegar en el momento adecuado, ni demasiado pronto ni demasiado tarde.

  • #002
    Pau Garcia i Quiles - 18 febrero 2005 - 15:45

    Pensándolo bien, el P2P sí es una ventaja para Skype.

    No es una ventaja tecnológica, al menos, no una directa. Al contrario: el uso de una red P2P implica que la voz tenga un ligero retardo. Si quisieran que la comunicación fuese fluída, podrían hacer que la conexión se estableciese directamente entre los dos usuarios (el que llama y el llamado).

    Es una ventaja de MARKETING. Cualquier cosa que tenga que ver con tecnologías P2P es noticia inmediatamente, entre usuarios y entre medios de comunicación. Y Skype ha sabido sacar provecho de eso: está consiguiendo enormes beneficios en publicidad gratuita.

  • #003
    Miguel - 18 febrero 2005 - 15:51

    Joder Enrique, si hasta lo he entendido!! Gracias

  • #004
    deif - 18 febrero 2005 - 16:01

    Me extraña que no haya salido antes, pero en http://www.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-039-04.pdf podéis encontrar un completo informe técnico sobre cómo funciona Skype, aunque todo a base de investigar (sí, Skype se basa en protocolos cerrados y propietarios)

  • #005
    ANTONIO FUMERO - 18 febrero 2005 - 17:41

    Como tecnólogo de base que soy, tengo que decir que, técnicamente, está bien resuelto… Para los detalles, hay un informe de un chaval que se ha preocupado de hacer sus pruebecitas y capturar algo de tráfico con un sniffer, http://www1.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-039-04.pdf

    Salud!

  • #006
    ANTONIO FUMERO - 18 febrero 2005 - 17:42

    Ooops! Acabo de darme cuenta que alguien había aportado la referencia al informe en cuestión; en fin… no he dicho nada.

  • #007
    Herme Garcia - 18 febrero 2005 - 18:19

    Enrique … gracias por la mención , y te digo … Noemi me preguntó entre otras cosas mis blogs mas leidos y te nombré a tí y a Seth Godin … ;), pero ha debido de haber problemas de espacio.

    Esa es una buena cosa de los blogs, que te explayas, lo que me pregunto es porque los periodistas no ponen DOS versiones de algunos artículos, una para la revista y otra para la web …

    ¿crees que podría haber un invento que fuese la «reviblog», que empiece en el quiosco y evolucione por el blog?

    Volviendo a Skype … a mi tambíen se me queda corto a mi también esto, pero posteare un comentario de Skype y su P2P …

  • #008
    Pau Garcia i Quiles - 18 febrero 2005 - 18:41

    ¿Reviblog? Ya lo hay: Make

  • #009
    Yabu - 19 febrero 2005 - 00:54

    Vaya morro. Asi que mi ordenador esta prestandole ancho de banda, procesador y disco duro a Skype para que ellos hagan el negocio. Desde luego la idea es buenisima, pero para la empresa.

    Y lo de protocolos cerrados a estas alturas de internet, me parece que es un tremendo error.

    Esto me esta empezando a oler a mi que al tipico caso de producto que no es el mejor pero que triunfa por modas o una buena campaña de marketing.

  • #010
    ultor - 19 febrero 2005 - 11:13

    Como bien comentais, Skype utiliza protocolos propietarios y cifrados, lo que para una amante de la biodiversidad abierta como es Enrique, me parece contradictorio.

    El sistema de Skype es cerrado. No admite competencia, y por si a alguien se le ocurre intentar «ingniería inversa» se cifra todo. ¿Será este el motivo de cifrarlo todo o será la privacidad de las conversaciones?

    A pesar de esto, se pueden deducir algunas cosas, como que los nodos intermedios cachean los resultados de las búsquedas, o que los primeros nodos a los que se conecta después de una instalación están «hard-coded» en el código (por lo que parece probable que si se ordenara el cierre de estos ocho nodos que estan en USA, las nuevas instalaciones de esta versión dejarían de funcionar).

    Respecto al uso de p2p, parece (vuelvo a lo del protocolo cifrado y propietario) que se utiliza siempre para «logarse» en la red y realizar búsquedas de usuarios. Hasta aquí no es nada nuevo. La «novedad» aparece si uno de los usuarios no tiene IP Pública o está tras algún tipo de firewall o NAT restrictivo. Es entonces cuando las conversaciones se cursan mediante un tercer nodo que hace de puente.

    Por último, Skype no tiene supresión de silencios (a pesar de no hablar sigue habiendo el mismo flujo de datos que cuando se habla) y algunas de sus «features» como poner una llamada en espera, siguen manteniendo tráfico con el cliente que se «deja colgado».

    Desde mi punto de vista. Para una cosa que había medio estándar, el H.323 (y digo medio, porque hay cada implementación que es para verla) han llegado estos y se la han pasado por el arco del triunfo, no para intentar implantar un nuevo estándar, sino para establecer un sistema cerrado de dudoso beneficio económico para ellos (lo de las llamadas a la PSTN, no debe dar ni para pipas por lo que se dice).

    Por otra parte, como beneficio percibido por el usuario, tenemos que si está detrás de un NAT/Firewall puede cursar llamadas de forma transparente, a cambio de gastarle el ancho de banda a un tercero que no tiene estos problemas. No sé si el sistema me parece muy justo. El pobre tercer señor siempre había podido hablar (por ejemplo con Netmeeting), pero ahora, además, tiene que cursar las llamadas de otros que por alguna razón no pueden hacerlo directamente. En otra ocasión podríamos analizar esas razones porque en muchas ocasiones no son tan injustas como a veces se pretende hacer creer.

    Espero que para estos tengas mejores augurios que para MS y que al menos les llegue para ir manteniendo su sistema cerrado.

  • #011
    Grohl - 19 febrero 2005 - 14:32

    Yo pensaba que el procesamiendo distribuido y colaborativo se llamaba grid, y no P2P

  • #012
    gallegoh - 19 febrero 2005 - 18:41

    Gracias, como siempre, por hacernos comprender un poco mejor las cosas a los que estamos fuera de este mundo. En cualquier caso una reflexión, el secreto del P2P, o no el secreto, es la colaboración entre usuarios o al menos la puesta en común del ancho de banda, en la conformación de una red destinada a intereses comunes. Bien, llevado a la práctica con Skipe, estamos ante una «socialización» de una red de comunicaciones, es decir, el hablar gratis entre usuarios ya no es hablar gratis, sino que tu cuota o pago lo haces a través de la aportación de recursos de red para el sostenimiento de la comunidad. ¿Se abren nuevos modelos de negocio?

  • #013
    Alberto Torron - 19 febrero 2005 - 22:36

    Yo creo que se ha apuntado muy bien en la explicación de Enrique, a dia de hoy la mejora en las comunicaciones lleva a que soluciones muy costosas hace solo unos meses sean perfectamente viables hoy. En mi empresa usamos ampliamente voz sobre ip desde hace mas de 2 años sobre las ADSL instaladas, y hemos notado una mejora enorme tras el aumento de velocidad de octubre.

    Esto es solo el principio… lástima que no podamos interoperar con H323 con Skype.

    Sobre el P2P, a mi la duda que me queda ahora, es como ganar -una vez conseguida la penetración en el mercado-, la confianza del consumidor, para que en vez de pensar que puede hacer algunas llamadas gratis, pueda pensar que esto pertenece a un modelo de negocio, por el cual debe pagar -poco o mucho-. Falta ver cómo reaccionan en un futuro los gobiernos a las presiones de los operadores de telefonia fija y movil.

    Lamentablemente el ejemplo cercano es el de la musica… La reacción de la industria ha sido pedir regulación, no adaptarse al cambio.

  • #014
    Joan - 21 febrero 2005 - 09:42

    El H.323 está muriendo a manos del SIP
    (http://www.sipforum.org/)

  • #015
    Pablo Molinero - 21 febrero 2005 - 13:48

    Para un operador de Internet, el hacer que Skype sea inservible es relativamente facil. Tan solo hay que añadir un retardo de unos segundos a unos pocos paquetes.

    Por eso, en cuanto empiece a erosionar los ingresos de la telefonia de larga distancia, los operadores con intereses en ADSL/cable y telefonia (e.g., telefonica, auna, …) tomaran cartas en el asunto, al contrario que con el P2P de intercambio de ficheros, donde los operadores no tiene incentivos en moderar su uso (mas bien al contrario).

  • #016
    Pablo Martínez-Almeida - 22 febrero 2005 - 08:42

    Pablo, es posible que los operadores añadan el retardo que tú comentas para hacer inservible la red pero veo algunos problemas para que consigan hacerlo:
    – Por una parte el rápido crecimiento de la base de usuarios de aplicaciones como Skype. No es lo mismo cerrar el grifo a 500 usuarios que a 50.000.

    – Se haría necesario concertar una acción así entre operadores para evitar la fuga de clientes (práctica contrarias a la libre competencia).

    – No todos los proveedores de banda ancha tienen negocio de telefonía.

  • #017
    Vicente Soto - 27 noviembre 2007 - 00:39

    Super la expllicacion y como funciona P2P
    pero tengo una duda como hace skype para tener comunicacion con telefonia convencional

Dejar un Comentario

Los comentarios están cerrados