Next: Multicastsender, mcxmit
Up: Directory Service, yawgmoth
Previous: Kommunikation zwischen yawgmoth und
Nachfolgend wird das Datenformat der Ankündigungspakete vorgestellt.
Alle Einträge sind in Netzwerkdarstellung (siehe unten unter 4.4.1
auf Seite
). Einträge, deren
Länge nicht im Voraus bestimmt werden können, werden durch
Füllbytes auf die nächste 4-Bytes Grenze aufgefüllt, um so die
Verarbeitung zu erleichtern.
Abbildung 25: Datenformat der Ankündigungspakete
Hier folgt nun die Erklärung der einzelnen Felder:
- Magic: Die beiden Bytes 0xabba (16 Bit)
- Vers: Protokollversion (4 Bit)
- 1
- Für IPv4
- 11
- Für IPv6
- Rev: Protokollrevision - zur Zeit: 1 (4 Bit)
- Offset: Offset der NG-Zeilen (s.u.) vom Paketstart (8 Bit)
- Länge: Gesamtlänge des Pakets beim Versand. (32 Bit)
- rmd160: RIPEMD-160 Message Digest über den
Rest des Paketes. (160 Bit)
- Sender-ID: Identifikation des Senders. Die Sender-ID ist
normalerweise der Hostname des Absenderrechners mit angehängter
Domain (also z.B. snert.pilhuhn.de). Dies kann aber auch der Name
sein, den der Host in den Path: Header setzt. Bei diesem Eintrag
wird nicht nach Groß-/Kleinschreibung unterschieden.
- Pad Füllbytes zum Auffüllen der Sender-ID auf die nächste
4-Byte Grenze
- NG-Zeilen:
Dies sind die Zeilen, in denen die Zuordnungen von
Multicastgruppe zu Newsgruppe bzw. -hierarchie festgelegt sind. Diese Zeilen
werden so oft wiederholt, bis alle Gruppen angekündigt sind.
- Mc-Gruppe: Die Multicastgruppe als Zahl (32 Bit bei IPv4 und 128
Bit bei IPv6)
- Port: Der UDP Port , der für diese Gruppe genutzt werden soll
(16 Bit).
- TTL: Die Reichweite der Multicastpakete für
diese Gruppe.
- Newsgruppe: Der Name der Newsgruppe oder -hierarchie, die
verteilt wird. Dies kann auch eine Abkürzung (z.B. cng für
die Hierarchien comp.*,news.* und gnu.*) oder sonst eindeutige
Bezeichnung sein (z.B. big8 für die als Big-8 bezeichneten
Hierarchien
).
- Pad: Füllbytes zum Auffüllen einer NG-Zeile auf die nächste
4-Bytes Grenze.
gestalten.
Die Füllbytes der Felder auf die nächste 4-Bytes Grenze sind notwendig,
um die Bearbeitung effizienter zu gestalten bzw. überhaupt zu
ermöglichen. Manche Prozessoren können keine Datenstrukturen, die
größer als ein Byte sind, von einer ungeraden oder auf keine
4-Bytes Grenze ausgerichteten Adresse laden.
Die Grundstruktur des Ankündigungspaketes ist in der Headerdatei
_select.h in der C-Struktur struct ypack zu finden; die
Struktur der NG-Zeilen befindet sich in struct ngline in derselben Datei.
Next: Multicastsender, mcxmit
Up: Directory Service, yawgmoth
Previous: Kommunikation zwischen yawgmoth und
Heiko W.Rupp
12/1/1997