【发布时间】:2011-01-23 10:59:41
【问题描述】:
我看到lwIP 有一些 AutoIP(又名 IPv4LL,又名 RFC 3927)代码,但我不知道它是否在 Zeroconf 堆栈中执行更高级别的操作,即 mDNS 和 DNS-SD(与RFC 2782)。
那么,lwIP 是否支持 DNS-SD 服务发现?如果没有,从 Avahi 这样的项目中移植代码是否容易(假设许可允许)?
【问题讨论】:
标签: c networking embedded zeroconf lwip
我看到lwIP 有一些 AutoIP(又名 IPv4LL,又名 RFC 3927)代码,但我不知道它是否在 Zeroconf 堆栈中执行更高级别的操作,即 mDNS 和 DNS-SD(与RFC 2782)。
那么,lwIP 是否支持 DNS-SD 服务发现?如果没有,从 Avahi 这样的项目中移植代码是否容易(假设许可允许)?
【问题讨论】:
标签: c networking embedded zeroconf lwip
lwIP 网站有一个task tracker,其中包含以下三项(看起来好像它们是在 2010 年左右添加的,大约在最初提出这个问题的时候):
【讨论】:
这是一个非常小的 mDNS 响应器,可以很容易地移植到 lwIP:
https://bitbucket.org/geekman/tinysvcmdns
Apple 的 mDNSResponder 对于非常小的系统(就 RAM 使用而言)仍然是相当重量级的,所以如果只需要基本功能,这个可能是首选。
【讨论】:
不,lwIP 不支持 Zeroconf 的任何部分,除了 AutoIP。 我没有看过 Avahi,但将 Apples mDNSResponder 移植到 lwIP 很简单。有一点肮脏的地方你 必须拉回 pbuf 标头才能访问 IP 标头以获取 发件人IP(我认为这是一种“正确”的方法正在开发中 对于 lwIP 但 AFAIK 尚未发布)。
使用 mDNSResponder,您可以获得服务广告和发现。
【讨论】:
我无法评论您问题的 LWIP 部分(我上次使用 LWIP 时它甚至没有 IPv4LL 支持),但您可能有兴趣知道 Apple 已经开源了他们的 mDNSResponder 代码,可用从这里: http://developer.apple.com/networking/bonjour
这个实现的有趣之处在于,它们提供了一个 VxWorks 平台层,这可能比 Avahi 库更适合移植到您的嵌入式目标。
【讨论】: