私はAWDLとは何かを調べようとしています。 iOSでは、AppleのピアツーピアネットワーキングをBlueTooth経由で使用すると、Appleは新しいネットワークインターフェース「awdl0」を作成してIP-over-BTを実装していると思います)。
しかし、私はこの技術、またはこのインターフェース、それがどのように動作するか、私たちがそれをしてはいけない/してはいけないことなどに関するドキュメントを見つけることができません。
特に、I believeは、「BT接続を確立し、IPブリッジをトップで実行しています。これを使用してピアツーピアで通信できます」という意味です。 Apple独自のシステムライブラリには、このブリッジのセットアップが十分に速くないバグがあり、データをすぐに送信すると、OSによってドロップされるようです。この... awdl0をクエリできる場合、「準備はできていますか?」 OSが満足するまでP2Pメッセージを遅らせます。
詳細:iOSデバイスのペアを取得して、相互にawdl0接続を作成できますが、BTとBonjourがオンかどうか、デバイスがペアリングされているかどうかにかかわらず、OS Xマシンには決して作成されません。
背景:
IOS5では、Apple Bonjour/Peer-to-peerネットワーキングのBluetooth部分を永続的に無効にし、Bluetoothを引き続きトランスポートとして使用する場合はDNS-SDを使用するように指示する技術情報を公開しましたiOSデバイス:これは問題ありませんが、高性能BTが必要で、信頼性が必要な場合は、DNS-SDを使用する必要がありますmust。
(GameKit sometimesは正常に機能しますが、実際のシナリオ、たとえば混雑した公共の場所ではひどいパフォーマンスがよく見られます-DNS-SDを使用すると消えます)
DNS-SDプロトコルには、ハードウェアが使用しているものを示す情報は含まれていません。しかし、それはあなたにネットワークインターフェースを教えてくれます(これはawdl0で実行していることを私が知っている方法です)
DNS-SDは素晴らしく、iOSデバイス間にピアツーピアの高速低遅延接続があります-GameKitが約束しているものの、範囲内に数台のwifi/BTデバイスがある場合に配信できないことがよくあります。
AWDLは最近、iOS 8およびOS X YosemiteデバイスでWi-Fiの問題を引き起こしたときに大きな注目を集めました。
AWDLとは?AWDL(Apple Wireless Direct Link)は、低遅延/高速WiFiピアツーピア接続Apple期待するすべての場所で使用:AirDrop、GameKit(Bluetoothも使用)、AirPlay、およびおそらく他の場所で、独自の専用ネットワークインターフェイス(通常は "awdl0")を使用して動作します。
Instant HotSpot、Bluetooth Tethering(もちろん)、GameKitなどの一部のサービスは、Bluetooth SDPを介してサービスをアドバタイズしますが、Apple iOS 8ユーザー。
AWDLの仕組みiPhone 4以降、iOSカーネルには1つのWiFi Broadcomハードウェアチップに対する複数のWiFiインターフェイスがあります。
en0 —プライマリWiFiインターフェイスap1 — WiFiテザリングに使用されるアクセスポイントインターフェイスawdl0 — Apple Wireless Direct Linkインターフェイス(iOS 7以降)
複数のインターフェースを使用することで、Appleはen0で標準のWiFi接続を維持しながら、awdl0でピアツーピア接続をブロードキャスト、閲覧、解決することができます(うまくありません)。
プロトコルが内部でどのように機能するかhowに関するより正確な答えを提供したいと思います。 このペーパー の要約の一部を引用します。
つまり、各AWDLノードは、他のAWDLノードと通信する準備ができていることを示す可用性ウィンドウ(AW)のシーケンスをアナウンスします。選択されたマスターノードは、これらのシーケンスを同期します。 AWの外部では、ノードはWi-Fi無線を別のチャネルに調整してアクセスポイントと通信したり、エネルギーを節約するためにオフにすることができます。
ユーザーの観点から、AWDLでは、デバイスをインフラストラクチャベースのWi-Fiネットワークに接続したまま、2つのネットワークのチャネル間をすばやくホッピングすることでAWDLピアと通信できます(AWDLは固定ソーシャルチャネル6、44を使用します、および149)。前の回答とは対照的に、AWDLの現在のバージョンはかなりうまく機能し、チャネルホッピングはわずかなオーバーヘッドしか引き起こさないことがわかりました。
免責事項: この論文 の共著者であり、リバースエンジニアリングによってこの情報を取得しました。詳細に興味がある場合は、論文を読んで Wireshark dissector (近日公開)をご覧ください。