1. INTRODUCCIÓN
El protocolo IRC (Internet Relay Chat) se ha diseñado durante unos
años para usarse como conferencia basada en texto. Este documento
describe el protocolo IRC actual.
El protocolo IRC se ha desarrollado en sistemas que usan el
protocolo de red TCP/IP, aunque no es imperativo que esta sea la
única forma en que funcione.
El IRC es en sí mismo un sistema de teleconferencia que (a través
del modelo cliente-servidor) es adecuado para funcionar en muchas
máquinas en una forma distribuida. Una configuración típìca incluye
un único proceso (el servidor) que conforma un punto central para
que los clientes (u otros servidores) se conecten a él, realizando
los envíos y multiplexado de mensajes requeridos, así como otras
funciones.
1.1 Servidores
El servidor forma la espina dorsal del IRC, proporcionando un punto
al que los clientes pueden conectar para hablar unos con otros, y un
punto para que otros servidores se conecten a él, formando una red
IRC. La única configuración de red permitida para los servidores de
IRC es una con forma de árbol extendido [ver figura 1], donde cada
servidor hace de nodo central para el resto de la red que dicho
servidor "ve".
[ Servidor 15 ] [ Servidor 13 ] [ Servidor 14]
/ \ /
/ \ /
[ Servidor 11 ] ------ [ Servidor 1 ] [ Servidor 12]
/ \ /
/ \ /
[ Servidor 2 ] [ Servidor 3 ]
/ \ \
/ \ \
[ Servidor 4 ] [ Servidor 5 ] [ Servidor 6 ]
/ | \ /
/ | \ /
/ | \________ /
/ | \ /
[ Servidor 7 ] [ Servidor 8 ] [ Servidor 9 ] [ Servidor 10 ]
:
[ etc. ]
:
[ Figura. 1. Formato de una red de servidores de IRC ]
1.2 Clientes
Un cliente es cualquier cosa que se conecta a un servidor que no sea
otro servidor. Cada cliente se distingue de otros clientes por un
único nick de 9 caracteres de longitud máxima. Ver las reglas de
gramática de protocolo para ver lo que se puede y lo que no se puede
usar en un nick. Además del nick, todos los servidores deben tener
la siguiente información sobre todos los clientes: nombre real del
host desde el que conecta el cliente, el nombre de usuario del
cliente en ese host, y el servidor al que está conectado el cliente.
1.2.1 Operadores
Para mantener un cierto orden en la red de IRC, existe una clase de
clientes especial (Operadores) que realizan funciones generales de
mantenimiento en la red. Aunque los "poderes" concedidos a un
un Operador pueden considerarse "peligrosos", son necesarios. Los
Operadores deben ser capaces de realizar tareas básicas de red como
desconectar y reconectar servidores para prevenir un uso prolongado
de mal rutado de red. Como reconocimiento de esta necesidad, el
protocolo explicado aquí sólo permite a los Operadores realizar
dichas funciones.
Un poder con mayor controversia es la posibilidad de que un Operador
elimine un usuario de la red por la "fuerza". Por ejemplo, los
Operadores son capaces de cerrar la conexión entre cualquier cliente
y servidor. La justificación de esto es delicada ya que su abuso es
a la vez destructivo y molesto.
1.3 Canales
Un canal es un grupo (con nombre) de uno o más clientes que reciben
mensajes dirigidos a ese canal. El canal se crea implícitamente al
unirse el primer cliente, y deja de existir cuando el último cliente
lo deja. Mientras el canal exista, cualquier cliente puede dirigirse
al canal usando el nombre de dicho canal.
Los nombres de canales son cadenas (que empiezan con '&' o '#') de
hasta 200 caracteres. Aparte del requisito de que el primer carácter
sea un '&' o un '#', la única restricción es que no puede contener
espacios en blanco (' '), control G (^G o ASCII 7), o una coma (',',
que se usa como separador de listas de parámetros).
Hay dos tipos de canales permitidos por el protocolo. Uno es un
canal distribuido que es conocido por todos los servidores de la
red. Estos canales se marcan con el primer carácter '#'. Otro tipo
de canales se caracteriza por ser sólo para clientes conectados al
servidor en el que se encuentra el canal. Se distinguen porque su
primer carácter es '&'. Por encima de estos tipos, hay modos de
canal que varían las características de los canales.
El protocolo IRC (Internet Relay Chat) se ha diseñado durante unos
años para usarse como conferencia basada en texto. Este documento
describe el protocolo IRC actual.
El protocolo IRC se ha desarrollado en sistemas que usan el
protocolo de red TCP/IP, aunque no es imperativo que esta sea la
única forma en que funcione.
El IRC es en sí mismo un sistema de teleconferencia que (a través
del modelo cliente-servidor) es adecuado para funcionar en muchas
máquinas en una forma distribuida. Una configuración típìca incluye
un único proceso (el servidor) que conforma un punto central para
que los clientes (u otros servidores) se conecten a él, realizando
los envíos y multiplexado de mensajes requeridos, así como otras
funciones.
1.1 Servidores
El servidor forma la espina dorsal del IRC, proporcionando un punto
al que los clientes pueden conectar para hablar unos con otros, y un
punto para que otros servidores se conecten a él, formando una red
IRC. La única configuración de red permitida para los servidores de
IRC es una con forma de árbol extendido [ver figura 1], donde cada
servidor hace de nodo central para el resto de la red que dicho
servidor "ve".
[ Servidor 15 ] [ Servidor 13 ] [ Servidor 14]
/ \ /
/ \ /
[ Servidor 11 ] ------ [ Servidor 1 ] [ Servidor 12]
/ \ /
/ \ /
[ Servidor 2 ] [ Servidor 3 ]
/ \ \
/ \ \
[ Servidor 4 ] [ Servidor 5 ] [ Servidor 6 ]
/ | \ /
/ | \ /
/ | \________ /
/ | \ /
[ Servidor 7 ] [ Servidor 8 ] [ Servidor 9 ] [ Servidor 10 ]
:
[ etc. ]
:
[ Figura. 1. Formato de una red de servidores de IRC ]
1.2 Clientes
Un cliente es cualquier cosa que se conecta a un servidor que no sea
otro servidor. Cada cliente se distingue de otros clientes por un
único nick de 9 caracteres de longitud máxima. Ver las reglas de
gramática de protocolo para ver lo que se puede y lo que no se puede
usar en un nick. Además del nick, todos los servidores deben tener
la siguiente información sobre todos los clientes: nombre real del
host desde el que conecta el cliente, el nombre de usuario del
cliente en ese host, y el servidor al que está conectado el cliente.
1.2.1 Operadores
Para mantener un cierto orden en la red de IRC, existe una clase de
clientes especial (Operadores) que realizan funciones generales de
mantenimiento en la red. Aunque los "poderes" concedidos a un
un Operador pueden considerarse "peligrosos", son necesarios. Los
Operadores deben ser capaces de realizar tareas básicas de red como
desconectar y reconectar servidores para prevenir un uso prolongado
de mal rutado de red. Como reconocimiento de esta necesidad, el
protocolo explicado aquí sólo permite a los Operadores realizar
dichas funciones.
Un poder con mayor controversia es la posibilidad de que un Operador
elimine un usuario de la red por la "fuerza". Por ejemplo, los
Operadores son capaces de cerrar la conexión entre cualquier cliente
y servidor. La justificación de esto es delicada ya que su abuso es
a la vez destructivo y molesto.
1.3 Canales
Un canal es un grupo (con nombre) de uno o más clientes que reciben
mensajes dirigidos a ese canal. El canal se crea implícitamente al
unirse el primer cliente, y deja de existir cuando el último cliente
lo deja. Mientras el canal exista, cualquier cliente puede dirigirse
al canal usando el nombre de dicho canal.
Los nombres de canales son cadenas (que empiezan con '&' o '#') de
hasta 200 caracteres. Aparte del requisito de que el primer carácter
sea un '&' o un '#', la única restricción es que no puede contener
espacios en blanco (' '), control G (^G o ASCII 7), o una coma (',',
que se usa como separador de listas de parámetros).
Hay dos tipos de canales permitidos por el protocolo. Uno es un
canal distribuido que es conocido por todos los servidores de la
red. Estos canales se marcan con el primer carácter '#'. Otro tipo
de canales se caracteriza por ser sólo para clientes conectados al
servidor en el que se encuentra el canal. Se distinguen porque su
primer carácter es '&'. Por encima de estos tipos, hay modos de
canal que varían las características de los canales.