Часто, когда я читаю документацию «Запрос для комментариев», я всегда вижу раздел формата пакета для протокола, описанного ниже. У меня вопрос: что представляют цифры и различные символы (+- |)?

  A summary of the RADIUS data format is shown below.  The fields are
   transmitted from left to right.

     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      |  Identifier   |            Length             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                         Authenticator                         |
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Attributes ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-

Спасибо

1 ответ1

3

Числа являются номерами битов, начиная с самого старшего бита. Может показаться нелогичным, что бит 0 является наиболее значимым битом, но это первый передаваемый бит. Порядок байтов в сети (и битов) является старшим (наиболее значимым первым).

Другие символы должны показывать отдельные биты, своего рода неполная сетка.

Есть RFC, которые объясняют это. Например, RFC 1700, присвоенные номера:

Обозначения данных

В документации интернет-протоколов существует соглашение о том, чтобы выражать числа в десятичном виде и отображать данные в «старшем порядке» [ COHEN ]. То есть поля описываются слева направо, с наиболее значимым октетом слева и наименее значимым октетом справа.

Порядок передачи заголовка и данных, описанных в этом документе, разрешен до уровня октетов. Всякий раз, когда на диаграмме показана группа октетов, порядок передачи этих октетов является нормальным порядком, в котором они читаются на английском языке. Например, на следующей диаграмме октеты передаются в порядке их нумерации.

 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       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Порядок передачи байтов

Всякий раз, когда октет представляет числовую величину, самый левый бит на диаграмме является старшим или старшим битом. То есть бит с меткой 0 является наиболее значимым битом. Например, следующая диаграмма представляет значение 170 (десятичное).

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

Значение битов

Аналогичным образом, всякий раз, когда многооктетное поле представляет числовую величину, самый левый бит всего поля является старшим значащим битом. Когда передается многооктетное количество, самый старший октет передается первым.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .