ZBLOG

mDNS response的时候,可以回复一个ptr,然后再回复txt, 还是必须放到一个包中回复

在 mDNS 中,回复的 PTR 记录和 TXT 记录通常应该放在同一个响应包中。这是因为 mDNS 使用的是基于 UDP 的协议,而 UDP 是无连接的,这意味着发送者无法保证后续的请求和响应会按照特定顺序到达。

理由

  1. 原子性

    • 将相关的 DNS 响应(如 PTR 和 TXT)放在同一数据包中,确保客户端能够同时接收到所有与查询相关的信息。
    • 如果分开回复,可能会导致信息不一致或丢失。例如,客户端在接收到 PTR 后可能会认为服务已不可用,如果随后才收到 TXT 响应。
  2. 效率

    • 在同一个包内返回所有信息减少了网络延迟。只有一次网络往返就可以获得完整的信息,而不是分多次请求和响应。
  3. 实现简化

    • 大多数 mDNS 实现都假设这些记录将作为一个整体被处理,将它们组合在一起使得解析变得简单明了。

正确的实践

因此,当你构建 mDNS 响应时,最佳实践是将 PTR 和 TXT 记录放入同一回应数据包中。例如:

- PTR Record: _http._tcp.local. -> device.local.
- TXT Record: device.local. -> { "path=/service", "version=1.0" }

这样做既符合规范,又能保证传递给客户端的信息完整且及时。如果需要返回多个服务实例,可以在同一数据包中返回多个 PTR 和对应的 TXT 记录。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=5957

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?