Los usuarios del IRC utilizan una aplicación cliente para conectarse con un servidor, en el que funciona una aplicación IRCd (IRC Daemon o servidor de IRC) que gestiona los canales y las conversaciones.
IRC fue creado por Jarkko Oikarinen (alias "WiZ") en agosto de 1988 con el motivo de reemplazar al programa MUT (talk multiusuario) en un BBS llamado OuluBox en Finlandia. Oikarinen se inspiró en el Bitnet Relay Chat el cual operaba en la red Bitnet.
El IRC ganó popularidad cuando fue utilizado en el intento de golpe de estado en la Unión Soviética de 1991 para informar a través de un periodo de censura en los medios. Fue utilizado de similar manera por los Kuwatíes durante la Invasión a Irak.
Información técnica [editar]
IRC es un Protocolo de red que utiliza TCP así como opcionalmente SSL. Un servidor de IRC se puede conectar a otros servidores IRC para expandir la red IRC. Los usuarios acceden a las redes de IRC conectando un cliente a un servidor. Existen muchas implementaciones de clientes IRC así como de servidores. La mayoría de los servidores IRC no necesitan que los usuarios se registren, aunque de cualquier manera se necesita que los usuarios establezcan un alias antes de conectarse.
IRC es un protocolo que envía sus mensajes en texto plano, lo que significa que es posible (aunque poco práctico) utilizar IRC mediante un cliente de flujo de bytes básico como netcat o telnet. De cualquier manera, el protocolo solamente utiliza una versión ligeramente modificada de ASCII, y originalmente no proporciona soporte para caracteres no ASCII en el texto, lo que da como resultado que existan muchas codificaciones incompatibles tales como ISO 8859-1, UTF-8, etc.
Debido a que las implementaciones de IRC utilizan grafos acíclicos como su modelo de conexión, se carece de redundancia y por ese motivo la caída de algún servidor da como resultado un netsplit.
Evolución [editar]
Hoy en día, todos los protocolos cliente-servidor utilizados descienden del protocolo implementado en la versión de irc2.8, y el cual se encuentra documentado en el RFC 1459. Desde que el RFC 1459 fue publicado, las nuevas características en la implementación del irc2.10 llevaron a la publicación de varios documentos de revisión del protocolo; RFC 2810, RFC 2811, RFC 2812 y RFC 2813, aunque estos cambios en el protocolo no han sido ampliamente adoptados como las otras. la versión de IRC 2.10 es la más ampliamente utilizada en las red IRCnet. El protocolo de IRC fue extendido por Microsoft en 1998 mediante su protocolo IRCX, el cual resuelve varios problemas que las redes de IRC heredaron. Aunque han sido publicadas muchas especificaciones del protocolo IRC, no existe una especificación oficial, de manera que el protocolo permanece dinámico. Existen muy pocos clientes y servidores que se apegan a la referencia RFC.
Mientras que los protocolos de cliente a servidor se mantienen homogéneos, los protocolos servidor a servidor difieren ampliamente (TS5, P10 y ND/CD), volviendo muy complicada la tarea de enlazar a dos implementaciones distintas de servidores IRC. Existen algunos servidores "puente" que permiten enlazar por ejemplo a un servidor 2.10 con uno TS5.
Durante sus primeras encarnaciones, IRC no tenía muchas de las características que posee ahora, por ejemplo los canales con nombre o los operadores de canal. Los canales se numeraban -- canal 4 y canal 57, por dar un ejemplo -- y el tópico del canal describían el tipo de conversación del que se estaba tratando en el canal.
El primer gran cambio en IRC, tuvo lugar en la versión 2.5, y el cual agregaba canales con nombre -- "+canales. En la versión 2.7 los "+canales" fueron reemplazados por "#canales", los canales numéricos se eliminaron y se implementaron los baneos (modo +b). En la versión de irc 2.8 se añadieron los "&canales" (los que actualmente existen solamente en el servidor, y no en la red completa) y los "!canales" (los que teóricamente están a salvo de take-overs de otros usuarios), y fue la base de la cual se liberaron casi todas las implementaciones.
Algunas liberaciones significativas en 2.8 incluyen:
- 2.8.21+CS, desarrollada por Comstud
- 2.8+th, Parches realizados por TAner, y el cual se convirtió en
- 2.8/hybrid, desarrollado originalmente por Jon Lusky (Rodder) y Diane Bruce (Dianora), a los cuales después se les unió un gran equipo de desarrollo.
- 2.9, 2.10, 2.11, ... continuando el desarrollo del código original. Esta línea de producción hizo los 4 RFCs de IRC después de la liberación del RFC 1459 el cual documenta a este protocolo del servidor.
Canales y Modos [editar]
El modo básico de comunicación en una sesión de IRC se encuentra en un canal. Se pueden ver todos los canales de un servidor utilizando la orden /list [#cadena] [-min #] [-max #], se pueden utilizar parámetros opcionalmente para filtrar la búsqueda. Los usuarios puede unirse a los canales (utilizando la orden /join #nombredecanal) y pueden enviar mensajes a ellos, los cuales son reenviados a otros usuarios en el mismo canal. Los canales que están disponibles en toda la red de IRC son prefijados con un '#', mientras que los locales utilizan un '&'. Algunos otros tipos de canales (no estándar) incluyen modos con '+' y '!'.
Los canales y los usuarios tienen modos, los cuales son un tipo de atributos. Los modos se abrevian con letras, como por ejemplo el modo de usuario 'i' que significa invisible. Un ejemplo de modo de canal podría ser la 'm' (moderado), especificando que solo los usuarios con 'voz' pueden hablar en el canal. En conjunto con 'k' (keyed con llave, se requiere contraseña para entrar) y la 'i' (invitación solamente - se requiere invitación del operador del canal). Existen cinco tipos de modo para un canal, cuatro de los cuales nos aceptan un argumento, el tipo A acepta un argumento para agregar o eliminar valores de una lista (como la 'b'), el tipo B nos acepta un argumento que es utilizado cuando se 'enciende' o 'apaga' (como la 'k'), el tipo C nos acepta un argunento solamente cuando el modo se encuentra 'encendido' (como la 'l'), el tipo D es una bandera booleana y no acepta argumentos (como la 'm', 'n', y 't'), el tipo E (generalmente denominado 'clase' o modo de 'prefijo') que quita o da privilegios a un usuario de un canal (como la 'o').
No hay comentarios:
Publicar un comentario