Next: Signieren der Artikel
Up: Multicastsender, mcxmit
Previous: Multicastsender, mcxmit
Nachfolgend wird das Datenformat der Pakete vorgestellt, die die
Artikel transportieren sollen.
Alle Einträge sind in Netzwerk Byteorder (s.u.).
Abbildung 26: Paketformat der Artikeldaten
- Magic: die feste Zeichenkette ``McNt'' (32 Bit)
- Ver: Protokollversion - aktuell: 1 (4 Bit)
- Rev: Protokollrevision - aktuell: 1 (4 bit)
- Comp: Gibt an, welche Kompression benutzt wird; aktuell sind die
beiden nachfolgenden Werte definiert. (4 Bit)
- 0 Artikel ist unkomprimiert
- 1 Artikel ist mit zlib [LD96,Deu96a,Deu96b]
komprimiert.
- Crypt: Gibt an, ob die Artikel verschlüsselt wurden. Bisher ist
noch keine Verschlüsselungsmethode festgelegt worden. (4 Bit)
- Reserviert: Diese Bits sind reserviert für zukünftige
Protokollerweiterungen (8 Bit)
- Offset: Gibt an, wo im Paket die Artikeldaten (Feld ``Daten''
s.u.) beginnen (8 Bit)
- Original Länge: Originallänge des Artikels (32 Bit)
- Länge wie gesendet: Gesamtlänge des Pakets, wie es
versendet wird. (32 Bit)
- Sender-ID: Eine Identifikation des Absenders. Wird genutzt,
damit der Empfänger den passenden Schlüssel für die Überprüfung
der digitalen Signatur benutzen kann.
Die Sender-ID ist, wie bei , 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.
(NULL ([IMAGE ]0) terminierte Zeichenkette)
- Message-id:
Message-ID des Artikel. (NULL ([IMAGE ]0) terminierte
Zeichenkette)
- Daten: Die eigentlichen, digital signierten Nutzdaten nach eventueller
Kompression und Verschlüsselung. Sollen die Daten komprimiert und
verschlüsselt werden, ist zuerst die Kompression anzuwenden, um
die Menge der Daten, die verschlüsselt werden zu verringern und
die Geschwindigkeit der Artikelverarbeitung zu erhöhen. Weder
, noch unterstützen aktuell die
Verschlüsselung von Artikeln.
Die Grundstruktur des Artikelpaketes ist in der Headerdatei
_packet.h in der C-Struktur struct mcpack zu finden.
Dadurch, daß die interne Darstellung von Zahlen sich auf
verschiedenen Prozessorarchitekturen unterscheiden,
Little-EndianBig-Endian
Network Byte Order ist es notwendig die Zahlendarstellung
vor dem Versand bzw. nach dem Erhalt der Daten zu wandeln. Im Internet
ist es Standard, Zahlen in der sog. Network Byte Order
über das Netz zu transportieren. Network Byte Order
entspricht dabei der Zahlendarstellung auf sog. Little-Endian
Maschinen. Hierbei wird das niederwertige Byte eines Wortes oder
Langwortes zuerst transportiert. Außerdem wird hierbei auch das
niederwertigste Bit eines Bytes zuerst transportiert.
Abbildung 27: Darstellung eines 16-Bit Wortes bei Big- und Little- Endian Architekturen
Da die Reihenfolge der Bits innerhalb eines Bytes bei Big- und Little-
Endian
unterschiedlich sind, muß hierauf in der internen Darstellung
Rücksicht genommen werden, wie dies der folgend Ausschnitt aus der
Struktur struct mcpack zeigt:
Abbildung 33:
Ausschnitt aus der Struktur mcpack
[IMAGE ] |
Die Umwandlung der internen Zahlendarstellung von Worten und
Langworten in die Netzwerkdarstellung erfolgt mittels der folgenden
Befehle
:
|
Worte |
Langworte |
von Host an Netz |
htons() |
htonl() |
von Netz an Host |
ntohs() |
ntohs() |
Beispiele für Little-Endian Architekturen sind Intel x86 und Digital
Vax; für Big-Endian sind dies Motorola 680x0, IBM AIX-Maschinen
(RS6000 und PowerPC) und Sun Sparc.
Next: Signieren der Artikel
Up: Multicastsender, mcxmit
Previous: Multicastsender, mcxmit
Heiko W.Rupp
12/1/1997