[解決済み] AWDL(Apple Wireless Direct Link)とは何ですか、どのように機能するのですか?
質問
AWDLとは何なのか調べています。iOSでは、AppleのPeer-to-Peer Networking over BlueToothを使用する場合、Appleは新しいネットワークインターフェース "awdl0"を作成して、(おそらく)IP-over-BTを実装しているようです。
しかし、この技術、このインターフェース、その動作、これを使ってしなければならないこと/してはならないこと、などに関するドキュメントを見つけることができないのです。Googleは空白で出てきます :(.
特に、私は 信じる というのは、「BT接続を確立し、その上でIPブリッジを実行しているので、これを使ってピアツーピアで通信できますよ」という意味です。Apple自身のシステムライブラリには、このブリッジが十分に速くセットアップされないバグがあり、あまりに早くデータを送信すると、OSによって落とされるようです。だから......このawdl0に問い合わせることができれば、"are you ready yet?"をチェックして、OSが満足するまでP2Pメッセージを遅らせることができると思っています。
アップデイト
詳細はこちら しかし、BTやBonjourがオンかどうか、デバイスがペアリングされているかどうかに関わらず、OS Xマシンとの接続が確立されることはないのです。
背景を少し説明します。
iOS5では、AppleはBonjour/Peer-to-peer networkingのBluetooth部分を永久に無効にし、iOSデバイス間のトランスポートとしてBluetoothを使い続けたい場合は、DNS-SDを使うように指示するテクノートを公開しました。これは素晴らしいことですが、次のことを意味します。 しなければならない 高性能なBTが必要で、かつ信頼性が必要な場合は、DNS-SDを使用します。
(ゲームキット 時々 は問題なく動作しますが、混雑した公共の場など、実際のシナリオではひどいパフォーマンスを目にすることがよくあります。)
DNS-SDプロトコルには、ハードウェアが何を使っているのかを示す情報は含まれていません。しかし、ネットワーク・インターフェイスはわかります(それでawdl0上で動作していることがわかるのです)。
DNS-SDは素晴らしく、iOSデバイス間で高速かつ低遅延のピアツーピア接続を実現している。GameKitが約束しながら、数台以上の無線LAN/BTデバイスが範囲内にある場合は、しばしば実現できないものばかりである。
解決するには?
AWDLは最近、iOS 8とOS X YosemiteのデバイスでWi-Fiの問題を引き起こし、多くの注目を集めました。
AWDLとは何ですか? AWDL (Apple Wireless Direct Link) は、低遅延/高速のWiFiピアツーピア接続で、Appleはあなたが期待するあらゆる場所で使用しています。AirDrop、GameKit(Bluetoothも使用)、AirPlay、そしておそらく他の場所でも使用されています。AirDrop、GameKit(Bluetoothも使用)、AirPlayなどです。専用のネットワークインターフェイス(通常は「awdl0"」)を使用して動作します。
Instant HotSpot、Bluetooth Tethering(もちろん)、GameKitなど、いくつかのサービスはBluetooth SDPで宣伝していますが、AppleはAirDropをWiFiで宣伝することに決め、何百万人ものYosemiteとiOS 8ユーザーのWiFi性能を不注意にも破壊してしまいました。
AWDLはどのように機能するのですか? iPhone 4以降、iOSカーネルは、1つのWiFi Broadcomハードウェアチップに複数のWiFiインタフェースを備えています。
- en0 - プライマリ WiFi インターフェース
- ap1 - WiFiテザリングに使用するアクセスポイントインターフェース
- awdl0 - Apple Wireless Direct Link インターフェース (iOS 7 以降?)
複数のインターフェースを持つことで、Apple は en0 で標準的な WiFi 接続を行い、awdl0 でブロードキャスト、ブラウジング、ピアツーピア接続の解決を行うことができます(うまくいかないだけです)。
関連
-
[解決済み】印刷します。エントリ, ":CFBundleIdentifier", Does Not Exist
-
[解決済み] 'strcmp' はこのスコープで宣言されていません。
-
[解決済み] Xcode コマンド /usr/bin/codesign は終了コード 1 で失敗しました : errSecInternalComponent
-
[解決済み] "CFNetwork SSLHandshake failed (-9806)" の解決方法について
-
[解決済み] Xcode 9の問題を修正しました。"iPhoneはビジー状態です。iPhoneのデバッガーサポートを準備中"
-
[解決済み] UTF-8でエンコードされたNSDataをNSStringに変換します。
-
[解決済み] Objective-C ブロックパラメータ 発行 このブロック宣言はプロトタイプではありません
-
[解決済み] selector' の引数が '@objc' メソッド、プロパティ、またはイニシャライザを参照していない
-
[解決済み] Unwind segue - インスタンスメソッドのみ @IBAction を宣言でき、ボタンが Exit に接続しない
-
[解決済み] HTTPの読み込みに失敗しました(エラーコード:-1200 [3:-9802])。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] iPhoneが使用できません。デバイスを再接続してください
-
[解決済み] SwiftUI vs Interface Builderとストーリーボード【非公開
-
[解決済み] ブリッジングヘッダ用のプリコンパイルヘッダの発行に失敗しました。
-
[解決済み] Objective-C ブロックパラメータ 発行 このブロック宣言はプロトタイプではありません
-
[解決済み] iOS HTTP GET リクエストを実行できません -Error Domain=NSURLErrorDomain Code=-1012
-
[解決済み] dispatch_queue_create のキュー属性とは?
-
[解決済み] Swift の performSegueWithIdentifier が動作しない。
-
[解決済み] なぜSwiftでUIViewControllerのデフォルトのsuper.init()を呼び出すことができないのでしょうか?
-
[解決済み] Objective C - 値で渡す、参照で渡す
-
[解決済み] ナビゲーションアイテムのタイトルカラーを変更する方法