Структура заголовка RFC 1035
Я изучаю DNS и хотел бы понять об этой информации, потому что я не мог полностью понять.
Заголовок содержит следующие поля:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Я бы хотел знать, что означают эти цифры сверху.
1 ответ
Числа в верхней части - это просто битовые числа в 16-битном слове, хотя, как и в серии документов RFC, они упорядочены от старшего к младшему, а не (более интуитивно) наоборот.
Так, например, дан массив data
октетов, содержащих этот заголовок, идентификатор будет:
(data[0] << 8) | data[1]
и бит QR будет самым значительным битом data[2]