35、深入探索mDNS与DNS - SD:原理、应用与实践

深入探索mDNS与DNS - SD:原理、应用与实践

1. mDNS响应优化与消息格式

在网络通信中,为了提高效率,响应者倾向于将尽可能多的答案聚合到单个请求中。这样做可以最大程度地减少由于DNS和底层报头带来的开销。而且,单个多播mDNS消息可以包含针对多个查询者问题的答案。一般来说,响应者可能会将响应的传输延迟最多500毫秒,以收集足够的问题,确保数据包中包含多个答案。当然,这种聚合的代价是会增加500毫秒的延迟。

另外,当响应包含已知答案的请求时,如果相应资源记录(RR)的生命周期小于TTL值的一半,响应者可能会重新发送带有更新TTL字段的答案。如果一个设备即将发送一个答案,并且发现另一个设备生成的多播响应中已经包含了相同的答案,那么如果该答案的TTL字段符合其RR的生命周期,该设备可以避免发送响应。

mDNS消息报头遵循与图中所示DNS消息相同的格式。在mDNS的特定情况下,所有响应,包括来自物联网设备的主动响应,都必须被处理。通常,无论消息标识字段和问题部分的内容如何,都会对所有传入的响应进行处理。实际上,在mDNS下,即使设备没有对这些RR有主动兴趣的客户端,也可以缓存所有响应的内容。当然,mDNS客户端在缓存这些响应时必须遵循RR的生命周期。

在mDNS的上下文中,字段的使用有一些特殊要求:
- 消息标识字段:对于多播mDNS消息,无论消息是请求还是响应,该字段始终为0。只有在由QU请求触发的传统单播响应的情况下,才会使用该字段来跟踪事务。
- OPCODE:传输时始终设置为查询,响应者会忽略任何其他值。
- AA位:传输时必须未设置,接收时忽略。
- TC位:如果该位被设置,响应者必须至少等待500毫秒以

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值