Apple デバイスは互いにどのように挨拶するのでしょうか? - Bonjourプロトコルについての興味深い講演

Apple デバイスは互いにどのように挨拶するのでしょうか? - Bonjourプロトコルについての興味深い講演

Apple製品をすべて使っている学生なら、AirDropによる写真やファイルの転送、AirPlayによるテレビ画面投影、ホットスポットのパスワードの自動共有、Apple WatchによるMacやiPhoneのロック解除、カメラ/スケッチ/マーキングの連続使用など、複数のデバイス間のシームレスな接続を体験したことがあるはずです。その基本原理は、同じiCloudにログインしているデバイス間でWi-FiまたはBluetooth経由でデータを素早く同期することです。

問題は、デバイスがローカル エリア ネットワーク内で通信する場合、デバイスが互いの IP アドレスを知る必要があることです。 AirPlay スクリーン投影を例にとると、最初のステップでは、オーディオ、ビデオ、画像、またはスクリーン コンテンツをテレビに投影する前に、iPhone などの端末デバイスがローカル エリア ネットワーク内のターゲット スクリーン投影デバイス (つまり、テレビ) を見つける必要があります。

ほとんどの場合、デバイスの IP アドレスは、動的に割り当てられた DHCP プロトコルを通じて取得されます。では、デバイスはどのようにして互いを検出するのでしょうか?ここで Bonjour プロトコルが役立ちます。

Bonjour プロトコルとは何ですか?

Bonjour は、Apple によって実装されたゼロ構成ネットワーク プロトコルです。 「ボンジュール」という言葉はフランス語に由来し、「こんにちは」または「おはよう」を意味します。このプロトコルは、ネットワーク構成を簡素化し、人々が挨拶を交わすのと同じように、デバイスがローカル エリア ネットワーク内で簡単に互いを検出し、通信できるように設計されています。

Bonjour を使用すると、ユーザーは IP アドレスやデバイス名を手動で設定する必要がなくなります。デバイスまたはアプリケーションは、必要なサービスやその他のインタラクティブ アプリケーションを自動的に検出し、ユーザーの介入なしに自動接続、通信、およびデータ交換を実現します。

図1 LAN内のデバイスの相互接続

Bonjour プロトコルはどのように機能しますか?

1. Bonjourプロトコルの基礎

Bonjour は主に、mDNS (マルチキャスト DNS) と DNS-SD (DNS サービス検出) という 2 つの標準ネットワーク プロトコルに基づいており、標準 DNS フレームワーク上に構築および拡張されています。

1.1 mDNS プロトコル

mDNS プロトコルは UDP/IP に基づいており、通信にはマルチキャスト アドレス 224.0.0.251 とポート 5353 を使用します。 mDNS プロトコルは、DNS サーバーを構成せずに、マルチキャスト クエリと応答を通じて LAN 内でホスト名解決を実装します。 mDNS プロトコルのデータ パケット形式は、標準の DNS プロトコルと一致しています。標準の DNS クエリ レコード タイプをサポートし、その中のいくつかの概念を拡張します。

これらのうち、リソース レコードは、ローカル エリア ネットワーク内のホスト間でメッセージ コンテンツを交換するために使用され、次の主要なフィールドが含まれます。

NAME: メッセージの内容を示します

TYPE: メッセージの内容の種類を示します

さらに、TYPE タイプに応じて、次の主要な DNS レコード形式を定義できます。

レコード: ホスト名とIPv4の対応

AAAAレコード: ホスト名とIPv6の対応

PTRレコード: サービスタイプとサービスインスタンス名の対応を記録し、通常はサービスインスタンスのクエリと検出に使用されます。

SRVレコード: サービスインスタンスのホスト名とポート情報を記録します

TXT レコード: MAC アドレス、デバイス ID など、「キー = 値」の形式で記録された、サービスに関する追加の説明テキストを提供します。

ANYレコード: クエリでよく使用される任意のタイプ

1.2 DNS-SDプロトコル

mDNS プロトコルは、メッセージの基本構造とメッセージ送信プロセスを定義します。これを基に、DNS-SD プロトコルは、サービス名、サービス インスタンス名、ドメイン名の長さ/シーケンスなどの特定の要素をさらに定義し、PTR、SRV、TXT の 3 つのリソース レコードを使用してサービスを完全に記述し、簡単なサービス検出および記述方法を規定します。

サービス名は通常、アンダースコア「_」とプロトコル名で構成され、ドメイン名の末尾の固定識別子として「local」が使用されます。形式は、<サービス タイプ>.<ドメイン名>.local です (例: _printer._tcp.local、_airplay._tcp.local)。

サービス インスタンスは、<サービス インスタンス>.<サービス タイプ>.<ドメイン名> の形式のインスタンス名で識別されます (例: PrintsAlot._printer._tcp.local)。

MyMac._airplay._tcp.local

Bonjour プロトコルは、上記の 2 つのプロトコルを通じてローカル エリア ネットワーク内でホスト名の解決とサービスの登録および検出を実装し、ゼロ構成ネットワークの基盤を提供します。

2. Bonjourサービス検出プロセス

Bonjour の仕組みを理解するには、前述の mDNS プロトコルと DNS-SD プロトコルがどのように組み合わされて相互作用するかを考えるだけで十分です。

Bonjour プロトコルは、mDNS と DNS-SD の有機的な組み合わせとして考えることができます。具体的には、DNS-SD プロトコルは PTR レコードを通じてサービス インスタンスを指し示し、SRV レコードを通じてインスタンスのホスト名とポートを提供します。この情報を取得した後は、mDNS を介してホスト名を解決して IP アドレスを取得するだけで、サービス名から IP アドレスへのマッピング関係が完了し、エンドツーエンドの接続が実現します。 DNS-SD によって公開および照会されるレコード情報は、mDNS によって定義されたマルチキャスト グループとポート番号に基づいて送信されることに注意してください。

次に、Bonjour サービスの検出プロセス全体がどのように完了するかを具体的な例で説明します。ローカル エリア ネットワーク内の iPad デバイスが音楽共有サービスを公開するとします。これには主に次の 3 つの手順が含まれます。

2.1 サービス公開

まず、デバイスは 192.168.1.23 などの利用可能なリンクローカル IP アドレスをランダムに選択し、LAN に公開します。次に、mDNS レスポンダーを起動し、ホスト名 my-ipad.local を要求します。競合がないことを確認した後、ホスト名を使用します。次に、デバイスは TCP ポート 1010 で音楽共有サービスを開始します。最後に、音楽サービスが公開され、mDNS マルチキャストを通じて DNS レコードが作成されます。

SRV レコード: 内容はサービス インスタンス名「Xiao Li's music service._music._tcp.local」です。ホスト名 my-ipad.local の TCP サービス ポート 1010 を指します。

PTR レコード: 内容はサービス名「_music._tcp.local」です。サービス インスタンス名「Xiao Li's music service._music._tcp.local」を指します。

TXT レコード: MAC アドレス「MAC=D3:AA:E2:30:B0:E1」など、デバイスに関する追加情報を提供します。

ローカル エリア ネットワーク内の他のデバイスがこれらのレコードを受信すると、それらを解析してキャッシュします。


図2 サービス公開プロセスの例

2.2 サービス検出

クライアント アプリケーションが音楽共有サービスを必要とする場合、_music._tcp タイプのサービス クエリ メッセージを作成し、mDNS を介して LAN 全体にクエリ要求をマルチキャストします。クエリ要求を受信すると、サービスを提供できるデバイスは PTR レコードで応答します。この応答レコードには、サービス インスタンス名「Xiao Li's Music Service._music._tcp.local」が含まれています。その後、クライアント アプリケーションは PTR レコードからサービス インスタンス名を抽出し、それをサーバー リストに追加できます。

図3 サービス検出プロセスの例

2.3 サービス解決

サービス解決は、サービス検出が完了した後に実行されます。アプリケーションはサービス インスタンスの名前を選択し、LAN をマルチキャストして対応する SRV レコードを照会します。サービス プロバイダーは応答後、サービス インスタンスの現在のホスト名とポート番号を返します。アプリケーションはホスト名を取得した後、ホスト名に対応する IP アドレスを解決するためにマルチキャスト mDNS クエリ要求を再度送信します。最後に、アプリケーションは取得した IP アドレスとポート番号に基づいてサービス インスタンスとの接続を確立し、解決を完了します。

図4 サービス解決プロセスの例

この時点で、音楽共有サービスの自動登録と検出のプロセス全体が完了しました。プロセス全体は効率的かつ便利であり、人間の介入を必要としません。良好なネットワーク チャネルを確立することで、クライアント デバイスはサーバー上の関連する音楽リソースを参照して再生できるようになります。

長年の開発を経て、Bonjour は Apple やその他のプラットフォームの標準サービスとなり、ゼロ構成ネットワーク向けのオープンで実用的かつ効率的なソリューションを提供しています。 Bonjour は mDNS および DNS-SD プロトコルに基づいているため、既存のネットワーク インフラストラクチャとの互換性が非常に高くなります。個人、企業ネットワーク、IoT デバイスで広く使用されており、ネットワークの構成と管理が大幅に簡素化されます。将来的には、スマートハードウェア事業の継続的な成長に伴い、関連技術はネットワーク相互接続において幅広い応用と発展の見通しを持つことになります。

参考文献

[1] アップル開発者リソース - Bonjour [EB/OL]。 (2023)[2023-07-21]. https://developer.apple.com/bonjour/。

[2] 呉月謙LAN デバイスの検出: Bonjour プロトコル [EB/OL]。 (2016-09-28)[2023-07-21]. https://blog.csdn.net/yueqian_scut/article/details/52694411。

[3] ユウェイフェン。ネットワークプロトコルmDNS20170217[EB/OL]。 (2017-02-17)[2023-07-21]. https://www.cnblogs.com/yuweifeng/p/6409182.html。

著者: 王建凱

部署:中国移動スマートホームオペレーションセンター

<<:  現地の気温が10℃以上下がります!新たな寒波が到来

>>:  シーフード:故郷が新疆だと初めて気づいた丨偉大な国の技術スタイル

推薦する

カボチャの種を食べることの利点

カボチャの種はカボチャの種です。私たちは子供の頃、よくカボチャの種を食べました。当時は他のおやつがな...

徐々に消えつつある北東部のインターネット:故郷は檻から抜け出す道

伝説によると、中国のインターネット文章には「新年の帰省」と呼ばれる独特のジャンルの文章があるそうです...

中国自動車工業協会:中国の自動車販売トップ10社(グループ)は2022年に合計2,314万8,000台を販売した

中国自動車工業協会はこのほど、2022年に中国の自動車販売上位10社(グループ)が合計2,314万8...

鶏肉の炒め方

鶏肉を炒める方法は?これは個人の意見に依存する質問です。ほとんどの人はこの質問に対して異なる答えを持...

HTC: Apple の運命は変わらないが、Apple の病気は抱えている!

携帯電話メーカーとしては、全盛期にはアップルと肩を並べ、サムスンを追い詰めてAndroid陣営のトッ...

【賢い農家】虫を食べて食べ物を破壊!悪名高いイネ害虫、トビイロウンカの駆除

節足動物は動物界で最も繁栄しているグループの一つで、昆虫の種は推定550万種あり、そのうち約100万...

アンジェリカとオタネニンジンの黒チキンスープの作り方

黒鶏スープは、特に女性の体調を整えるために、人々の強壮剤としてよく使用されていることは知られています...

Yiche Research Institute: メルセデス・ベンツ ユーザーインサイトレポート (2023 年版)

2015年から2022年にかけて、女性たちはメルセデス・ベンツの中核となり、同社が中国での販売を加...

オオカミはどれくらい獰猛ですか?鉄の棒を持った成人男性がオオカミと戦えるでしょうか?

今日ではオオカミは基本的に人間に危害を加えることはありませんが、古代の人々は野生のオオカミに襲われる...

油茶麺の炒め方

油茶麺といえば、南部の人たちの中にはそれが何なのか知らない人もいて、私たちが日常的に食べている麺の一...

HTCが復活、HTC Oneに似たデザインのタブレットのスパイ写真が公開

[9月10日のニュース] HTCが5.9インチのHTC One Maxクロスオーバータブレットフォン...

これらの文化遺産は、何世紀にもわたる風雨や度重なる地震にも耐え、どのようにして今も残っているのでしょうか?

長い年月を経て、中軸線上にある古代の建物は何百年にも及ぶ風雨や度重なる地震に耐え、今もなお立っていま...

鯛の保存方法

私たちは、買ったものを大切にするために、テレビやインターネットで腐らないように保存する方法を学び、次...

台風が襲来したとき、洋上風力発電はどのように対応すべきでしょうか?

陸上風力発電と比較すると、洋上風力発電には、土地を占有しない、騒音で人々を煩わせない、海上の風は強く...

オーロラはアメリカの17州で見ることができますか?太陽嵐のおかげです!

著者: ドゥアン・ユエチュお使いのブラウザはビデオタグをサポートしていません太陽嵐は太陽で突然起こる...