Infos zu IRC
Internet Relay Chat, kurz IRC, bezeichnet ein etabliertes, rein textbasiertes
Chat-System. Zur Teilnahme wird daher ein spezielles Chat-Programm, der
IRC-Client verwendet. Dieser Client wird bei einigen Browsern auch mitgeliefert
(z.B. Opera oder Mozilla/Seamonkey).
IRC ermöglicht sowohl Gespräche zwischen zwei Teilnehmern (Privatchat) als auch
Gesprächsrunden mit einer beliebigen Anzahl Teilnehmern, so genannten Channels
(Gesprächskanäle). Neue Channel können üblicherweise jederzeit von jedem
Teilnehmer frei eröffnet werden, ebenso kann man gleichzeitig an mehreren
Channeln teilnehmen.
IRC ist verglichen mit den meisten anderen Chat-Systemen äußerst leistungsfähig
und robust: Zur Vermittlung der Gespräche wird ein Netzwerk aus miteinander
verbundenen Servern eingesetzt, so dass die Belastung auf viele Rechner verteilt
und so eine nahezu beliebig große „Chatlandschaft“ ermöglicht wird. Die größten
IRC-Netzwerke bestehen aus mehreren dutzend IRC-Servern, verbinden gleichzeitig
über 100.000 Benutzer und verwalten zehntausende Channel, an denen jeweils bis
zu 2.000 Personen gleichzeitig teilnehmen. Trotz dieser enormen Ausmaße ist die
Verzögerung eines abgeschickten Textes für gewöhnlich in der Größenordnung von
Zehntelsekunden und überschreitet nur in seltenen Fällen die Sekundenmarke.
Entwicklung
Die ursprüngliche Idee eines Chat-Netzwerkes entstand im BITNET unter dem Namen
Relay Chat. Dieses System wurde vom finnischen Studenten Jarkko Oikarinen, der
an der Fakultät für Informatik der Universität Oulu studierte, im Sommer 1988
auf das Internet übertragen.
Mit der Zeit wuchs das Netzwerk zu einer solchen Größe heran, dass es zum einen
zu technischen Problemen kam und zum anderen zu unübersichtlich und chaotisch
wurde. Daher entstanden ab etwa 1993 weitere unabhängige, kleinere Netzwerke. Im
Sommer 1996 wurde dann auch das ursprüngliche Netzwerk aufgrund von Differenzen
der Betreiber geteilt. Diese Teile findet man heute im IRCNet (meist europäische
Betreiber) und im EFnet (hauptsächlich Betreiber in den USA) wieder. Heute gibt
es tausende voneinander unabhängige Netze. Große Netze mit gleichzeitig mehr als
150.000 verbundenen Clients sind QuakeNet, EFnet, IRCNet oder Undernet, kleinere
heißen DALnet, Freenode, euIRC, Blitzed, GameSurge oder NewNet. In größeren
Netzwerken können aufgrund von Netzwerkproblemen oder -überlastung auch
Netsplits auftreten.
Die Netze unterscheiden sich in regionalen Schwerpunkten, Sprachen, Themen und
angebotenen Services. Das Chatsystem ist textbasiert, erlaubt jedoch über
weitere Kommandos auch den Austausch von Dateien und sonstigen Informationen
über eine Direct-Client-to-Client-Verbindung (DCC) zweier User. Automatisierte
DCC-Downloadmöglichkeiten wie bei einer Tauschbörse werden auch XDCC genannt.
Einstieg
Um am IRC teilnehmen zu können, benötigt man als Chat-Programm einen sogenannten
IRC-Client, mit dem man die Verbindung zu einem IRC-Server aufbaut. Da IRC zu
den etablierteren und älteren Standards im Internet zählt, ist die Auswahl an
IRC-Clients heutzutage groß.
In den meisten IRC-Clients ist bereits eine Auswahl bekannterer IRC-Netzwerke
und deren Server gespeichert, mit denen man sich verbinden kann. Nachdem man mit
einem Server verbunden ist (dieser Schritt wird Connect genannt), besteht die
Möglichkeit, sich die vorhandenen Channels auflisten zu lassen. Der Befehl
lautet /list. Viele Netzwerke unterstützen auch eine Suche mit Wildcards,
beispielsweise /list *berlin*.
Wird ein noch nicht vorhandener Channel betreten, legt der IRC-Server diesen an
und gibt dem Benutzer die Kontrollrechte (Owner) über den Channel. Sobald der
letzte Benutzer einen Channel verlässt, wird der Channel aufgelöst. In vielen
IRC-Netzwerken werden allerdings für Channels mit einer bestimmten Benutzerzahl
Bots angeboten, die den Channel in diesem Fall „bewachen“ und den entsprechenden
Benutzern ihre Rechte zurückgeben, sobald sie den Channel erneut betreten.
Je nach Netzphilosophie können Nicknames und Channelnamen registriert werden.
Die Registrierung ist bei den meisten Netzen sehr einfach. In Channels wie #help,
#hilfe oder #helpdesk (die in praktisch allen Netzen vorhanden sind) kann man
sich erkundigen, wie die Kommandos hierzu im einzelnen lauten und welche Regeln
es neben allgemeinen Verhaltensregeln zu beachten gilt. Auf der Webseite des
jeweiligen Netzes oder in der MOTD, die beim Connect angezeigt wird, findet man
ebenfalls weitergehende Informationen.
Wie generell im Internet üblich sollte man auch im IRC auf seine Sicherheit
achten, da die Annahme von Dateitransfers von unbekannten Nutzern oder
Unachtsamkeit zum Ausspionieren von Passwörtern oder Virenbefall des eigenen
Rechners führen können.
Protokoll
Beim ursprünglichen IRC kommt ein textbasiertes Protokoll basierend auf TCP/IP
zum Einsatz. Da die Protokoll-Definition relativ locker ist, ist es beim IRC
üblich, dass Benutzer direkt in die Kommunikation zwischen ihrem Client und dem
IRC-Server eingreifen, indem sie eigene Nachrichten/Befehle schicken. Ein
Beispiel für einen oft verwendeten Befehl wäre /whois Nickname, der
üblicherweise genau so einfach in einem Textfeld des IRC-Clients eingegeben
werden kann. Der vorangestellte Slash (/) signalisiert dem IRC-Client, dass es
sich um eine Nachricht handelt, die er dem IRC-Server in dieser Form übermitteln
soll. Der Client schickt dem Server also whois Nickname, wobei whois den Befehl
und Nickname den Parameter darstellt.
Aufgrund dieses für Menschen einfachen und intuitiven Formats gibt es sehr viele
Protokoll-Erweiterungen. Viele Befehle wurden ergänzt oder deren Syntax
erweitert. Oftmals sind auch die sog. Channelmodes und Usermodes um neue Modi
erweitert. Die Entwicklung dieser Erweiterungen ist jedoch weitgehend unabhängig
voneinander und unorganisiert in den verschiedenen IRC-Netzwerken abgelaufen. Es
existieren daher keine einheitlichen Standards über diese Erweiterungen. RFC
1459 beschreibt das ursprüngliche Protokoll. Die meisten dort beschriebenen
Mechanismen und Befehle sind bis heute gültig und stellen die Basis für das
IRC-Protokoll dar. Dennoch sind diverse beschriebene Details durch die
Weiterentwicklungen der Server-Software in den einzelnen IRC-Netzwerken nicht
mehr aktuell und auch an keiner Stelle zentral dokumentiert.
Darüber hinaus existieren RFC 2810, RFC 2811, RFC 2812 und RFC 2813. Sie haben
jedoch in der Praxis wenig bis keinerlei Bedeutung, da kein IRC-Server existiert
der sie auch nur annäherungsweise vollständig implementiert. Insbesondere im
Bereich der Kommunikation zwischen Servern innerhalb eines Netzes werden
teilweise auch verkürzte (und dadurch inkompatible) Abwandlungen des Protokolls
eingesetzt.
Sämtliche Kommunikation zwischen Client und Server und den Servern untereinander
wird über Nachrichten (messages) in Befehlsform mit einer Maximallänge von 510
Zeichen abgewickelt. Eine Nachricht besteht aus einem Absender (prefix), einem
Befehl (command) und zusätzlichen Befehlsparametern. Als Antwort auf eine
Nachricht von einem Client kann ein Server eine Antwort-Nachricht (reply)
schicken, die an Stelle des Befehls einen Reply-Code hat. Dabei handelt es sich
um eine dreistellige Zahl mit fest definierter Bedeutung. Zwingender Bestandteil
einer Nachricht ist in allen Fällen jedoch nur die Angabe eines Befehls. Clients
schicken ihre Nachrichten generell ohne Angabe eines Absenders ab, dieser wird
erst beim Server ergänzt, um Falschangaben (Spoofing) zu verhindern. Server
tauschen untereinander nur Nachrichten mit Absenderangabe aus, da Server oftmals
Nachrichten nur durchrouten, und hierzu Ziel und Quelle einer Nachricht nötige
Angaben sind. Ob überhaupt und wieviele Parameter bei einer Nachricht angegeben
werden müssen, richtet sich im Wesentlichen nach dem jeweiligen Befehl.
Das IRC-Protokoll verursacht zwischen den Servern durch die verhältnismäßig
langen Namen der Befehle relativ viel Steuerungsaufwand (Overhead), der wiederum
unnötig viel Datenverkehr zur Folge hat. Um die Kosten zu verringern, wird in
einigen IRC-Netzen ein spezielles Server-zu-Server-Protokoll eingesetzt, das
beispielsweise für die Kommunikation zwischen den Servern ein sogenanntes Token
anstatt des vollständigen Befehls vorsieht (z.B. „P“ anstatt „PRIVMSG“). Beim
Quakenet kommt das Protokoll P10 dabei zum Einsatz.
IRC überträgt Daten unverschlüsselt, verschlüsselte Datenübertragung ist z. B.
mit dem Protokoll SILC möglich. Einige Netzwerke bieten auch eine SSL
verschlüsselte Verbindung an. Clientübergreifend besteht auch die Möglichkeit,
den Chat mit Blowfish zu verschlüsseln, jedoch werden hierzu Plugins benötigt.
zum Chat