Internet Relay Chat

Aus BoyWiki
Version vom 12. Juni 2009, 08:46 Uhr von Maluquinho (Diskussion | Beiträge) (Die Seite wurde neu angelegt: '''Internet Relay Chat''', kurz '''IRC''', bezeichnet ein rein textbasiertes Chat-System. Es ermöglicht Gesprächsrunden mit einer beliebigen Anzahl von Teilnehmer...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Internet Relay Chat, kurz IRC, bezeichnet ein rein textbasiertes Chat-System. Es ermöglicht Gesprächsrunden mit einer beliebigen Anzahl von Teilnehmern in so genannten Channels (Gesprächskanälen), aber auch Gespräche zwischen zwei Teilnehmern (Query). Neue Channel können üblicherweise jederzeit von jedem Teilnehmer frei eröffnet werden, ebenso kann man gleichzeitig an mehreren Channels teilnehmen.

Zur Teilnahme wird ein spezielles Chat-Programm, der IRC-Client, verwendet; es existiert alleinstehende Software sowie beispielsweise in Browsern integrierte Funktionalitäten (z. B. Opera oder Mozilla/Seamonkey).

IRC ist, verglichen mit 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 mehrere tausend Personen gleichzeitig teilnehmen können. 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 (meistens 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 50.000 verbundenen Clients sind QuakeNet, EFnet, IRCNet, Undernet und Freenode, kleinere heißen DALnet, euIRC, FurNet oder GameSurge. In allen Netzwerken können aufgrund von Netzwerkproblemen oder -überlastung auch Netsplits auftreten.

Die Netze unterscheiden sich in regionalen Schwerpunkten, Sprachen, Themen und angebotenen Services. Auch die Akzeptanz oder Toleranz gegenüber Sex und Kanälen für die Verteilung von Raubkopien spielt zunehmend eine Rolle. 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 werden auch XDCC genannt.

Einstieg

Um am IRC teilnehmen zu können, benötigt man als Chat-Programm einen so genannten 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 (Operator) ü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 Bots bzw. Services angeboten, die den Channel in diesem Fall „verwalten“ und den entsprechenden Benutzern ihre Rechte zurückgeben, sobald sie den Channel erneut betreten, sowie auch ein feineres Management des Channels erlauben. In vielen Netzwerken werden solche Services nicht angeboten, da dort kein prinzipielles Recht für einen Channel oder auch für einen Nicknamen zugestanden wird. Hier ist der „Gründer“ des Channels selbst dafür verantwortlich sich seine Rechte zu erhalten. Diese Tatsache sorgt mitunter für virtuelle Kriege, welche mit legalen wie auch illegalen Mitteln ausgetragen werden, um Kontrolle über einen Channel zu erlangen (Takeover).

Je nach Netzphilosophie können Nicknamen und Channelnamen registriert werden. Die Registrierung ist bei den meisten Netzen sehr einfach. In Channels wie #irchelp, #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, auf TCP/IP basierendes, textorientiertes Protokoll 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 so genannten 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 diese im Alleingang von Christophe Kalt, dem Programmierer der IRCnet Version 2.9, geschrieben wurden. 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. Auch hier weicht jedoch mangels Absprache die Bedeutung von Netzwerk zu Netzwerk ab. 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 so genanntes Token anstatt des vollständigen Befehls vorsieht (zum Beispiel „P“ anstatt „PRIVMSG“).

IRC überträgt Daten unverschlüsselt, verschlüsselte Datenübertragung ist zum Beispiel 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.

Da kein Zeichensatz festgelegt ist (wie es z. B. bei XMPP der Fall ist) und es auch keine Möglichkeit gibt, den verwendeten auf Protokollebene anzugeben, kommt es immer wieder zu falsch oder nicht dargestellten Zeichen, nämlich dann, wenn Sender und Empfänger der Nachrichten verschiedene Zeichensätze benutzen. Einige Clients versuchen, den von den Sendern benutzten Zeichensatz zu raten, dies kann aber prinzipbedingt nicht zuverlässig funktionieren, da bestimmte Bytefolgen in verschiedenen Zeichensätzen gültig sind, aber zu unterschiedlichen Interpretationen führen. In einigen Chaträumen wird vorgegeben, welcher Zeichensatz zu benutzen ist, allerdings ist auch dies keine Lösung, da sich die Vorgaben in den Räumen unterscheiden können und die Clients den benutzen Zeichensatz meist nur global ändern lassen.

Siehe auch

Weblinks


WIKIPEDIA Hinweis: Dieser Artikel basiert auf einem Text, der aus der freien Enzyklopädie Wikipedia übernommen wurde und steht unter der GNU-Lizenz für freie Dokumentation. Übernommen wurde folgender Wikipedia-Artikel: Internet_Relay_Chat (Fassung vom 09.06.2009).