Какова максимальная длина имени DNS

Я видел несколько упоминаний о том, что максимальная длина строки имени DNS (имя домена) составляет 253 символа. Википедия, похоже, ссылается на это старое сообщение в блоге:

https://en.wikipedia.org/wiki/Hostname http://blogs.msdn.com/b/oldnewthing/archive/2012/04/12/10292868.aspx

С другой стороны, если я понял RFC, эта статья неверна. Максимальная длина строки имени DNS должна составлять 250 символов ASCII вместо 253 на основе следующей последовательности байтов, которая согласноRFC1035 не более 255 байт:

Для упрощения реализации общая длина доменного имени (то есть октетов меток и октетов длины меток) ограничена 255 октетами или менее.

Согласно RFC1035 доменные имена составлены следующим образом:

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

Это означает, что следующие поля составляют доменные имена:

Длина этикетки (LL): 1 байтНазвание ярлыка (Л.Н.): 63 байта (максимум), поскольку максимальное значение длины метки может быть только 00111111 (так как два первых бита зарезервированы для специальных функций, таких как указатели)Null Label (NL): 1 байт (представляет корневой домен)

Формат всегда должен быть (в отличие от поста в блоге):

LL + Л.Н. [ LL + Л.Н. ...] +NL

Это означает, что максимальная длина должна быть (1 байт = 1 символ = 1 октет):

LL (1) +Л.Н. (63) +LL (1) +Л.Н. (63) +LL (1) +Л.Н. (63)LL (1) +Л.Н. (61) +NL (1) = 255 байт

Так что, если мы вычисляем только строковую часть (Л.Н.s) получаем:

63 + 63 + 63 + 61 = максимум 250 символов.

Я что-то пропустил, или мы должны обновить несколько ссылок из Википедии? Единственная часть, в которой я не уверен, это то, что нулевая метка является частью 255 байтов.

Ответы на вопрос(2)

Ваш ответ на вопрос