DNS 是否被视为无状态的?如果是,为什么?例如,知道本地 DNS 一旦了解映射,就会将名称到地址的转换缓存一段时间,这是否使 DNS 成为状态协议?
我是这个领域的新手,尝试寻找一些关于这个主题的可靠读物,但没有找到。所以如果你能提供一些就太好了。
答案1
您混淆了协议和基础设施。
DNS协议是无状态的,因为它确定此名称现在解析为该 IP 地址,并且不会假设这将持续多长时间。更高级别的处理程序负责维护名称解析状态,这就是为什么操作系统可以缓存 DNS 解析并根据 DNS 回复上报告的 TTL 值处理缓存的原因。
DNS基础设施不是可以定义为状态机的东西。它是最终一致性基础设施。出于各种原因,同一个名称可能会在基础设施的不同部分解析为不同的东西。