# Wi-Fi Direct

Le Wi-Fi Direct, initialement appelé "Wi-Fi Peer-to-Peer (P2P)", est une technologie disponible depuis 2009 et développée par le consortium Wi-Fi Alliance permettant le partage de données entre différents appareils (ordinateurs, TV, mobiles, imprimantes, etc.) via leur connexion Wi-Fi sans devoir utiliser un point d’accès Wi-Fi intermédiaire comme un routeur. Il n'est donc pas nécessaire d'avoir un accès à internet pour pouvoir utiliser Wi-Fi Direct. Les périphériques peuvent communiquer deux à deux mais aussi à plusieurs de manière simultanée.
Ce protocole permet d'effectuer un transfert de données, allant du partage de connexion internet au transfert de fichier par exemple, comme on le ferait avec le protocole Bluetooth mais à un débit théorique bien plus élevé (250 Mbit/s) et avec une meilleure portée, au prix d'une consommation énergétique plus élevée. L'un des avantages de Wi-Fi Direct est la possibilité de connecter des appareils même s'ils sont de fabricants différents. Un seul des appareils Wi-Fi doit être compatible avec Wi-Fi Direct pour établir la connexion.

## Description technique
### Technologie

Les produits Wi-Fi Direct peuvent fonctionner avec les normes IEEE 802.11 a, g et n et communiquent dans la bande de fréquences de 2,4 GHz. En outre, certains appareils Wi-Fi Direct fonctionnent dans la bande de fréquences de 5 GHz pour se connecter à 802.11a et 802.11n. De nombreux appareils fonctionnent dans les deux bandes de fréquences.
Comme il n'y a pas de routeur central, les appareils compatibles négocient eux-mêmes lequel doit devenir un point d'accès. L'un d'eux assume donc le rôle traditionnel de point d'accès (PA) appelé "Group Owner" (GO) et les autres appareils, y compris les appareils non compatibles Wi-Fi Direct, se connectent aux PA/GO en mode "Group Client" (GC). Par conséquent, un appareil Wi-Fi Direct doit implémenter à la fois le rôle d'un client et le rôle d'un point d'accès. Ces rôles sont donc des rôles logiques qui peuvent même être exécutés simultanément par le même appareil, c'est le "concurrent mode". Lorsque l'appareil agit à la fois comme client P2P et comme le "P2P Group Owner", l'appareil alterne généralement entre les deux rôles en partageant l'interface Wi-Fi.
Seul le "GO" est autorisé à connecter les appareils de son groupe P2P à un réseau externe. Wi-Fi Direct ne permet pas de transférer le rôle de "GO" au sein du groupe. Si le "P2P Group Owner" quitte le groupe P2P, le groupe se décompose et doit être recréé si nécessaire.

### Formation d'un groupe

Il y a trois manières de former un groupe :
* Standard : les dispositifs commencent par alterner entre un état où ils recherchent d'autres dispositifs en envoyant des "Probe Requests" et un état où ils écoutent les "Probe Requests". Le temps qu'un dispositif P2P passe sur chaque état est distribué de manière aléatoire, généralement entre 100 et 300 ms. Une fois que tous les dispositifs sont connus, la phase de négociation commence alors. Celle-ci est réalisée à l'aide d'un "three-way handshake", aussi appelé "GO Negotiation Request/Response/Confirmation", par laquelle les deux dispositifs s'accordent sur le dispositif qui agira comme P2P GO et sur le canal où le groupe opérera, qui peut être dans les bandes 2,4 Ghz ou 5 Ghz. Pour se mettre d'accord sur l'appareil qui agira comme P2P GO, les appareils P2P envoient un paramètre numérique, la "Group Owner Intent Value", et l'appareil qui déclare la valeur la plus élevée devient le P2P GO. En cas de conflits lorsque deux dispositifs déclarent la même "Group Owner Intent Value", un "tie-breaker bit" aléatoire assigne le gagnant comme propriétaire du groupe. Une fois que les appareils se sont mis d'accord sur les rôles respectifs, la phase suivante est l'établissement d'une communication sécurisée à l'aide de la configuration Wi-Fi Protected Setup et enfin l'utilisation du DHCP pour l'attribution des adresses IP.
* Autonome : un appareil P2P peut créer de façon autonome un groupe P2P et devient immédiatement le propriétaire (GO). D'autres appareils peuvent découvrir le groupe établi à l'aide des mécanismes de balayage traditionnels.
* Persistant : le dispositif P2P peut déclarer un groupe comme persistant en utilisant indicateur (flag) présent dans les "Beacons frames", les réponses de sonde et les trames de négociation GO. Si un dispositif P2P reconnaît avoir formé un groupe persistant avec un autre dispositif correspondant dans le passé, n'importe lequel des deux dispositifs P2P peut utiliser la procédure d'invitation pour rétablir rapidement le groupe. La procédure d'invitation se fait à l'aide d'un "two-way handshake", plus rapide que dans la méthode standard de création de groupe.

### Découverte de périphériques

Pour que les appareils P2P puissent se trouver les uns les autres, ils écoutent et envoient alternativement des trames de requêtes avec des éléments d'information P2P supplémentaires sur les canaux dits "social channels", qui sont les canaux 1, 6 et 11 dans la bande 2,4 GHz. Les dispositifs P2P non connectés et les propriétaires de groupe (GO) y répondent par des trames de réponse "probe response frame" qui comprennent également des éléments d'information P2P décrivant les caractéristiques du dispositif et du groupe. Les propriétaires de groupe (GO) répondent à la place des appareils qui font partie de leur groupe, mais les clients peuvent choisir de ne pas pouvoir être découverts lorsqu'ils sont connectés à un groupe.
Les caractéristiques de l'appareil comprennent notamment :
* Nom de l'appareil défini par l'utilisateur (par ex. "Mon imprimante")
* Type d'appareil (par exemple "Serveur média", "Smartphone", "Télévision", "Imprimante")
* Méthodes de configuration WPS prises en charge (PIN ou bouton simple)
* Canaux d'exploitation pris en charge
* D'autres connexions sont-elles prises en charge ?
* La découverte de services est-elle prise en charge ?
Les caractéristiques du groupe comprennent :
* D'autres appareils peuvent-ils rejoindre le groupe ("group-limit") ?
* L'échange de données entre les clients est-il assuré ? Si oui, un dispositif peut se joindre au groupe pour communiquer avec l'un des dispositifs du groupe ("intra-BSS").
* Le "group owner" fournit-il une connexion à un autre WLAN ou à Internet ("cross-connection") ?
* S'agit-il d'un groupe persistant ?

### Découverte de services

Une fois qu'un périphérique P2P a été découvert et avant d'établir un groupe avec lui, on peut lui demander de décrire les services qu'il fournit. Pour ce faire, le Wi-Fi Direct utilise le protocole "Generic Advertisement Service" (GAS) pour transmettre ces informations conformément à la norme 802.11u. Il est alors possible d'effectuer des requêtes depuis des protocoles tels que "Bonjour" (DNS-SD), UPnP ou WS-Discovery. Après cela, l'application ou l'utilisateur peut choisir de se connecter à un appareil en fonction de son nom ou des services fournis, par exemple, un appareil photo peut se connecter automatiquement à un écran pour afficher ses photos, ou un utilisateur peut choisir de se connecter à "Mon imprimante" pour imprimer un document.
La procédure de découverte de service peut être utilisée pour trouver les services offerts par un appareil P2P ainsi que des informations supplémentaires pour chaque service. Il peut aussi être utilisé pour savoir s'il y a eu un changement dans les services offerts par un dispositif P2P.

### Économies d'énergie

Le Wi-Fi Direct permet aux dispositifs P2P de se mettre en mode sommeil si nécessaire. Un propriétaire de groupe peut se mettre en veille si tous les clients se signalent comme endormis, c'est l' "Opportunistic Power Save".
Le propriétaire de groupe peut aussi utiliser la notice d'absence « Notification of Absence » (NoA) en fixant des intervalles de temps, appelés périodes d'absence, où les Clients P2P ne sont pas autorisés à accéder au canal. Ce protocole repose sur quatre paramètres :
* Durée : spécifie la durée de chaque période d'absence.
* Intervalle : spécifie le temps entre des périodes d'absence consécutives.
* Heure : spécifie l'heure de début de la première période d'absence.
* Nombre : spécifie combien de périodes d'absence seront planifiées.

### Bande passante et portée

La bande passante et la portée dépendent de la norme sous-jacente IEEE 802.11 utilisée par Wi-Fi Direct. Dans le cas où seul le Wi-Fi 802.11g est disponible, la portée est de 38 mètres en intérieur et 140 mètres en extérieur pour une bande passante de 54 Mbit/s.

### Sécurité

La connexion est réalisé sans avoir besoin d'entrer les mots de passe Wi-Fi de la manière conventionnelle en utilisant un autre protocole appelé Wi-Fi Protected Setup (WPS). WPS simplifie le processus de connexion à un réseau sans avoir à saisir des mots de passe compliqués (clé de cryptage WPA/WPA2), en introduisant par exemple un code PIN dans le client P2P ou en appuyant sur un bouton dans les deux périphériques P2P.
Dans un premier temps, le "GO" génère les clefs de sécurité et envoie celles-ci au client. Puis, le client se dissocie et redémarre une tentative de connexion avec les clefs précédemment reçues. De cette façon, si deux périphériques ont déjà les informations d'identification réseau requises (c'est le cas dans la formation d'un groupe persistant), il n'est pas nécessaire de déclencher la première phase, et ils peuvent directement effectuer l'authentification.

## Différences avec le Wi-Fi ad hoc

Le mode ad hoc est officiellement appelé IBSS (Independent Basic Service Set) dans la norme IEEE 802.11. Tous les dispositifs conformes aux normes devraient le mettre en œuvre.
Wi-Fi Direct, malgré son nom "P2P", n'est pas un véritable protocole peer-to-peer car il s'agit essentiellement d'un protocole de formation de groupes hiérarchiques, principalement utilisé pour connecter seulement deux appareils. La sécurité, le chiffrement et la découverte de service sont déjà incluses dans le protocole, contrairement au Wi-Fi ad-hoc. Le Wi-Fi Direct est simple d'utilisation et permet à l'utilisateur de pouvoir connaître sans difficulté la liste des périphériques accessibles et les services qu'ils proposent avant même d'établir une connexion.
Le Wi-Fi Direct ne prend pas en charge la communication entre deux dispositifs clients d'un groupe et ne prend pas non plus en charge la communication à sauts multiples (multi hop) entre les nœuds d'un groupe, ce qui est une exigence clé de l'IoT.
À l'opposé, le mode ad hoc (IBSS), relativement ancien, simple et peu utilisé, est une véritable solution poste à poste sans hiérarchie, où tous les participants sont égaux. Il peut gérer les changements dynamiques de topologie et gère bien les réseaux maillés à grande échelle contrairement au Wi-Fi Direct.

## Dispositifs compatibles

Les produits qui veulent être disponibles sur le marché Wi-Fi Direct doivent être certifiés par la Wi-Fi Alliance. Le consortium existe depuis 1999 et vise à assurer l'interopérabilité des appareils approuvés selon la norme IEEE 802.11. Les appareils qui réussissent les tests de certification reçoivent le logo "Wi-Fi Certified".
Les appareils basés sur Android supportent la norme WiFi-Direct depuis la version 4 Ice Cream Sandwich.
Microsoft supporte Wi-Fi Direct sur son système d'exploitation Windows depuis la version 8 ainsi que sur la Xbox One.
La technologie AirDrop d'Apple repose sur WiFi-Direct mais la compatibilité n'est assurée que pour les appareils utilisant iOS.
Il peut être couplé à d'autres techniques, par exemple avec le cas du S Beam de Samsung (qui est une extension d'Android Beam), où lorsque deux appareils possédant le support du Communication en champ proche (NFC) et du réseau Wi-Fi Direct, se connectent via NFC, puis peuvent automatiquement faire un transfert via réseau Wi-Fi Direct.
La technologie Miracast de partage d’affichage et de son sans fil est basée sur WiFi-Direct.