Wie kann ich Paketformate in RFCs lesen und interpretieren (Request for Comments)?

501
nd510

Häufig sehe ich beim Lesen der Request-for-Comments-Dokumentation immer den Abschnitt für das Paketformat für ein Protokoll, das wie im Folgenden beschrieben ist. Meine Frage ist, was die Zahlen und die verschiedenen Symbole (+ - |) darstellen.

 Eine Zusammenfassung des RADIUS-Datenformats ist unten dargestellt. Die Felder sind von links nach rechts übertragen.  0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + | Code | Kennung | Länge | - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + | | | Authenticator | | | | | - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + | Attribute ... + - + - + - + - + - + - + - + - + - + - + - + - 

Vielen Dank

0

1 Antwort auf die Frage

3
Ron Maupin

Die Zahlen sind Bitzahlen, beginnend mit dem höchstwertigen Bit. Es mag kontraintuitiv erscheinen, dass Bit 0das signifikanteste Bit ist, aber es ist das erste übertragene Bit. Die Reihenfolge des Netzwerkbytes (und Bits) ist Big-Endian (am wichtigsten zuerst).

Die anderen Symbole zeigen die einzelnen Bits an, eine Art unvollständiges Raster.

Es gibt RFCs, die dies erklären. Zum Beispiel RFC 1700, ASSIGNED NUMBERS :

Daten Notizen

Die Konvention in der Dokumentation von Internet-Protokollen besteht darin, Zahlen in Dezimalzahlen auszudrücken und Bilddaten in "Big-Endian-Reihenfolge" [ COHEN ] darzustellen . Das heißt, Felder werden von links nach rechts beschrieben, wobei das höchstwertige Oktett links und das niedrigstwertige Oktett rechts ist.

Die Reihenfolge der Übertragung des Headers und der Daten, die in diesem Dokument beschrieben werden, wird auf das Oktettniveau aufgelöst. Wenn ein Diagramm eine Gruppe von Oktetten zeigt, ist die Reihenfolge der Übertragung dieser Oktette die normale Reihenfolge, in der sie in Englisch gelesen werden. Im folgenden Diagramm werden die Oktette beispielsweise in der Reihenfolge übertragen, in der sie nummeriert sind.

 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | 2 | 3 | 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 5 | 6 | 7 | 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 9 | 10 | 11 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

Übertragungsreihenfolge von Bytes

Immer, wenn ein Oktett eine numerische Größe darstellt, ist das am weitesten links stehende Bit im Diagramm das höherwertige oder höchstwertige Bit. Das heißt, das mit 0 gekennzeichnete Bit ist das höchstwertige Bit. Das folgende Diagramm stellt beispielsweise den Wert 170 (dezimal) dar.

 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |1 0 1 0 1 0 1 0| +-+-+-+-+-+-+-+-+ 

Bedeutung der Bits

In ähnlicher Weise ist immer dann, wenn ein Multi-Oktett-Feld eine numerische Menge darstellt, das am weitesten links stehende Bit des gesamten Feldes das höchstwertige Bit. Wenn eine Multi-Oktett-Menge übertragen wird, wird zuerst das höchstwertige Oktett übertragen.