FR 2868643 A1 20051007 FR 0403337 A 20040330 Méthode de découverte d'appareils connectés à un réseau IP et appareil implémentant la méthode. La présente invention concerne les réseaux IP ( Internet Protocol en anglais décrit dans la RFC791) et plus particulièrement les réseaux locaux, par exemple les réseaux domestiques. Elle concerne la façon dont les appareils connectés à de tels réseaux obtiennent et gardent à jour la connaissance des autres appareils compatibles connectés au réseau. Dans le domaine des réseaux domestiques utilisant la technologie IEEE 1394, un bus de haute performance décrit dans le document: "IEEE Std 13941995 High Performance Bus, 1996-08-30", la connexion ou la déconnexion d'un appareil du réseau provoque la réinitialisation du bus et par-là même une phase de découverte des appareils connectés. Sur un réseau de type IP la connexion ou la déconnexion d'un appareil ne provoque sur le réseau aucune activité particulière susceptible d'être détectée par les autres appareils. Or certaines applications ou certains protocoles nécessitent pour un appareil connecté à un réseau de connaître les autres appareils participant à cette application ou implémentant le même protocole. Nous pouvons citer par exemple le protocole de protection anticopie de contenus numériques SmartRight décrit par exemple dans la demande de brevet européen publiée sous le numéro EP 1 253 762 Al. Les appareils implémentant ce protocole se doivent de détecter l'arrivée d'un nouvel appareil compatible avec ce protocole sur le réseau de façon à pouvoir lancer une étape de gestion des clés assurant la cohérence du réseau. Des protocoles de découverte de services existent sur le réseau IP, comme le protocole simple de découverte de services SSDP (pour Simple Services Discovery Protocol en anglais), décrit dans le document draft-cai-ssdp-v1-03.txt disponible auprès de la I'IETF ( Engineering Internet Task Force en anglais). Mais ce protocole, outre le fait qu'il est orienté vers la découverte de services et en particulier de services HTTP et non d'appareils, ne garantit pas la détection rapide et à coup sûr de l'arrivée d'un appareil sur le réseau. En effet, cette détection est basée sur l'envoi 2868643 2 d'un message d'annonce par l'appareil arrivant sur le réseau, ce message étant envoyé en utilisant le protocole de transmission de datagrames UDP ( User datagram Protocol en anglais décrit dans la RFC768). Or ce message d'annonce peut ne jamais être reçu par les appareils du réseau car le protocole UDP est non sécurisé et ne garantit pas contre la perte possible du message. D'autres protocoles, comme le protocole de configuration dynamique d'hôte DHCP (pour Dynamic Host Configuration Protocol en anglais), permettent à un appareil arrivant sur le réseau d'obtenir des informations sur celui-ci. Mais outre que ces protocoles n'offrent pas le moyen, une fois connecté, d'être averti de la connexion ultérieure de nouveaux appareils, ces protocoles ont un fonctionnement client serveur, classique dans le monde IP mais non pertinent dans notre cas. En effet il est souhaitable qu'aucun appareil ne joue de rôle privilégié pour notre application excluant l'utilisation d'un serveur centralisant la gestion du réseau. Le problème se pose donc de trouver une méthode, sur IP, indépendante des couches réseau sous jacentes et permettant de détecter l'arrivée sur le réseau et le départ du réseau d'appareils implémentant la même méthode. Le problème se pose également, pour l'appareil, de détecter sa propre arrivée sur le réseau. Cette méthode ne peut reposer sur la présence d'un serveur assumant un rôle de gestion du réseau de façon à pouvoir fonctionner entre tous les appareils implémentant la méthode sans configuration préalable de manière simple et immédiate. L'invention permet donc à des appareils implémentant la méthode de découvrir rapidement sa propre connexion à un réseau d'appareils compatibles ainsi que, une fois connecté, l'arrivée d'un nouvel appareil compatible sur le réseau. L'invention permet également de maintenir la liste des appareils compatibles connectés et de découvrir le départ d'appareils compatibles du réseau. L'invention concerne une méthode de découverte, par un appareil destiné à être connecté à au moins un réseau IP, des appareils implémentant ladite méthode et connectés audit réseau. Cette méthode comporte une étape où l'appareil envoie de manière répétée et automatique des messages de signalisation sur le réseau IP destinés à annoncer la présence dudit appareil. Cette méthode comporte aussi une étape où l'appareil découvre les autres appareils du réseau par l'écoute dudit réseau de manière à recevoir les messages de signalisation émis par les autres appareils implémentant ladite méthode et connectés audit réseau. Selon un mode particulier de l'invention l'appareil maintient une liste des appareils connectés dont il reçoit des messages de signalisation. Selon un mode particulier de l'invention l'appareil stocke dans la liste, pour chaque appareil référencé, une information d'horodatage du dernier message de signalisation reçu en provenance de cet appareil. Selon un mode particulier de l'invention, périodiquement, l'appareil supprime de la liste les appareils dont il n'a pas reçu de messages de signalisation pendant un temps donné. Selon un mode particulier de l'invention l'appareil notifie l'arrivée 20 et le départ d'un appareil quand il ajoute ou supprime une entrée de la liste. L'invention concerne également un appareil destiné à être connecté à un réseau IP possédant des moyens d'émission répétée de messages de signalisation sur le réseau, des moyens de réception des messages de signalisation émis par les autres appareils sur le réseau, caractérisé en ce qu'il possède des moyens de stocker une liste des appareils dont il a reçu au moins un message de signalisation. Selon un mode particulier de l'invention l'appareil possède en 30 outre des moyens de stockage de l'heure du dernier message de signalisation reçu en provenance d'un appareil dans ladite liste. Selon un mode particulier de l'invention l'appareil possède en outre des moyens pour parcourir périodiquement ladite liste pour supprimer les entrées correspondant à un appareil dont on n'a pas reçu de message de signalisation pendant un temps donné. Selon un mode particulier de l'invention l'appareil possède en outre des moyens de notification de l'arrivée d'un nouvel appareil et du départ d'un appareil du réseau liés à l'ajout et à la suppression des entrées correspondantes dans la liste. L'invention sera mieux comprise, et d'autres particularités et avantages apparaîtront à la lecture de la description qui va suivre, la description faisant référence aux dessins annexés parmi lesquels: La figure 1 représente un schéma des entrées et sorties du module logique chargé de la mise en oeuvre de la méthode dans un exemple de réalisation de l'invention. La figure 2 représente l'architecture typique d'un appareil 15 implémentant la méthode. Pour résoudre le problème de la détection de l'insertion de nouveaux appareils sur le réseau, un module va être implémenté au-dessus de la couche IP des appareils. Ce module va être en charge de l'envoi répété de messages de signalisation sur le réseau. Ces messages vont signaler la présence de l'appareil sur le réseau aux autres appareils également connecté à ce réseau et compatibles avec cette méthode. Le module devra donc également écouter tous les messages de signalisation susceptibles d'être envoyés par ses pairs. Le module écoutant ces messages va donc recevoir périodiquement des ses pairs un message signalant leur présence sur le réseau. De cette façon il sera facile au module de maintenir une liste des appareils connectés au réseau. En effet il va suffire, lors de la réception d'un message de signalisation, de vérifier si l'émetteur du message est déjà dans la liste et s'il ne l'est pas de l'y rajouter. Le problème de la détection du départ du réseau des appareils va être abordé de la manière suivante. On va partir du principe que les modules, au sein des appareils, vont émettre les messages de signalisation selon une périodicité donnée. Par exemple, les messages de signalisation seront émis avec une première périodicité T1 pouvant être par exemple de 4 secondes. Ensuite, il suffira de mettre dans la liste des appareils connectés l'heure de réception du dernier message de signalisation qu'ils auront émis ou toute autre information d'horodatage. Dès lors, il sera possible de mettre en place un parcours périodique de cette liste, cette seconde périodicité T2 pouvant être de T1/2, soit par exemple de 2 secondes, et de considérer que tous les appareils dont on n'a pas reçu de message de signalisation pendant un temps donné T3, par exemple 2,5 * T, soit 10 secondes, ont quitté le réseau et les supprimer de la liste. Pour l'envoi de ces messages plusieurs alternatives sont possibles. Une première façon de faire est d'envoyer ces messages en diffusion générale sur le réseau ( Broadcast en anglais). De cette façon les messages émis sur le réseau vont être délivrés à tous les appareils présents sur le réseau, qu'ils soient compatibles ou non avec la méthode décrite. Une autre manière de faire est de définir une adresse de diffusion multiple ( multicast en anglais) et un port qui soit connus de tous. Ce peut être une adresse et un port bien connu défini auprès de l'IANA l'autorité gérant l'assignation de nombres pour Internet ( Inernet Assigned Number Authority en anglais) ou un paramètre commun à tous les appareils du réseau. La première solution étant préférée car limitant les risques d'erreur. Une fois cette adresse et ce port définis, tous les messages seront émis vers cette adresse de diffusion multiple, chaque appareil implémentant la méthode se devant d'écouter le trafic sur cette adresse de diffusion multiple. De cette façon seuls les appareils concernés vont recevoir les messages relatifs à ce protocole. Le choix de Ti, T2 et T3 va jouer sur la réactivité de la détection de l'arrivée et du départ des appareils du réseau. D'un autre côté, il va falloir tenir compte de l'encombrement du réseau par ces messages ainsi que de la fiabilité de la détection. En effet, l'utilisation de la diffusion multipoint ou de la diffusion générale va impliquer l'utilisation du protocole UDP ( User Datagram Protocol en anglais). Ce protocole ne garantit pas contre la perte de paquets, certains messages de signalisation sont donc susceptibles de se perdre. Donc plus Ti va être court, plus rapide seront les détections d'arrivée et de départ des appareils du réseau, mais plus nombreux seront les messages émis sur le réseau par cette méthode. Plus T2 va être court, plus rapide sera la détection du départ des appareils du réseau au détriment du temps de calcul dépensé pour faire le parcours de la liste. Plus T3 va être court, plus rapide sera la détection du départ des appareils du réseau, mais plus on augmentera le risque de détecter un faux départ suite à la perte d'un ou plusieurs messages de signalisation de la part d'un appareil. Les valeurs données sont donc indicatives et fonctionnent bien dans le cas d'un réseau IP au-dessus d'un lien physique Ethernet fiable et de grande bande passante. Un choix un peu plus long, nécessitant la non-réception de messages de signalisation de la part d'un appareil pendant un temps correspondant à plus de deux fois et demi la période d'émission T1 sera sans doute plus adapté dans le cas d'un réseau sans fil moins fiable. Pour ce qui est du format des messages, les adresses source et destination étant contenues dans l'entête IP du message, il n'est pas besoin de contenu particulier dans le corps du message. Le fait que le message soit envoyé sur l'adresse et le port réservé à cette méthode suffit à identifier ces paquets comme étant dédiés à la méthode. Il va de soi que l'on peut enrichir le contenu des messages sans sortir de l'invention, par exemple par un codage explicite de la méthode utilisée. La figure 1 schématise les entrées sorties d'un module logique référencé 1. Le module émet ses messages de signalisation et reçoit ceux provenant des autres appareils via le lien bidirectionnel référencé 6 avec le réseau référencé 8. Les messages de signalisation reçus lui permettent de maintenir à jour une liste, référencée 9, des émetteurs de ces messages et de l'heure de réception, ou d'émission, du dernier message reçu. Ce module notifie, dans l'exemple de réalisation décrit, l'arrivée d'un nouvel appareil à l'application référencé 7 via une émission d'événement référencée 2. Ici nous appelons application, tout logiciel pouvant être intéressé par ce type d'événement et s'exécutant sur l'appareil. Cette notification aura lieu lors de la réception d'un message de signalisation émis par un appareil non présent dans la liste des appareils connectés. L'appareil sera ajouté dans la liste à cette occasion. Un parcours régulier de la liste est effectué pour supprimer les émetteurs dont on n'a pas reçu de message de signalisation depuis un temps supérieur à un temps donné. A cette occasion un événement de départ du réseau est notifié, référence 3, à l'application. A tout moment, l'application peut envoyer une demande, référencée 4, au module en vue de l'obtention de la liste des appareils connectés. Cette liste lui est alors envoyée, référence 5. La figure 2 représente un exemple d'architecture générale d'un appareil, référencé 2.1, destiné à implémenter la méthode. Un tel appareil comporte une interface réseau, référencée 2.6, destinée à connecter l'appareil au réseau référencé 2.7. Il comporte également une mémoire permanente, référencée 2.5, destinée à stocker les programmes nécessaires à l'exécution de la méthode dont la pile gérant la communication IP, la couche de gestion de l'interface réseau ainsi que les programmes gérant les échanges de messages selon la méthode décrite. Ces programmes seront chargés dans la mémoire vive, référencée 2.3, pour l'exécution par le processeur central référencé 2.2. Tous ces éléments seront reliés entre eux par un bus de communication référencé 2.4. Il est évident pour l'homme du métier que cette architecture peut varier dans l'agencement de ces moyens et n'est qu'un exemple d'architecture d'un appareil à même d'implémenter la méthode. Il va de soi que l'invention, bien que décrite dans le cadre de messages envoyés en diffusion multipoint utilisant UDP, l'homme du métier pourra varier les modes d'émission et le protocole utilisé, par exemple ICMP ( Internet Control Message Protocol en anglais), sans sortir du cadre de l'invention. 2868643 8 REVENDICATIONS 1. Méthode de découverte, par un appareil destiné à être connecté à au moins un réseau IP, des appareils implémentant ladite méthode et connectés audit réseau, caractérisée en ce qu'elle comporte au moins les étapes suivantes: - l'appareil envoie de manière répétée et automatique des messages de signalisation sur le réseau IP destinés à annoncer la présence dudit appareil; - l'appareil découvre les autres appareils du réseau par l'écoute dudit réseau de manière à recevoir les messages de signalisation émis par les autres appareils implémentant ladite méthode et connectés audit réseau. 2. Méthode selon la revendication 1 où l'appareil maintient une 15 liste des appareils connectés dont il reçoit des messages de signalisation. 3. Méthode selon la revendication 2 où l'appareil stocke dans la liste, pour chaque appareil référencé, une information d'horodatage du dernier message de signalisation reçu en provenance de cet appareil. 4. Méthode selon la revendication 3 où, périodiquement, l'appareil supprime de la liste les appareils dont il n'a pas reçu de messages de signalisation pendant un temps donné. 5. Méthode selon la revendication 4 où l'appareil notifie l'arrivée et le départ d'un appareil quand il ajoute ou supprime une entrée de la liste. 6. Appareil destiné à être connecté à un réseau IP possédant des moyens d'émission répétée de messages de signalisation sur le réseau, des moyens de réception des messages de signalisation émis par les autres appareils sur le réseau, caractérisé en ce qu'il possède des moyens de stocker une liste des appareils dont il a reçu au moins un message de signalisation. 7. Appareil selon la revendication 6 possédant en outre des moyens de stockage de l'heure du dernier message de signalisation reçu en provenance d'un appareil dans ladite liste. 8. Appareil selon la revendication 7 possédant en outre des moyens pour parcourir périodiquement ladite liste pour supprimer les entrées correspondant à un appareil dont on n'a pas reçu de message de signalisation pendant un temps donné. 9. Appareil selon la revendication 8 possédant en outre des moyens de notification de l'arrivée d'un nouvel appareil et du départ d'un appareil du réseau liés à l'ajout et à la suppression des entrées correspondantes dans la liste.