Los problemas del IRC y su solución :-) (Re: [IRC-DEV] La comunidad de desarrolladores hispanos)

Jesus Cea jcea at argo.es
Wed Mar 30 16:53:47 CEST 2005


Muchos sabreis que el IRC lo tengo muy abandonado, manteniendo los 
servicios mínimos requeridos por mi empresa.

Personalmente creo que el IRC como tecnología está muerta, no tiene 
futuro. Y eso a pesar de las muchas innovaciones que se han ido creando 
originariamente en ESNET, como Olimpo, la base de datos distribuida, 
compresión de los enlaces entre nodos, y otra smuchas innovaciones que 
se han quedado en el tintero, como los canales masivos o los "lazy nodes".

Pero el IRC tiene varios problemas intrínsecos que considero importantes:

1. El tráfico "de fondo" de una red de IRC crece a medida que aumentan 
sus usuarios y sus canales. Es decir, aunque un nodo no tenga usuarios 
conectados, su tráfico "administrativo" con el HUB crece y crece sin cesar.

  Consecuencia: El IRC no escala

2. Cada red de IRC es un universo en sí mismo, sin comunicación con las 
demás. Esto tiene varias consecuencias importantes:

  2.1. Debido al efecto red (usuarios llaman a usuarios), una red 
pequeña no tiene oportunidades para crecer, a pesar de su "excelencia".

  2.2. Las innovaciones que haga una red solo están accesibles para los 
usuarios de dicha red.

  Consecuencia: las innovaciones y servicios son fragmentarios y 
locales, y hay pocos incentivos para "trabajar" mejorando la red.

  2.3. Si "alguien" quiere desplegar un servicio en IRC, tiene que a) 
desplegarlo en una única red, b) montar un "nodo" de IRC más o menos 
completo y c) pedir permiso administrativo a la red en cuestión. Por 
supuesto, dicho servicio será accesible exclusivamente a los usuarios de 
dicha red.

  Consecuencia: Las redes son muy "endogámicas" y no innova "quien 
quiere" sino "quien quiere".

3. Conectar un nodo a una red de IRC es un paso muy importante, con 
importantes riesgos e inversión de recursos por ambas partes.

  Consecuencia: Un nodo malicioso puede desestabilizar una red por completo.

4. Si hablamos de una red con cientos de miles de usuarios (o millones) 
el espacio de nombres de usuario (nicks) va a ser un punto de conflicto 
importante.

  Consecuencia: El IRC no escala.

El protocolo Jabber/XMPP, estándar IETF desde Navidad, soluciona todos 
estos problemas:

1. Existe una única red mundial XMPP, y no se necesita ningún requisito 
concreto para pertenecer a ella.

  Consecuencia: No hay redes grandes y pequeñas, porque solo existe una 
única red planetaria, de acceso libre.

2. La red permite un número ilimitado de nodos, cada uno de ellos con un 
número ilimitado de usuarios.

  Consecuencia: Escalabilidad ilimitada.

3. El tráfico de "fondo" de la red crece en función de los usuarios 
locales y sus relaciones externas, no en función del número de usuarios 
totales de la red.

  Consecuencia: Escalabilidad ilimitada.

4. Cualquier servicio en cualquier nodo es accesible por el resto de la 
red planetaria.

  Consecuencia: Baja barrera de entrad apara "innovar", y la visibilidad 
de dichas innovaciones es universal.

5. Espacio de nombres jerárquico.

  Consecuencia: Cualquiera puede ponerse el nick que le dé la gana, sin 
colisiones.

6. La estabilidad de la red no depende del "buen hacer" de los nodos.

  Consecuencia: La red permanece estable aunque haya nodos mal 
configurados o maliciosos.

Algunos miembros de la lista recordarán alguna cena compartida en la que 
expresé un "diseño" que estaba concretando, en la que todo usuario de la 
red era un nodo de la misma (Peer to Peer puro), pero manteniendo el 
anonimato, el secreto de las comunicaciones y una gran resistencia a 
ataques. Aunque el diseño está básicamente ultimado, mi salida de 
IRC-Hispano y una mayor involucración en el proyecto Jabber/XMPP lo ha 
relegado al olvido. Lo tengo archivado por ahí...

Y en cuanto a la compatibilidad, es sencillo seguir usando el mismo 
cliente de toda la vida, sin más que meter un "proxy" intermedio en la 
misma máquina o en servidores específicos, de la misma manera que 
funciona mi proyecto BulletProof 
(http://www.argo.es/~jcea/programacion/bulletproof.htm).

-- 
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea at argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                       _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz





More information about the IRC-Dev mailing list