16.8 Usenet
Das Usenet bietet eine Diskussionsplattform, auf der sich die Anwender über Clients mit der jeweiligen Serversoftware verbinden und über sie Nachrichten austauschen können. Betrachten wir diesen Vorgang im Folgenden etwas genauer.
Hierarchie & Gruppen
Das Usenet kann man sich als hierarchisch organisiertes Forum zu verschiedensten Themen vorstellen. Dabei heißen die Diskussionsforen zu den Themen Newsgroups. Ein Beispiel für eine Newsgroup ist die Gruppe de.comp.lang.c. In diesem Beispiel wird schon sehr gut der hierarchische Aufbau des Usenets deutlich. Der Name de.comp.lang.c lässt sich nämlich wie folgt unterteilen:
- de
Die Newsgroup wird in deutscher Sprache geführt. - comp
Sie befasst sich mit Computern. - lang
Sie befasst sich, genauer gesagt, mit Programmiersprachen. - c
Und zwar befasst sie sich mit der Programmiersprache C.
Namen von Newsgroups beginnen meist mit einer der sieben Primärgruppen oder einer Sprachkennung wie »de«, »it« oder »at«. Bei den sieben Primärgruppen handelt es sich um:
- comp
Computerthemen - misc
Alle Themen, die keiner anderen Primärgruppe zugeordnet werden können - news
Diskussionen über das Usenet - rec
Hobby/Freizeit etc. - sci
Wissenschaft (science) - soc
Soziale Themen - talk
Diskussionen zu allen möglichen und unmöglichen Themen
Posting
Diese Newsgroups sind so lange nicht von Nutzen, bis man beginnt, sie auch wirklich zur Diskussion zu verwenden. Diese Diskussion wird durch Postings umgesetzt. Dabei schreibt jemand einen Artikel (= Posting) und sendet diesen Artikel zum Server (= posten). Der Server speichert das Posting und stellt es allen anderen Mitgliedern des Usenets zur Verfügung. Dabei tauschen die Usenet-Server (wenn sie keine Einzelserver oder privaten Intranet-Server sind) untereinander die aktuellen Postings aus.
Follow-up
Auf solch ein Posting kann nun wieder jemand antworten. Das Posting dieser Antwort bezeichnet man als Follow-up-Posting. Auf jedes Posting und jedes Follow-up können beliebig viele weitere Follow-up-Postings folgen.
Größe des Usenets
Damit Sie sich die Größe des Usenets zumindest ungefähr vorstellen können, möchten wir Ihnen ein Fundstück aus der Wikipedia nicht vorenthalten:
Eine interessante Einrichtung war das DejaNews-Archiv (Deja.com), das es sich zum Ziel gesetzt hatte, die News-Beiträge dauerhaft zu archivieren. Das Archiv von Deja.com reichte bis etwa 1995 zurück. Nach dem Konkurs von Deja.com wurde dessen Datenbestand Anfang 2001 von Google aufgekauft und in das eigene GoogleGroups integriert. Ende 2001 wurden von Google ca. 700 Millionen weitere Artikel aus diversen ursprünglich privaten Archivierungen in das Archiv integriert, die teilweise bis in die Anfangszeit des Usenet zurück reichen, für die Zeit vor 1991 allerdings mangels vollständiger Archive etwas lückenhaft bleiben müssen. (...) Heutzutage kann niemand sagen, wie viele Newsserver und Newsgroups es weltweit gibt. Schätzungen gehen von Zahlen zwischen 50.000 und 100.000 aus. [Fn. Quelle: http://de.wikipedia.org/wiki/Usenet, irgendwann im Verlauf der Versionsgeschichte ...]
16.8.1 Das Protokoll
Beim Usenet handelt es sich um eine recht alte Form der Kommunikation. Bereits vor vielen Jahren vernetzte man Usenet-Server mit einigen Clients und ließ sie über das zugehörige NNTP-Protokoll kommunizieren. NNTP, das Network News Transfer Protocol, wurde zum ersten Mal 1986 als Standard verabschiedet, das Usenet selbst wurde jedoch bereits 1979 via UUCP zwischen zwei Unix-Systemen realisiert.
Beim NNTP-Protokoll handelt es sich um ein Plaintext-Protokoll, das relativ mühsam zu verarbeiten ist. Dafür kann man notfalls aber auch ohne Client, nämlich direkt mit Telnet, Artikel lesen und posten. Da NNTP-Befehle jedoch nicht case sensitive sind und es oft mehrere Möglichkeiten gibt, diese Befehle (und auch Header-Zeilen) zu senden, müssen Usenet-Server diverse langsame und aufwendige Parsing-Techniken für jeden Befehl und jedes Posting anwenden.
Wir werden hier im Folgenden, da es sich ja nicht um ein TCP/IP-Buch, sondern um ein Linux-Buch handelt, nur die essentiellen NNTP-Befehle aus RFC 977 beschreiben und die NNTP-Extensions aus RFC 2980 außen vor lassen.
Grundlegendes
NNTP funktioniert ähnlich wie die Protokolle FTP und HTTP: Der Client sendet eine Plaintext-Anfrage, und der Server antwortet mit einer Plaintext-Response, die einen Response-Code in Form einer Zahl enthält. Diese Zahl teilt dem Client mit, ob die Anfrage erfolgreich war oder ob es dabei Probleme gab.
Der Fehlercode 411 gibt beispielsweise an, dass eine Newsgroup nicht existiert, während der Code 211 die Bestätigung für das Wechseln zur jeweiligen Newsgroup angibt.
Listing 16.18 Ausschnitt aus einer NNTP-Session
group de.comp.lang.c
211 5129 66442 71881 de.comp.lang.c
group die.gibts.nicht
411 No such group die.gibts.nicht
post
340 send article to be posted. End with <CR-LF>.<CR-LF>
...
quit
205 bye, bye.
Wichtige Befehle
Wir wollen diesen Abschnitt mit einer Übersicht über die wichtigsten NNTP-Be- fehle abschließen. Zur Administration von Usenet-Servern und um Probleme mit dem Client zu verstehen, kann es nämlich sehr hilfreich sein, zumindest diese Kommandos zu kennen. [Fn. Diese Kommandos sind nicht case sensitive, wir haben sie nur der Einheitlichkeit halber alle großgeschrieben. Statt LIS wäre also auch List, list oder LisT etc. möglich.]
- LIST
Der Server sendet die Liste der Newsgroups inklusive der Kennungen von deren erstem und letztem verfügbarem Artikel sowie dem Posting-Flag, das besagt, ob das Posten in einer Newsgroup erlaubt ist oder nicht. - GROUP <Gruppe>
Selektiert eine Newsgroup. - ARTICLE <Message-ID | Nummer>
Der Server sendet den Header und den Body des mit der angegebenen Message-ID bzw. newsgroup-internen Nummer angegebenen Artikels an den Client. - HELP
Der Server sendet eine Befehlsliste an den Client, die in der Regel einige Erklärungen umfasst. - POST
Postet einen neuen Artikel. Dabei muss der Header mindestens aus den Zeilen Absender (From:), Betreff (Subject:) und Zielnewsgroup(s) (Newsgroups:) bestehen und einen Body aufweisen, der mit einer Zeile abgeschlossen wird, in der nur ein Punkt steht. [Fn. Genauer gesagt sendet der Client nach jeder Zeile zunächst die Zeichenkombination CR-LF (Return und Newline), also <CR-LF>.<CR-LF> zum Abschluss des Postings.] - QUIT
Beendet die Verbindung.
16.8.2 Clients
Unter Linux stehen einem eine ganze Menge von Clients zur Verfügung. Dabei gibt es Text-Clients für die Konsole, grafische Clients für die Konsole (meist Cliets, die die ncurses-Bibliothek verwenden) und Clients für die grafische Oberfläche X11, die auf diversen Libraries basieren. Wir werden Ihnen eine Auswahl der ausgereiftesten Clients vorstellen und die jeweiligen Vorzüge erläutern. Welchen dieser Clients Sie letztendlich verwenden, müssen Sie selbst entscheiden.
slrn
slrn ist ein ncurses-basierter Usenet-Client für die Konsole. Der Vorteil des Programms liegt daher primär darin, dass es auch auf Systemen ohne grafische Oberfläche und natürlich im Netzwerk, etwa via Telnet oder SSH, verwendet werden kann. slrn ist durch Makros erweiterbar und neben Linux auch für Unix, Mac OS X, Windows und einige weitere Systeme verfügbar. Das Programm verdankt seine Beliebtheit primär der Tatsache, dass es sich in ständiger Weiterentwicklung befindet und sein Quellcode offen ist.
Abbildung 16.3 Der Konsolen-NNTP-Client slrn
Die Konfiguration des kleinen, aber mächtigen Clients erfolgt über das Environment und eine Text-Konfigurationsdatei. Damit lassen sich zum Beispiel die Farben anpassen. Diese Konfigurationsdatei kann man dann, etwa mit Secure-Copy (scp) auf alle weiteren Workstations übertragen, die man nutzt. So muss man slrn nur einmal konfigurieren.
Sinnvoll ist besonders die Möglichkeit zum Editieren von Postings und Follow-ups mit einem externen Editor. So kann man slrn beispielsweise den vim aufrufen lassen, um Postings darin zu schreiben. Übrigens unterstützt slrn auch GnuPG.
KNode
Als vorletzten, ebenfalls sehr empfehlenswerten Client dieser Runde möchten wir Ihnen KNode (siehe Abbildung knode) vorstellen.
Abbildung 16.4 Der Client Knode
KNode ist im Gegensatz zu Sylpheed ein reiner Usenet-Client. Er unterstützt auch mehrere Accounts und ist hervorragend konfigurierbar. Als Bestandteil des KDE-Projekts basiert er auf den Qt-Bibliotheken. Auch dieses Programm kann viele Bilddateien direkt im integrierten Betrachter anzeigen und stellt einen Filtermechanismus ähnlich dem von Sylpheed zur Verfügung.
Sylpheed(-Claws)
Sylpheed ist ein GTK+-basierter Mail- und Usenet-Client. Er unterstützt diverse Protokolle, etwa IMAP, POP3 oder NNTP, kann mehrere Accounts gleichzeitig handhaben, unterstützt MIME-Anhänge, hat einen integrierten, konfigurierbaren Nachrichtenfilter und vieles andere mehr. Wir werden uns hier jedoch nur mit den Usenet-Features auseinandersetzen.
Auch Sylpheed unterstützt GnuPG, zudem auch noch das von slrn bekannte Nutzen eines externen Editors – was unserer Meinung nach jedoch nicht notwendig ist, da der interne Editor alles kann, was man zum Posten braucht.
Sylpheed unterstützt keine HTML-Mails und wandelt eingehende HTML-Mails automatisch in Text-Mails um, wobei die originale HTML-Mail als Anhang über einen externen Browser einsehbar ist. Für verschiedene Typen von Anhängen können externe Viewer konfiguriert werden; die meisten Arten angehängter Bilddateien kann Sylpheed jedoch direkt anzeigen. Zudem können Templates verwendet, Postings und Mails gedruckt sowie Absender im XML-basierten Adressbuch gespeichert werden.
Sylpheed-Claws
Es existiert von Sylpheed noch eine zweite Variante namens Sylpheed-Claws. Sie bietet diverse zusätzliche Features wie etwa eine Rechtschreibprüfung durch das Programm aspell, Themes und Plugins. Zu den Plugins zählen unter anderem ein Anti-Virus-Plugin (Clam AntiVirus), ein Image-Viewer sowie der Spam-Filter SpamAssassin.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.