web-dev-qa-db-fra.com

Qu'est-ce que l'AWDL (Apple Wireless Direct Link) et comment fonctionne-t-il?

J'essaie de découvrir ce qu'est l'AWDL. Sur iOS, si vous utilisez la mise en réseau peer-to-peer d'Apple sur BlueTooth, il semble Apple crée une nouvelle interface réseau "awdl0" pour implémenter (je suppose) IP-over-BT.

Mais je ne trouve aucun document sur cette technologie ou cette interface, comment elle se comporte, les choses que nous devons/ne devons pas faire avec elle, etc. Google apparaît en blanc :(.

En particulier, je crois cela signifie "établi une connexion BT, et j'exécute un pont IP sur le dessus, et vous pouvez l'utiliser pour communiquer de pair à pair". Les bibliothèques système d'Apple ont des bogues où ce pont n'est pas configuré assez rapidement, et si vous envoyez des données trop tôt, elles semblent être supprimées par le système d'exploitation. Donc ... si je peux interroger cet awdl0, j'espère vérifier "êtes-vous prêt?" et retardez les messages P2P jusqu'à ce que le système d'exploitation soit satisfait.


MISE À JOUR

Plus d'informations: je peux obtenir des paires d'appareils iOS pour créer des connexions awdl0 entre elles - mais elles ne sont jamais créées sur les machines OS X, que BT et Bonjour soient allumés ou non, que les appareils soient couplés ou non.


Quelques antécédents:

Dans iOS5, Apple a désactivé de façon permanente les parties Bluetooth de la mise en réseau Bonjour/Peer-to-peer et a publié une note technique demandant à tout le monde d'utiliser DNS-SD s'ils souhaitaient continuer à utiliser Bluetooth comme moyen de transport entre Appareils iOS. C'est très bien, mais cela signifie que vous devez utiliser DNS-SD si vous voulez un BT hautes performances et que vous le voulez fiable.

(GameKit parfois fonctionne bien, mais nous constatons souvent des performances terribles dans des scénarios du monde réel, par exemple des lieux publics surpeuplés - ce qui disparaît si vous utilisez DNS-SD)

Le protocole DNS-SD n'inclut pas d'informations pour vous dire ce que le matériel utilise. Mais cela vous indique les interfaces réseau (c'est ainsi que je sais que nous fonctionnons sur awdl0)

DNS-SD est génial, et nous avons des connexions peer-to-peer à haut débit et à faible latence entre les appareils iOS - tout ce que GameKit promet mais échoue souvent à fournir chaque fois qu'il y a plus de quelques appareils wifi/BT à portée.

32
Adam

AWDL a récemment attiré beaucoup d'attention lorsqu'il a causé des problèmes de Wi-Fi dans les appareils iOS 8 et OS X Yosemite.

Qu'est-ce que l'AWDL? L'AWDL (Apple Wireless Direct Link) est une connexion peer-to-peer WiFi à faible latence/haute vitesse Apple utilise partout où vous vous attendez: AirDrop, GameKit (qui utilise également Bluetooth), AirPlay et peut-être ailleurs. Il fonctionne en utilisant sa propre interface réseau dédiée, généralement "awdl0".

Alors que certains services, comme Instant HotSpot, Bluetooth Tethering (bien sûr) et GameKit annoncent leurs services sur Bluetooth SDP, Apple a décidé de publier AirDrop sur WiFi et a détruit par inadvertance les performances WiFi pour des millions de Yosemite et Utilisateurs d'iOS 8.

Comment fonctionne AWDL? Depuis l'iPhone 4, les noyaux iOS ont eu plusieurs interfaces WiFi pour 1 puce matérielle WiFi Broadcom.

en0 - interface WiFi principale ap1 - interface de point d'accès utilisée pour le partage de connexion WiFi awdl0 - interface Apple Wireless Direct Link (depuis iOS 7?)

En ayant plusieurs interfaces, Apple est capable d'avoir votre connexion WiFi standard sur en0, tout en diffusant, parcourant et résolvant les connexions peer-to-peer sur awdl0 (mais pas bien).

Vous pouvez trouver plus d'informations ici et ici .

37
bzz

Je voudrais fournir une réponse plus précise quant à comment le protocole fonctionne en interne. Je cite une partie de l'abstrait de cet article .

En bref, chaque nœud AWDL annonce une séquence de fenêtres de disponibilité (AW) indiquant sa disponibilité à communiquer avec d'autres nœuds AWDL. Un nœud maître élu synchronise ces séquences. En dehors des AW, les nœuds peuvent régler leur radio Wi-Fi sur un canal différent pour communiquer avec un point d'accès, ou pourraient l'éteindre pour économiser de l'énergie.

Du point de vue de l'utilisateur, AWDL permet à un appareil de rester connecté à un réseau Wi-Fi basé sur une infrastructure et de communiquer avec ses homologues AWDL "en même temps" en sautant rapidement entre les canaux des deux réseaux (AWDL utilise des canaux sociaux fixes 6, 44 et 149). Contrairement à la réponse précédente, nous avons constaté que les versions actuelles d'AWDL fonctionnent assez bien et que le saut de canal n'induit qu'une petite surcharge.

Clause de non-responsabilité : Je suis co-auteur de cet article et nous avons récupéré ces informations au moyen de la rétro-ingénierie. Si vous êtes intéressé par les détails, veuillez lire l'article et jeter un œil au dissecteur Wireshark (publié bientôt).

6
milan