相关疑难解决方法(0)

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,域名的组成如下:

域名表示为标签序列,其中每个标签由长度八位字节后跟该八位字节数组成.域名以根的空标签的零长度八位字节终止.注意,该字段可以是奇数个八位字节; 没有使用填充.

这意味着以下字段构成域名:

  1. 标签长度(LL):1个字节
  2. 标签名称(LN):63字节(最大值),因为标签长度最大值只能是00111111(因为两个第一位是为指针等特殊功能保留的)
  3. 空标签(NL):1个字节(表示根域)

格式应始终是(与博客文章不同):

LL + LN [ LL + LN ...] + NL

这意味着最大长度应为(1字节= 1个字符= 1个八位字节):

LL(1)+ LN(63)+ LL(1)+ LN(63)+ LL(1)+ LN(63)LL(1)+ LN(61)+ NL(1)= 255字节

因此,如果我们仅计算字符串部分(LN s),我们得到:

63 + 63 + 63 + 61 =最多250个字符.

我错过了什么,或者我们应该更新一些维基百科的参考文献?我不确定的唯一部分是关于Null标签是255字节的一部分.

dns hostname rfc rfc1035

25
推荐指数
2
解决办法
3万
查看次数

标签 统计

dns ×1

hostname ×1

rfc ×1

rfc1035 ×1