Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Newsgroups saugen Newsgroups Jeder Rechner ein eigener »

Unterabschnitte
  • Clientanfragen
  • Serverantworten
  • Das Senden von Artikeln
  • Threadverfolgung

NNTP Protokollbeschreibung

Das NNTP (Network News Transfer Protocol) ist durch RFC 977 definiert. Die folgende Beschreibung bietet einen Blick hinter die Kulissen eines Internetprotokolls, das durchaus typisch ist. Diese Informationen sind in erster Linie für Entwickler von Programmen interessant, die sich im Protokollumfeld bewegen. Aber es ist auch für den Administrator hilfreich zu wissen, wie die Kommunikation abläuft, um beispielsweise mit telnet das Fehlverhalten von Protokollen herausfinden zu können.

Das Protokoll wird durch den Austausch von Kommandos und Antworten in Textform bestimmt. Die rein textuelle Übermittlung der Daten und Kommandos erspart die typischen Netzprobleme mit Binärdaten wie die unterschiedliche interne Zahlendarstellung verschiedener Maschinen.

Ein Newsserver ist im Gegensatz zu einem Webserver nicht statuslos. Das bedeutet, er kann aufeinander aufbauende Anfragen in einen Zusammenhang stellen. Darum ist eine Anmeldung und auch eine Abmeldung erforderlich. Es wird ein so genannter Messagepointer geführt, mit dem sich der Server die zuletzt angesprochenen Nachrichten merkt.

Der Client muss die Kommunikation aufnehmen und sollte in der Lage sein, alle denkbaren Antworten des Servers zumindest soweit zu bearbeiten, dass die Kommunikation nicht blockiert.

Clientanfragen

Vom Client werden die Anfragen an den Server gesandt. Die wichtigsten Kommandos des Clients sind hier aufgeführt. Sie reichen bereits aus, einen einfachen Newsreader zu schreiben.

  • [LIST]
    Der Client fordert eine Liste der Gruppen an. Das Format entspricht dem der Datei active. Auf die Aufforderung LIST sendet der Server beispielsweise folgende Ausgabe:

    215
    control 0000000000 0000000000 y
    control.cancel 0000000000 0000000000 y
    junk 0000000000 0000000000 y
    .
    

  • [NEWGROUPS Datum Uhrzeit]
    Es werden die Gruppen angefordert, die seit dem angegebenen Zeitpunkt hinzugekommen sind. Das Datum ist im Format YYMMDD. Da das Jahr zweistellig ist, gilt das Jahrhundert, das näher an der Jahreszahl ist. Die Uhrzeit hat das Format HHMMSS.

  • [NEWNEWS Gruppenname Datum Uhrzeit]
    Auf diese Anforderung wird eine Liste von Artikelkennungen gesendet. Jede Kennung belegt eine Zeile, die mit Carriage Return und Line Feed abgeschlossen wird. Das Ende der Liste wird durch einen einzelnen Punkt in einer Zeile signalisiert.

  • [GROUP Gruppenname]
    Der Client wechselt zu dieser Gruppe. Als Antwort erhält der Client eine Fehlernummer (siehe unten). Dann folgt die Anzahl der Artikel, dann die kleinste Artikelnummer und schließlich die höchste Artikelnummer. Die Anzahl der Artikel ergibt sich nicht einfach der Differenz der Artikelnummern, weil diese durchaus Lücken enthalten können. Zuletzt erscheint zur Bestätigung noch einmal der Gruppenname.

    Üblicherweise wird der Client anschließend die niedrigste Nummer als Argument für das Kommando ARTICLE oder STAT verwendet.

  • [ARTICLE Artikelkennung]
    Als Antwort auf diesen Anforderung wird der Artikelkopf (wie bei HEADER), eine leere Zeile und dann der Artikeltext (wie bei BODY) angezeigt.

  • [HEAD]
    Zeigt den Kopf der aktuellen Nachricht. Die Übertragung endet mit einer Zeile, die nur einen einzelnen Punkt enthält.

  • [BODY]
    Zeigt den Inhalt der aktuellen Nachricht. Die Übertragung endet mit einer Zeile, die nur einen einzelnen Punkt enthält.

  • [STAT Artikelkennung]
    Wie ARTICLE, allerdings wird der Artikel nicht übertragen. Es wird also nur auf die angegebene Artikelkennung positioniert.

  • [NEXT]
    Fordert den nächsten Artikel an. Als Ergebnis gibt es eine Fehlernummer (siehe unten) gefolgt von der Artikelkennung. Um den Artikel zu betrachten, muss HEAD oder BODY verwendet werden.

  • [QUIT]
    Beendet die Sitzung.

Serverantworten

Auf jede Anfrage wird der Server zun"achst mit einem dreistelligen Zahlencode reagieren. Erst hinter dieser Zahl steht die eigentliche Antwort. Dabei bedeutet:

[Fehlercode]L|L Zahlencode & Bedeutung
1xx & Informativ
2xx & Kommando ok
3xx & Kommando soweit ok, sende den Rest!
4xx & Kommando war korrekt, konnte aber nicht ausgef"uhrt werden.
5xx & Kommando unbekannt oder Fehler

Die n"achste Stelle sagt etwas "uber die Kategorie:

[Fehlerkategorie]L|L Zahlencode & Bedeutung
x0x & Verbindung, Setup und sonstige Nachrichten
x1x & Newsgroupauswahl
x2x & Artikelauswahl
x3x & Distributionsfunktionen
x4x & Senden von Artikeln
x8x & Erweiterungen, die nicht standardisiert sind.
x9x & Debug-Ausgaben

Das Senden von Artikeln

Nach dem Senden von POST wird der Server zun"achst mitteilen, ob ihm das Senden behagt. Der Antwort-Code kann lauten:

[Fehlerursache]L|L Zahlencode & Bedeutung
240 & Der gesendete Artikel ist ok
340 & Sende Artikel. Endekennung ist eine Zeile mit nur einem Punkt.
440 & Posten nicht erlaubt
441 & Posten fehlgeschlagen

Anschließend sendet der Client Zeile für Zeile seine Nachricht, die der RFC 850 f"ur das Format einer Nachricht entsprechen muss. Speziell f"ur die Usenet News Artikel gilt die RFC 1036.

Threadverfolgung

Threads sind Diskussionsb"aume, die durch Antworten auf Artikel entstehen. Im Artikel wird durch Belegen des Feldes References: die Message-ID abgelegt, auf die der Artikel sich bezieht. Es gibt also R"uckw"arts- aber keine Vorw"artsbez"uge.



« Newsgroups saugen | Newsgroups | Jeder Rechner ein eigener »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de