2012-08-06 19 views
11

DNS-SDを介してサービスが検出されたら、そのホストのアドレスはどのくらい正確に解決され、時間とオーバーヘッドが大幅に増加しますか?mDNSはどのようにしてアドレスを解決しますか?

また、JmDNSまたはBonjourを使用している場合は、serviceFoundserviceResolvedのコールバックがあります。特定のサービスを公開しているデバイスのIPアドレスに興味があるだけの場合は、serviceFoundserviceResolvedの両方を経由するよりも早く/より効率的な方法でアドレスを取得できますか?

答えて

23

DNS-SD

おかげで、特定のマルチキャストアドレスにUDP上でDNSパケットを送信することによって動作し、マルチキャストDNS(MDNS)を使用しています。ネットワーク内のすべてのMDDN対応ホストもこのアドレスをリッスンします。それはUDPを使用するので、非常にオーバーヘッドです。また、クライアントは、広範なキャッシングを使用することによって、ネットワーク上のチャタリング量を最小限に抑えるように設計されています。

サービスの検出は2段階のプロセスです。最初のステップは、特定のサービスを提供するすべてのホストの名前を見つけることです(印刷など)。これはまだあなたにIPアドレスを与えるのではなく、あなたにmdns名を与える(.localで終わる)。これは、IPが変更される可能性があるためですが、名前は変更されない可能性があります。

サービス発見の2番目のステップは、mdnsを超えるホストの.localの名前を解決することです。 foo.localfoo.localであるマルチキャストを介してそのパケットを確認し、IPアドレス、ポート番号などのブロードキャストで応答します。

+0

このクエリで助けてくださいhttp://stackoverflow.com/questions/40662608/service-discovery-using-dns-sd – Daemon

関連する問題