Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope

Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand USBPcap ou usbmon capture trop de trafic.

filtre usb wireshark, usbpcap, usbmon, capture usb, diagnostic usb

Les captures USB peuvent devenir écrasantes rapidement. Une machine peut avoir un clavier, une souris, une webcam, un adaptateur Bluetooth, un périphérique de stockage, un adaptateur série, une clé de sécurité et un hub interne actifs en même temps. Quand les utilisateurs cherchent « Wireshark USB filter », « USBPcap filter device », « usbmon filter endpoint » ou « how to find my USB device in capture », ils ont généralement le même problème: "la capture contient trop de trafic et pas assez de structure." Bus Scope est construit pour rendre l'inspection USB plus directe, mais comprendre le problème de filtrage reste utile. Que la capture vienne d'USBPcap sur Windows, d'usbmon sur Linux ou d'une autre source de capture USB, la clé est d'identifier le périphérique puis de restreindre la trace par adresse, endpoint, type de transfert et requête de contrôle.

Commencer par l'énumération

La façon la plus simple d'identifier un périphérique USB est de capturer depuis le branchement. L'énumération contient des descripteurs qui nomment le périphérique, le vendor ID, le product ID, les configurations, interfaces, endpoints et détails spécifiques à la classe.

Cherchez :

  • Vendor ID
  • Product ID
  • Device descriptor
  • Configuration descriptor
  • Interface descriptors
  • Endpoint descriptors
  • String descriptors
  • SET_ADDRESS
  • SET_CONFIGURATION

Si vous démarrez la capture après que le périphérique tourne déjà, vous ne verrez peut-être que le trafic d'endpoint sans le contexte des descripteurs. Cela rend le filtrage plus dur car les numéros d'endpoint seuls ne suffisent pas.

L'adresse du périphérique peut changer

Les adresses de périphérique USB sont attribuées par l'hôte pendant l'énumération. Si le périphérique se déconnecte et se reconnecte, l'adresse peut changer. Un filtre qui marchait pour la première connexion peut manquer la seconde connexion.

Cela compte pour le débogage des reset loops. Si un périphérique se ré-énumère en boucle, vous pouvez avoir besoin de suivre plusieurs adresses dans une seule capture. Les descripteurs product/vendor révèlent que ces adresses appartiennent au même périphérique physique.

Bus Scope aide à garder cette relation visible au lieu de vous forcer à reconstituer mentalement les changements d'adresse.

Filtrer par endpoint

Après la configuration, la plupart du trafic de données utilise des endpoints. L'endpoint zéro est control. Les autres endpoints peuvent être bulk, interrupt ou isochrone.

Significations courantes des endpoints :

  • 0x00 : control OUT sur l'endpoint zéro
  • 0x80 : control IN sur l'endpoint zéro
  • 0x81 : endpoint 1 IN
  • 0x01 : endpoint 1 OUT
  • 0x82 : endpoint 2 IN
  • 0x02 : endpoint 2 OUT

Le bit de direction compte. 0x81 et 0x01 ne sont pas la même direction d'endpoint. Un adaptateur série, par exemple, peut utiliser un endpoint bulk OUT pour les données hôte-vers-périphérique et un endpoint bulk IN pour les données périphérique-vers-hôte.

Les filtres d'endpoint sont utiles une fois que vous savez quel endpoint porte le trafic qui vous intéresse.

Filtrer par type de transfert

Différents problèmes USB vivent dans différents types de transferts :

  • Transferts control : descripteurs, configuration, requêtes de classe, commandes vendor.
  • Transferts bulk : stockage, données série, données vendor, beaucoup de périphériques de capture.
  • Transferts interrupt : entrée HID, notifications de statut, rapports basse latence.
  • Transferts isochrones : audio, vidéo, streaming sensible au timing.

Si un périphérique série USB s'ouvre mais n'envoie pas de données, inspectez les transferts control pour le line coding et l'état des lignes de contrôle, puis les endpoints bulk pour le payload. Si une webcam démarre mais que la vidéo est corrompue, inspectez les transferts isochrones et les alternate settings. Si un périphérique HID se comporte mal, inspectez les transferts interrupt et les descripteurs de rapport.

Filtrer par type de transfert réduit le bruit tout en gardant la classe de preuve pertinente.

Filtrer par setup packet

Les transferts control incluent des setup packets. Les setup packets sont extrêmement utiles car ils identifient la direction de la requête, le type, le destinataire, le code de requête, la valeur, l'index et la longueur.

Exemples importants :

  • GET_DESCRIPTOR
  • SET_ADDRESS
  • SET_CONFIGURATION
  • SET_INTERFACE
  • CLEAR_FEATURE
  • HID GET_REPORT
  • HID SET_REPORT
  • CDC SET_LINE_CODING
  • CDC SET_CONTROL_LINE_STATE
  • Commandes vendor-specific

Quand un périphérique échoue pendant le setup, le setup packet vous dit souvent exactement quelle requête a déclenché le problème.

Sélection de capture USBPcap sous Windows

Sous Windows, USBPcap capture depuis les contrôleurs hôtes USB. Si une machine a plusieurs contrôleurs, choisir le mauvais peut produire une capture sans trafic du périphérique cible.

Un flux pratique :

  1. Débranchez le périphérique cible.
  2. Démarrez la capture sur le contrôleur probable.
  3. Branchez le périphérique.
  4. Cherchez les descripteurs d'énumération.
  5. Si rien n'apparaît, essayez une autre capture de contrôleur.
  6. Une fois le périphérique trouvé, gardez la capture comme référence.

La valeur de Bus Scope est de rendre ce flux moins opaque : la cible est la conversation USB du périphérique, pas juste une énorme liste de paquets.

Capture usbmon sous Linux

Sous Linux, usbmon expose le trafic du bus USB. Le numéro de bus compte. Un périphérique listé comme Bus 003 Device 012 appartient au bus 3 à ce moment-là. Après reconnexion, le numéro de périphérique peut changer.

La capture la plus utile démarre avant le branchement, car l'énumération révèle l'identité du périphérique. Si une permission bloque la capture, résolvez-la d'abord ; sinon vous ne verrez que la défaillance applicative et jamais la preuve USB.

Erreurs de filtrage courantes

Évitez ces erreurs :

  • Filtrer seulement après la défaillance, en manquant l'énumération.
  • Supposer que l'adresse du périphérique est stable entre les reconnexions.
  • Confondre la direction de l'endpoint.
  • Ignorer le trafic de contrôle de l'endpoint zéro.
  • Ne regarder que les paquets de payload et manquer les requêtes de classe.
  • Traiter toutes les requêtes vendor-specific comme du bruit.
  • Filtrer les resets et erreurs trop tôt.
  • Ignorer le contexte de hub et de port.

Un filtre propre n'est utile que s'il préserve la défaillance.

Que garder dans une capture d'investigation

Pour un rapport partageable avec une équipe firmware, pilote ou QA, gardez :

  • L'énumération initiale.
  • Les descripteurs du périphérique cible.
  • La configuration et interface sélectionnées par l'hôte.
  • Les requêtes spécifiques à la classe ou vendor avant la défaillance.
  • Le trafic d'endpoint impliqué dans la défaillance.
  • L'événement de reset, stall, timeout ou déconnexion.
  • Assez de contexte de timing pour montrer si la défaillance est immédiate, liée à l'inactivité, ou liée à la charge.

Cette preuve est plus forte qu'une capture d'écran de « device not recognized ».

Diagnostic final

Le filtrage USB n'est pas qu'une question de masquer le bruit. C'est préserver la séquence de paquets qui explique la défaillance. Commencez par l'énumération, identifiez le périphérique, suivez les changements d'adresse, restreignez par endpoint et type de transfert, et gardez les requêtes de contrôle visibles.

Bus Scope est censé supporter ce flux : trouver rapidement la vraie conversation USB, puis inspecter la preuve au niveau bus qui explique pourquoi le périphérique marche, stall, reset ou disparaît.

<!-- bus-scope-localized-transaction-foundation-v1:start -->

Test du contrat USB pour « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope »

La réponse directe est qu’un STALL, timeout ou reset n’explique pas seul la cause. Prouvez d’abord que le fournisseur voit le bon périphérique, puis lisez le contrat du transfer : type, direction, recipient, wValue, wIndex, longueur annoncée et réelle, status et état avant/après. Pour « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope », reliez la conclusion à la première transaction différente d’un cas nominal.

Limite Comparaison Décision
Plateforme fournisseur, droits, Root Hub ou usbmon/XHC20 Les records viennent-ils de la bonne connexion ?
Setup bmRequestType, bRequest, wValue, wIndex, wLength L’hôte envoie-t-il la requête prévue ?
Data direction, longueur et bytes conservés Le payload respecte-t-il le contrat ?
Status ACK, STALL, timeout ou cancellation Où finit réellement la transaction ?
État configuration, interface, alternate setting, endpoint halt Le périphérique était-il prêt ?

Commencez avant reset et énumération et gardez descriptors, SET_CONFIGURATION, SET_INTERFACE et la commande avant défaut. Un filtre endpoint étroit peut masquer le control transfer décisif. Exécutez une seule action USB documentée par essai et ne changez que firmware, driver, port, câble, commande ou timing.

Comment rédiger une réponse réutilisable ?

Nommez requête, champs setup, réponse et contexte précédent, puis un test à variable unique. Des bytes non retenus ne prouvent pas packet loss. La proximité entre command et reset établit une corrélation, pas la cause sans répétition ou transition d’état.

Quand la comparaison est-elle valide ?

Gardez VID/PID, firmware, speed, topologie, fournisseur, filtre et trigger. Comparez les phases USB sémantiques, pas les frame numbers entre usbmon et USBPcap. Notez début, fin, version, OS, connexion et checksum. Consultez le dépannage Bus Scope.

Les propriétaires Semrush restent distincts : free USB analyzer sur la page produit, best USB protocol analyzer dans la comparaison et USB descriptor viewer dans le guide descriptor. Aucun volume ou KD n’est inventé pour cette page de support.

<!-- bus-scope-localized-transaction-foundation-v1:end --><!-- multilingual-blog-closeout:start -->

Réponse directe et limite d’acceptation

La réponse courte à « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope » est la suivante : Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand USBPcap ou usbmon capture trop de trafic. Considérez cette phrase comme un résultat à vérifier, et non comme une promesse valable pour toute entrée, tout appareil, tout projet ou tout environnement. Un résultat complet consigne l’état initial, l’action exacte, la sortie visible et la condition qui prouve la fin de la tâche dans Bus Scope.

Procédure fondée sur les preuves

Commencez par un cas petit et répétable avant de modifier un projet complet. Notez version de l’application, système, identité de l’entrée ou de l’appareil, réglages pertinents et résultat attendu. Exécutez une action volontaire, conservez la première transition inattendue et comparez-la à un cas nominal si possible. Plusieurs changements simultanés masquent la condition qui a créé ou corrigé le problème.

Point de contrôle 1 : Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope

Si « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.

Point de contrôle 2 : Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup pack

Vérifiez « Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand USBPcap ou usbmon capture trop » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.

Point de contrôle 3 : Commencer par l'énumération

Si « Commencer par l'énumération » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.

Point de contrôle 4 : L'adresse du périphérique peut changer

Vérifiez « L'adresse du périphérique peut changer » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.

Point de contrôle 5 : Filtrer par endpoint

Si « Filtrer par endpoint » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.

Point de contrôle 6 : Filtrer par type de transfert

Vérifiez « Filtrer par type de transfert » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.

Point de contrôle 7 : Filtrer par setup packet

Si « Filtrer par setup packet » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.

Point de contrôle 8 : Sélection de capture USBPcap sous Windows

Vérifiez « Sélection de capture USBPcap sous Windows » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.

Point de contrôle 9 : Capture usbmon sous Linux

Si « Capture usbmon sous Linux » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.

Point de contrôle 10 : Erreurs de filtrage courantes

Vérifiez « Erreurs de filtrage courantes » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.

Matrice d’acceptation

Point Preuve à conserver Critère de réussite
Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope État initial, une action et état obtenu Une seconde personne reproduit le résultat
Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand État initial, une action et état obtenu Une seconde personne reproduit le résultat
Commencer par l'énumération État initial, une action et état obtenu Une seconde personne reproduit le résultat
L'adresse du périphérique peut changer État initial, une action et état obtenu Une seconde personne reproduit le résultat
Filtrer par endpoint État initial, une action et état obtenu Une seconde personne reproduit le résultat
Filtrer par type de transfert État initial, une action et état obtenu Une seconde personne reproduit le résultat

Isolation, reprise et transmission

Arrêtez-vous à la première limite en échec. Conservez source, projet, session ou capture, dupliquez avant toute modification destructive et changez une variable par essai. Rejouer un flux entier après plusieurs changements peut modifier le résultat sans expliquer pourquoi.

Distinguez absence de preuve et preuve d’absence. Une vue vide peut signaler mauvaise entrée, portée, filtre, permission, appareil, période ou état du projet. Vérifiez acquisition ou import avant d’interpréter décodeur, éditeur, rapport ou export.

Avant transmission, rouvrez l’artefact durable et inspectez début, point de décision et fin. Notez version, plateforme, configuration, attente, observation et reproduction minimale. Retirez ou masquez les données sensibles et confirmez l’autorisation du destinataire.

Questions et réponses

Quelle est la manière fiable la plus rapide de commencer ?

Utilisez le plus petit cas représentatif, écrivez le résultat attendu et ne changez qu’une variable. Validez le parcours de base avant d’ajouter filtres, effets, modifications, automatisation ou grande source.

Quelles preuves faut-il conserver ?

Gardez identité de l’entrée, version, plateforme, réglages, action exacte, première transition inattendue et sortie finale. Fermez puis rouvrez projet, session, rapport ou export avant de le considérer durable.

Quand faut-il répéter la procédure ?

Répétez-la après un changement pertinent d’application, système, pilote, firmware, modèle, source ou processus. Conservez le cas accepté précédent comme référence non modifiée.

Quand le résultat est-il transmissible ?

Lorsqu’une seconde personne autorisée identifie l’entrée, répète l’action, obtient le même résultat, comprend les limites et ouvre l’artefact sans état local non documenté.

Guides associés

Ces pages dans la même langue couvrent les étapes voisines sans changer le propriétaire canonique du sujet :

<!-- multilingual-blog-closeout:end -->