Tout ce que vous vouliez savoir sur les tests d'adaptateurs Wi-Fi, mais aviez peur de demander

image

Un de ces jours, notre entreprise fête ses 20 ans. Au cours des 15 dernières années, sur ces 20, nous avons créé des programmes d'analyse des réseaux Wi-Fi. Une partie de ce travail est le développement de pilotes pour les adaptateurs Wi-Fi, et dans cet article, je décrirai comment l'équipe de développement teste les produits de son travail, et comment le processus de test a évolué au cours des 15 dernières années ainsi que l'évolution des normes et des adaptateurs. Il y aura de nombreuses photos (ce qu'on appelle "geek porn") et des détails techniques.

Pourquoi écrire des pilotes spéciaux?

Lorsque vous créez un logiciel pour analyser les réseaux Wi-Fi (et nous faisons un programme pour inspecter et modéliser les réseaux et un analyseur de paquets Wi-Fi), vous devez en quelque sorte recevoir (lire, capturer, flairer, intercepter ... - ce sont tous des synonymes) des paquets Wi-Fi échangé entre les points d'accès à proximité et les clients. Vous ne pouvez le faire sous Windows qu'en créant un ensemble de vos propres pilotes pour des chipsets spécifiques.

Quel est le problème avec les pilotes standard habituels que le fabricant de l'adaptateur fait? Du point de vue de l'utilisateur moyen, tout va bien pour lui. Il n'y a qu'un petit problème - vous ne pouvez pas l'utiliser pour lire des paquets Wi-Fi en mode observateur passif. Et sans cela, vous ne pouvez pas créer de logiciel d'analyse de réseau. En général, c'est un gros sujet pour un article séparé (et je l'écrirai cette année). Si vous êtes intéressé en ce moment, alors je vous le dirai brièvement dans le paragraphe suivant, et si le sujet de la programmation n'est pas proche de vous, sautez-le.

Il y a une dizaine d'années, sous Windows, une nouvelle API est apparue pour lire passivement les paquets Wi-Fi, le soi-disant mode moniteur. Vous pouvez toujours «renifler» les paquets sous Windows, et personne ne vous dérange pour exécuter Wireshark et voir les paquets provenant de votre adaptateur sans fil, mais le problème est que vous ne verrez que vos paquets et uniquement les paquets de données. Toutes les autres informations (paquets d'autres personnes, paquets de type Beacon, informations sur le niveau du signal dans le paquet et son débit, etc.) ne sont pas disponibles. La nouvelle API a été conçue pour résoudre ce problème une fois pour toutes. Mais il n'a pas décidé: presque aucun chipset des principaux fournisseurs ne le prend en charge normalement, et l'API elle-même était obsolète au moment de la naissance et Microsoft ne se développe pas. Bref, un désastre complet avec lui. Et si vous êtes tombé sur un logiciel d'analyse des réseaux Wi-Fi sous Windows, dont les vendeurs affirment qu'il prend en charge tout ou presque tous les adaptateurs Wi-Fi et ne nécessite pas de remplacement de pilote - vous obtenez certainement ce qu'ils appellent l'huile de serpent en anglais.

L'écriture de pilotes spéciaux pour surveiller le Wi-Fi est difficile, longue et coûteuse. Le nombre d'entreprises qui le font peut être calculé en utilisant les doigts d'une main.

Pourquoi tester un tas de pilotes d'adaptateur

Un pilote est un programme d'interaction avec du matériel (matériel) spécifique à un matériel particulier. Dans le processus de développement du pilote, le programmeur doit s'assurer que le pilote intercepte correctement les paquets, change de canal et de plage de fréquences, répond correctement aux systèmes d'hibernation, calcule correctement les niveaux de signal et fait beaucoup de choses sans lesquelles il est impossible d'analyser un réseau Wi-Fi.

Il semblerait que cette tâche soit assez compréhensible et simple: j'ai branché l'adaptateur sur l'ordinateur, puis j'ai développé et testé votre pilote autant que vous le souhaitez. En réalité, nous allons parler de nombreuses nuances.

Quelle devrait être la plate-forme de test

Pour tester les pilotes technologiquement, vous avez besoin d'un certain banc d'essai, c'est-à-dire d'une plate-forme pour travailler avec une variété de matériel, qui doit répondre à plusieurs exigences:

  • Déconnexion simple de l'un et connexion d'un autre adaptateur.
  • Possibilité de se connecter à des interfaces informatiques modernes.
  • Faible interférence des composants électroniques.
  • Mobilité. Pendant les tests, vous devez pouvoir déplacer l'adaptateur Wi-Fi, changer l'orientation de ses antennes dans l'espace et changer la distance jusqu'au point d'accès (sinon vous ne pourrez pas calibrer correctement le niveau du signal).
  • Possibilité de connecter plusieurs adaptateurs en même temps (pour USB).

De plus, il peut être extrêmement utile de voir comment fonctionne le pilote standard, c'est-à-dire voir la communication du pilote de l'adaptateur avec l'ordinateur au niveau du bus, mais pour l'instant nous laissons ce sujet de côté.

Archéologie et modernité

Il est maintenant temps de parler directement du fer. Rappelez-vous le passé, parfois très ancien, et discutez du nouveau.

2003

Nous avons commencé à créer des logiciels Wi-Fi en 2003 (avant cela, nous ne faisions que des logiciels pour les réseaux câblés). Le début du zéro était le moment où le Wi-Fi commençait à peine. Le premier d'une famille de normes, 802.11, a été adopté en 1997. Il a été suivi par 802.11b et 802.11a en 1999, mais la technologie est allée aux masses beaucoup plus tard. La plupart des ordinateurs portables ont été vendus sans Wi-Fi intégré, mais vous pouvez acheter vous-même des adaptateurs: externes, connectés au port CardBus (PCMCIA) pour les ordinateurs portables ou aux normes PCI internes. Une petite partie des ordinateurs portables haut de gamme est également vendue avec des adaptateurs miniPCI intégrés.

Notre première étape a été de prendre en charge les adaptateurs CardBus 802.11b. Ce fut une période bénie: presque tous ces adaptateurs se trouvaient sur le chipset Intersil Prism, le code de sourcing des pilotes était disponible gratuitement pour tout le monde après la signature du NDA, et le taux de transfert de données maximum sur la couche physique était de 11 Mbps, soit il était vraiment possible de transmettre des données à une vitesse ne dépassant pas 1 mégaoctet par seconde dans des conditions idéales.


Adaptateur Wi-Fi CardBus avec antennes externes

Adaptateur Wi-Fi CardBus avec antennes externes

Je dois dire que les adaptateurs fonctionnaient bien, avaient une bonne sensibilité, surtout s'il était possible de connecter des antennes externes. Tout était très simple et incontesté avec la plate-forme de test: presque tous les ordinateurs portables avaient un ou deux ports CardBus.

Ordinateur portable vintage avec ports PCMCIA
Vous souvenez-vous encore de ces mammouths de 3 à 4 kilogrammes?

Il ne nous restait plus qu'à insérer l'adaptateur dans un tel port externe.

Adaptateur CardBus et emplacement correspondant d'une ancienne machine
Adaptateur CardBus et emplacement correspondant d'une ancienne machine

2007

Les adaptateurs CardBus miniatures sont remplacés par une norme ExpressCard plus élégante sur le bus PCI Express. Des adaptateurs Wi-Fi ExpressCard 34 mm apparaissent sur le marché, avec déjà 802.11g et 802.11a. Les vitesses augmentent, de nouveaux schémas de modulation sont appliqués.

Adaptateurs Wi-Fi ExpressCard
Adaptateurs Wi-Fi ExpressCard

ExpressCard, comme CardBus, est très pratique pour les tests. Les cartes sont faciles à changer, les ordinateurs portables sont mobiles, les modèles avec ports ExpressCard ne manquent pas sur le marché.

Les ordinateurs de bureau ne sont pas non plus immobiles, en 2007, la norme PCI Express 2.0 a été adoptée, de sorte que les adaptateurs PCIe avec antennes externes apparaissent souvent à l'intérieur des ordinateurs de bureau. Il n'est pas si pratique de les tester (retirer le couvercle du boîtier, remplacer l'adaptateur PCIe, remettre tout à sa place).

2010

Nous commençons à prendre en charge les adaptateurs Wi-Fi USB 2.0. Il s'agit d'un facteur de forme très pratique à la fois pour les tests et pour l'utilisation par les utilisateurs finaux. Tout ce dont vous avez besoin est un port USB ou plusieurs ports si vous utilisez plusieurs adaptateurs.

Le légendaire adaptateur Proxim ORiNOCO 8494 802.11n arrive dans l'arène, basé sur le chipset Atheros Communications, qui n'a pas encore été absorbé par Qualcomm. Cet adaptateur a été utilisé par tous les programmes professionnels pour les enquêtes de sites Wi-Fi. Il a une excellente sensibilité.

Adaptateur USB légendaire Proxim ORiNOCO 8494
Adaptateur USB légendaire Proxim ORiNOCO 8494

La possibilité de connecter plusieurs adaptateurs à la fois est un gros plus, elle accélère le temps de scrutation des canaux en ce qui concerne les programmes d'étude de site et permet, par exemple, d'analyser le comportement des clients lors de l'itinérance en ce qui concerne les analyseurs de paquets.

Cependant, n'oubliez pas qu'un adaptateur Wi-Fi USB typique consomme de 200 à 300 mA, et si vous utilisez un concentrateur USB passif en y branchant trois adaptateurs, vous pouvez facilement dépasser la limite pour USB 2.0 500 mA .

Compteur PortaPow pour déterminer la consommation de courant de l'adaptateur
Compteur PortaPow pour déterminer la consommation de courant de l'adaptateur

Il n'y a pratiquement aucune interférence RF provenant des concentrateurs USB 2.0, et en plus de la question de la consommation actuelle, la seule chose dont vous devez vous occuper est l'emplacement des ports sur le concentrateur. Les ports doivent être situés de sorte que les adaptateurs puissent être insérés dans les ports voisins en même temps (si les ports sont trop proches, l'insertion d'adaptateurs ne fonctionnera tout simplement pas).

Le prochain problème en 2010 pour nous a été l'apparition d'adaptateurs MiniPCIe, qui ont remplacé MiniPCI dans les ordinateurs portables. Nous avons commencé par démonter les ordinateurs portables pour tester le nouvel adaptateur. Quelle douleur c'était - probablement pas nécessaire de dire. Le remplacement de l'adaptateur dans un ordinateur portable est un processus rapide et fastidieux, et vous pouvez tomber sur de nombreux pièges. Premièrement, s'il y avait un adaptateur avec deux antennes dans l'adaptateur "natif" de l'ordinateur portable, et que nous voulions tester le modèle avec trois antennes, il n'y avait pas de solution normale. Deuxièmement, certains fabricants d'ordinateurs portables sont en train de détruire complètement, en clignotant de manière rigide dans le BIOS les modèles d'adaptateurs pris en charge par l'ordinateur portable. Et si le nouvel adaptateur ne tombe pas dans une telle liste blanche, il n'est tout simplement pas reconnu. Troisièmement, vous pourriez ne pas avoir de chance et casser quelque chose à l'intérieur.

À un moment donné, nous avons dû utiliser des ordinateurs de bureau avec une carte adaptateur PCIe <-> MiniPCIe. Mais la solution n'était pas parfaite: la mobilité de l'appareil est toujours importante. Les gars taïwanais de Bplus Technology , qui, parmi un large éventail de solutions de débogage très intéressantes, ont offert une excellente carte, ont trouvé la solution parfaite:

Carte de test avec connecteur MiniPCIe
Carte de test avec plug-in MiniPCIe via ExpressCard

Cette planche n'était qu'un salut pendant de nombreuses années. Le banc d'essai s'est avéré formidable: les adaptateurs peuvent être changés en deux comptes, la mobilité est préservée, il n'y a aucune interférence et la carte elle-même est assez peu coûteuse. Tout ce dont vous avez besoin est un ordinateur portable avec un slot ExpressCard, mais à l'époque, ce n'était pas un problème.

Carte connectée
La carte est connectée, l'adaptateur ExpressCard est inséré dans l'ordinateur portable

2013

En 2013, le Wi-Fi avait complètement conquis le monde. Tous les ordinateurs portables sont entièrement équipés de modules Wi-Fi intégrés, et ces modules, dans le sillage de la miniaturisation universelle, commencent à sortir sous un nouveau format, M.2 (alias NGFF). Les cartes M.2 sont plus petites que les MiniPCIe habituelles et ont un connecteur différent.

Carte MiniPCIe, module MiniPCIe, module M.2
Carte MiniPCIe, module MiniPCIe, module M.2

Je voudrais continuer à utiliser notre excellent kit de test, et Bplus Technologies vient à la rescousse. Ils libèrent l'adaptateur MiniPCIe <-> M.2, et nous faisons facilement un sandwich si épais:

«Sandwich» de la carte MiniPCIe, adaptateur MiniPCIe <-> M.2, adaptateur Wi-Fi M.2 et antennes omni connectées
«Sandwich» de la carte MiniPCIe, adaptateur MiniPCIe <-> M.2, adaptateur Wi-Fi M.2 et antennes omni connectées

Il n'y a presque plus d'ordinateurs portables avec ExpressCard sur le marché, mais nous avons un stock de ces vieilles machines, bien qu'il soit déjà clair que nous devrons bientôt chercher une nouvelle solution. Mais plus à ce sujet ci-dessous.

2014

En décembre 2013, la norme 802.11ac a été ratifiée et en 2014, de nombreux adaptateurs 802.11ac sont apparus sur le marché, avec USB 3.0 déjà. Pourquoi les adaptateurs USB 3.0? Parce que la vitesse du bus 2.0 ne suffit pas. Les adaptateurs 802.11n tridimensionnels (3 flux spatiaux) pourraient fournir une vitesse maximale de 450 Mbps au niveau physique, mais les adaptateurs 802.11ac peuvent déjà fournir 867 Mbps (deux flux, largeur de canal de 80 MHz) ou 1300 Mbps (trois flux, largeur de canal de 80 MHz) et même en théorie 2340 Mbps (trois flux, largeur de canal 160 MHz, seulement il n'y en a pas dans la nature).

Le seul problème avec l'USB 3.0 est que les périphériques USB 3.0 (câbles, connecteurs, circuits) sont capables de générer un bruit de fréquence radio à large bande assez puissant, ce qui rend les adaptateurs beaucoup moins sensibles à mesure que le rapport signal / bruit diminue. En l'absence d'un bon blindage, cet effet peut être facilement observé. La capture d'écran ci-dessous a été prise à l'aide de TamoGraph Site Survey et de l'analyseur de spectre Wi-Spy. La capture d'écran montre une image typique du fonctionnement de plusieurs réseaux dans la gamme 2,4 GHz (amplitudes en haut et vue dite cascade en bas). On peut voir que le seuil de bruit est approximativement au niveau de –95 dBm.

Aucune interférence du concentrateur USB
Aucune interférence du concentrateur USB

Essayons maintenant de rapprocher Wi-Spy du concentrateur ou du lecteur USB 3.0 externe. L'image change radicalement:

Interférence puissante du concentrateur USB
Interférence puissante du concentrateur USB

Près du moyeu, il y a un bruit très décent, à environ -77 dBm. Si nous prenons en compte que le rapport signal / bruit minimum auquel le Wi-Fi peut fonctionner est d'environ 4 dB, alors avec cette image, l'adaptateur ne pourra pas se connecter au réseau si le signal du point d'accès est inférieur à -73 dBm. Pour contourner ce problème, vous devez essayer différents concentrateurs ou utiliser des câbles USB supplémentaires qui retirent l'adaptateur des sources de bruit RF.

Vous vous demandez peut-être comment les adaptateurs USB 3.0 vivent avec de telles interférences? Ils vivent une vie très intéressante. Prenez, par exemple, des adaptateurs basés sur le chipset Realtek: lorsque l'adaptateur n'est pas associé, il fonctionne en mode USB 2.0, balayant les canaux et trouvant les réseaux à proximité. Lorsque l'adaptateur se connecte au réseau, le service système spécial de Windows réinitialise le périphérique et le fait passer en mode USB 3.0. Dans ce mode, l'adaptateur reste jusqu'à ce qu'il se dissocie, après quoi il revient à nouveau en mode USB 2.0. Ce sont des danses folles.

2018

Le temps passe et s'il n'y a pas de nouveaux problèmes avec les tests d'adaptateurs USB (les connecteurs USB Type-C ne comptent pas, un adaptateur penny résout le problème), alors une crise se prépare pour MiniPCIe et M.2. Passer à l'ancien tas de "portables avec ExpressCard + ExpressCard MiniPCIe" est insupportable. Premièrement, les vieux ordinateurs portables ne tirent plus Windows 10. Deuxièmement, ils peuvent mourir à tout moment, nous laissant à perte, car je n'ai pas envie de chercher des ordinateurs portables de remplacement sur le marché aux puces.

Nous devons trouver une nouvelle solution. Mobile, de préférence sous Windows et macOS, avec une interface moderne pour la connexion. Naturellement, avec capacité d'accès direct à la mémoire (DMA). Le moyen le plus simple consiste à insérer la carte adaptateur PCIe <-> MiniPCIe dans le bureau, mais vous devez alors abandonner la mobilité. Porter un bureau autour de votre bureau est très bon pour votre santé, mais pas très productif. De plus, nous nous éloignons désormais généralement des ordinateurs de bureau vers les ordinateurs portables et Intel NUC; les ordinateurs de bureau ont largement perdu leur sens ces dernières années.

Que nous reste-t-il donc? Bien sûr, pas USB, car, hélas, vous ne pouvez pas créer de pont USB PCIe <->. Ensuite, Thunderbolt: il est dans les nouveaux ordinateurs portables et NUC, et cela devrait rendre possible le pont PCIe <-> Thunderbolt. Eh bien, la direction de la recherche est un périphérique pour connecter un adaptateur PCIe via Thunderbolt.

Nous recherchons, recherchons et trouvons le beau: Startech Thunderbolt 3 PCIe Expansion Chassis . Naturellement, ses développeurs, même dans les fantasmes les plus violents, n'auraient pas pu penser que quelqu'un voudrait insérer une carte Wi-Fi dans ce châssis. Le site décrit en fait tous les fantasmes visités par les développeurs: «Le châssis Thunderbolt 3 PCIe facilite l'extension de votre système avec les capacités dont vous avez besoin pour travailler à une productivité maximale. "Vous pouvez ajouter de nombreux types de cartes PCI Express, telles que les cartes PCIe USB 3.1 / 3.0 / 2.0 et USB-C, SSD, réseau, eSATA, FireWire ou de capture vidéo." Théoriquement, le Wi-Fi devrait décoller. Pratiquement ... eh bien, vous savez comment c'est pratiquement. Si un composant a au moins la moindre chance de ne pas gagner d'argent pour quelque raison que ce soit (pilote, firmware, microcircuits), cela ne fonctionnera pas.

Nous avons écrit un support. Le support, naturellement, n'était pas préparé au problème sur le Wi-Fi. Ils ont dit avoir essayé des adaptateurs Ethernet, mais le Wi-Fi ne l'a jamais fait. Eh bien, nous allons essayer pour eux. Le colis arrive rapidement, et nous ne pouvons que retirer le boîtier externe et insérer une carte PCIe avec un adaptateur à M.2.

image
Inside Startech TB31PCIEX16

Insérez l'adaptateur Wi-Fi dans l'adaptateur et vissez-le. Ensuite, connectez les antennes à la carte (via des connecteurs microscopiques, vous ne pourrez pas vous passer d'une loupe), fixez les antennes au support de la carte PCIe pour les faire sortir et connectez l'ensemble de l'unité au port d'alimentation et Thunderbolt de l'ordinateur portable.

image
Startech TB31PCIEX16 assemblé

Et ça a marché. Pas immédiatement, bien sûr, de tels morceaux de fer n'abandonnent généralement pas immédiatement. J'ai d'abord dû mettre à jour le firmware du contrôleur Thunderbolt sur l'ordinateur. Mais alors tout s'est passé comme sur des roulettes.

Le futur

Nous suivons de près le développement de l'industrie. La prochaine interface en route est M.2 CNVio, qui est utilisée, par exemple, dans les derniers adaptateurs Intel 9560. La prochaine norme Wi-Fi est 802.11ax. Nous résoudrons les problèmes dès qu'ils seront disponibles.

Source: https://habr.com/ru/post/fr420415/


All Articles