Brevet FR2823329A1 — publié le 20021011

La présente invention concerne le filtrage de paquets de données reçus par un ordinateur. Les ordinateurs sont de nos jours fréquemment connectés, par l'intermédiaire de cartes d'interface et de bus de communication, par exemple de type Ethernete, à d'autres dispositifs, notamment d'autres ordinateurs au sein d'un réseau de communication, ces dispositifs véhiculant des informations sous forme de paquets de données. D'une manière générale, sur un tel ordinateur, lorsqu'un paquet de données est reçu par une carte d'interface, celle-ci émet un signal d'interruption. Ce signal prévient le processeur central ( CPU ) de l'ordinateur de la présence d'un paquet de données afin qu'il puisse prendre les mesures nécessaires à sa réception (ou prise en compte). L'interruption peut provoquer une suspension temporaire de la tâche en cours d'exécution par le processeur, qui exécute alors le sous-programme d'interruption associé. A la fin de l'exécution du sous-programme d'interruption, le processeur peut reprendre la tâche interrompue. Habituellement, les paquets de données ainsi reçus sont traités selon un protocole de communication (par exemple de type TCP/IP , initiales de Transmission Contro/Protocol/lntemet Protocol ) permettant d'effectuer un certain nombre de traitements sur les paquets, tels que la vérification de l'intégrité des données par calcul de totaux de contrôle (en anglais, checksums ), le réassemblage de paquets de données, la confirmation de bonne réception, et ainsi de suite. Parmi ces différentes tâches pouvant être effectuées selon les protocoles de communication, l'une d'elles consiste à déterminer, parmi toutes les applications clientes prises en charge par ledit ordinateur, celle à laquelle chaque paquet de données reçu est destiné ; cette tâche est appelée filtrage ou démultiplexage . Dans le cadre, par exemple, d'une architecture de communication par accès direct à un réseau informatique, on cherche à permettre aux applications clientes de recevoir les informations circulant sur le réseau avec un minimum de traitement préalable de ces informations au sein de l'ordinateur, de manière à ce que ces applications puissent elles-mêmes mettre en oeuvre leur propre protocole de communication. A cette fin, on utilise de manière classique de petits programmes d'identification appelés filtres ; le filtrage d'un paquet de données s'effectue en soumettant ce paquet à chaque filtre successivement, jusqu'à ce que le paquet soit identifié par un bon filtre, c'est-à-dire un filtre associé à l'application à laquelle ce paquet est destiné. On notera qu'il peut être commode dans certains cas d'associer plusieurs filtres à la même application ; la présente invention s'appliquant indifféremment quel que soit le nombre de ces filtres, on ne cherchera pas ci-dessous à faire la distinction, pour une application donnée, entre un filtre unique et des filtres multiples. Le but de la présente invention est de réduire le temps consacré globalement aux opérations de filtrage par l'ordinateur. On connaît divers procédés de filtrage visant le même but. Dans - le document intitulé (The Packet Filter : an Efficient Mechanism for User-Level Network Code de J. C. Mogul, R. F. Rashid et M. J. Acetta (Actes du onzième congrès de ACM SOSP, pages 39 à 51, novembre 1987), - le document intitulé The BSD Packet Fitter a New Architecture for User-Level Packet Capture de S. McCanne et V. Jacobson (Actes de la conférence technique USENIX, pages 259 à 169, San Diego, Californie, hiver 1993), et - le document intitulé Efficient Packet Demultiplexing for Multiple Endpoints and Large Messages de M. Yuhara, B. Bershad, C. Maeda et E. Moss (Actes de la conférence technique USENIX, hiver 1994), il est divulgué des procédés de filtrage dans lesquels on mesure, à des moments choisis, le taux de succès (ou activité ) de chaque filtre au cours d'une période écoulée de durée prédéterminée, en comptant simplement le nombre de paquets reçus qui étaient destinés à l'application correspondante au cours de cette période ; les filtres sont ensuite classés dans une liste par ordre de taux de succès décroissant. Ainsi, les applications recevant le plus fréquemment des paquets de données voient leurs filtres placés en tête de liste, chaque paquet de données étant soumis aux filtres successivement dans cet ordre jusqu'à ce qu'il passe avec succès le test associé à l'application à laquelle il est destiné. Dans le document intitulé PATHFINDER : a Pattem-Based Packet Classifier de M. L. Bailey, B. Gopal, M. A. Pagels, L. L. Peterson et P. Sarkar (Actes du premier symposium de l'OSDI, pages 115 à 123, novembre 1994), et dans le document intitulé (DPF : Fast, Flexible Message Demultiplexing using Dynamic Code Generation de D. R. Engler et M. F. Kaashoek (Actes de SIGCOMM'96, 1996), il est divulgué des procédés de filtrage dans lesquels chaque paquet de données soumis à des filtres successifs suit un parcours arborescent plutôt qu'une liste. Cependant, le placement des filtres sur cet arbre est ici aussi gouverné par l'activité relative de chaque filtre. Ainsi, dans tous ces procédés de filtrage connus, on classifie, d'une manière prédéterminée, les filtres auxquels chaque paquet va être soumis, et l'on déplace, à des moments choisis, les filtres au sein de cette classification en fonction de l'activité relative de chaque filtre, dans le but de réduire le temps moyen passé par l'ordinateur à filtrer chaque paquet reçu. Les procédés de filtrage précités reposent donc sur un reclassement dynamique des filtres. Ce principe est efficace, et il sera repris par la présente invention. Cependant, les procédés classiques supposent tous que l'activité de chaque filtre tend à être constante dans le temps, dans la mesure où ils prévoient que l'activité au cours de la période suivant la mesure sera proche de l'activité au cours de la période écoulée pour laquelle on vient d'effectuer les mesures d'activité. Or cette supposition est en pratique souvent contraire à la réalité des faits. En effet, généralement, les données destinées à une application donnée font partie d'un certain message (ou d'une certaine portion d'un message), et donc arrivent par rafales, chaque rafale correspondant à un message (ou à une portion de message). Ainsi, pendant la durée d'une rafale, il est vrai que les paquets de données sont généralement transmis avec une fréquence f plus ou moins constante (dans tout le présent mémoire, on fera référence, selon la commodité du moment, soit à la fréquence f d'arrivée, c'est-à-dire de réception, des paquets, soit à la périodicité T = 1/f qui est l'intervalle de temps séparant deux paquets successifs destinés à l'application considérée) ; par exemple, selon la norme IEEE-1394, les paquets de données isochrones sont émis à raison d'un paquet toutes les T = 125 f. ls. En revanche, entre deux telles rafales, la fréquence d'arrivée des paquets de données destinés à l'application considérée chute brutalement. Par exemple, dans le cas où l'ordinateur utilise le protocole TCP/IP, on assistera à une rafale de données lors de la réception d'un fichier transmis selon le protocole FTP (initiales de File Transfer Protocol ) ; entre deux envois de fichier, l'application FTP somnole . Comme autre exemple, dans le cas où l'ordinateur est un serveur de site Web utilisant le protocole HTTP (initiales de Hypertext Transfer Protocol ), on assistera à une rafale de données lors des opérations de mise à jour du contenu du site, par exemple en vue de la publication d'un quotidien d'information ; on assistera alors probablement, dans les quelques heures suivant cette mise à jour, à un accroissement temporaire de demandes de téléchargement de la part d'abonnés à ce quotidien, après quoi les applications concernées somnolent . Concernant les algorithmes classiques décrits succinctement cidessus, les conséquences de cet état de fait pour un filtre donné quelconque, juste après une rafale, sont les suivantes : - soit la mesure d'activité suivante intervient peu après, et donc, du fait de la moyenne opérée entre les arrivées de paquets pendant et après la rafale, le résultat de la mesure d'activité indique une valeur qui, bien qu'inférieure à la valeur mesurée précédemment pendant la rafale, est artificiellement élevée, de sorte que le filtre descend de quelques rangs dans la liste alors qu'en fait il devrait être placé tout en bout de queue, - soit la mesure d'activité suivante intervient longtemps après, et donc cette mesure d'activité trouvera bien une valeur quasi-nulle, mais en attendant que cette mesure intervienne, de nombreux paquets vont être testés inutilement puisque, par hypothèse, ils sont destinés à d'autres applications que celle considérée. L'invention a pour objet de remédier à ces inconvénients. A cet effet, l'invention concerne un procédé de filtrage de paquets de données reçus par un ordinateur, ledit filtrage servant à déterminer, pour chaque paquet de données reçu, l'application cliente à laquelle ledit paquet est destiné parmi toutes les applications prises en charge par ledit ordinateur, au moyen de programmes de test appelés filtres , ledit filtrage étant réalisé en classant lesdits filtres sur une liste d'appel, chaque filtre étant appelé à son tour sur ladite liste jusqu'à ce que ledit paquet de données passe un test avec succès, ledit procédé de filtrage étant remarquable en ce que - on subdivise ladite liste d'appel en au moins deux sous-listes, les filtres de la première de ces sous-listes, dite sous-liste d'éveil (620), précédant dans l'ordre d'appel les filtres de la seconde de ces sous-listes, dite sous-liste de somnolence (630), - on attache à chaque filtre de ladite sous-liste d'éveil (620) et de ladite sous-liste de somnolence (630) une grandeur appelée délai maximal D, - on classe, à l'initialisation, les filtres de la sous-liste d'éveil (620) par valeurs croissantes dudit délai maximal D, et en ce que, après chaque application d'un filtre à un paquet de données, - si ledit filtre est sur la sous-liste d'éveil (620), et si le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est supérieur au délai maximal D, on transfère alors le filtre dans ladite sous-liste de somnolence (630), et - si ledit filtre est sur la sous-liste de somnolence (630), et si le paquet de données qui vient d'être testé a passé ce test avec succès, et si en outre le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est inférieur au délai maximal D, on classe alors le filtre dans la sousliste d'éveil (620) au rang correspondant à sa valeur de D. Grâce à ces dispositions, on évite de placer en tête de liste des filtres pour lesquels on se trouve momentanément entre deux rafales. On augmente ainsi la probabilité que chaque, paquet de données testé trouve l'application à laquelle il est destiné après un petit nombre de tests, de sorte que, globalement, l'exécution du procédé de filtrage prend moins de temps que dans les procédés selon l'art antérieur. On peut d'ailleurs considérer que l'activité du filtre associé à une application pendant les rafales de paquets de données destinés à cette application est ici représentée par la valeur moyenne de 11D. Selon l'invention, on tient compte, pour chaque application, de la valeur de D qui lui est propre pour détecter aussi bien la fin de chaque rafale (signalant une baisse soudaine d'activité), que le début de chaque rafale (signalant une reprise soudaine d'activité). Lorsqu'on transfère, selon l'invention, un filtre de la sous-liste d'éveil à la sous-liste de somnolence, on pourra soit classer ce filtre dans la sous-liste de somnolence au rang correspondant à sa valeur de D, soit simplement le mettre en queue de liste. Selon des caractéristiques particulières, on effectue, à des instants prédéterminés tc, un reclassement (par valeurs croissantes de D) de l'ensemble des filtres situés sur la sous-liste d'éveil. Grâce à ces dispositions, on peut s'assurer que l'ordre des filtres de la sous-liste d'éveil correspond toujours fidèlement à leurs valeurs relatives de D : il suffit pour cela de prendre des instants successifs te suffisamment proches. De plus, on pourra ainsi reclasser adéquatement, le cas échéant, un filtre associé à une application recevant des paquets de manière invariablement régulière, c'est-à-dire un filtre qui demeure en permanence sur la sous-liste d'éveil ; en effet, le reclassement résultant du transfert selon l'invention des filtres de la sous-liste de somnolence à la sous-liste d'éveil, est inopérant pour un tel filtre. Il est clair que l'efficacité du procédé selon l'invention sera d'autant meilleure que, pour chaque application prise en charge par l'ordinateur, la valeur du délai maximal qui lui est associée sera choisie de façon réaliste. On notera à cet égard que dans les procédés classiques, tous les filtres, et donc toutes les applications prises en charge par l'ordinateur, sont traités a priori de manière identique, de sorte que les informations sur ces applications dont on pourrait disposer ne sont pas exploitées pour déterminer l'ordre des filtres de façon optimale. En revanche, selon l'invention, on examine, à l'initialisation de tout nouveau filtre placé sur la sous-liste d'éveil ou sur la sous-liste de somnolence, si l'application associée peut fournir des informations concernant une éventuelle fréquence caractéristique f de réception des paquets de données qui lui sont destinés. Pour certaines applications, la valeur de f sera bien connue (pas nécessairement d'ailleurs de manière très précise) a priori, comme par exemple dans le cas, mentionné ci-dessus, d'applications obéissant à la norme IEEE- 1394. Pour une telle application, il sera aisé de déterminer le délai maximal D du filtre associé (mais il pourrait s'avérer utile parfois de vérifier que la valeur fournie a priori était bien correcte). Pour les autres applications, la valeur de leur fréquence caractéristique sera mal connue, ou pire totalement inconnue, a priori. On pourra néanmoins mettre efficacement en oeuvre l'invention après avoir attribué, d'une manière ou d'une autre, une valeur initiale de D à chacun des filtres associés à ces applications, à condition de pouvoir ajuster chaque valeur de délai maximal de manière dynamique, c'est-à-dire, sur la base de l'activité réelle des filtres. Selon un mode de réalisation particulier, pour chaque filtre de la sous-liste d'éveil et de la sous-liste de somnolence, on donne au délai maximal D une valeur égale à Jò, où le nombre J est un facteur de fluctuations (en anglais, jittering factor ) supérieur à 1, et où le délai courant ô est égal, quand la périodicité T associée à l'application considérée n'est pas connue, au dernier intervalle de temps entre deux paquets destinés à cette application en cours de rafale. Grâce à ces dispositions, on peut prendre en compte les fluctuations éventuelles dans l'intervalle de temps séparant deux paquets successifs destinés à la même application en cours de rafale. De plus, on supplée, le cas échéant, au défaut de connaissance a priori de la périodicité de certaines des applications prises en charge par l'ordinateur. Quand la périodicité T associée à l'application considérée est connue, on peut commodément donner au délai courant ô une valeur égale à cette périodicité. Toutefois, en cas de doute sur la valeur de la périodicité fournie par l'application, on pourra par sécurité (mais au prix d'un alourdissement certain du procédé de filtrage), donner à Ù, ici aussi, une valeur égale au dernier intervalle de temps entre deux paquets destinés à cette application en cours de rafale. D'autre part, on pourra optimiser ce procédé de filtrage en choisissant, pour chaque filtre de la sous-liste d'éveil et de la sous-liste de somnolence, une valeur du facteur de fluctuations J adaptée aux caractéristiques connues propres à l'application associée, mais on pourra également, pour simplifier le dispositif, se contenter d'une valeur de J uniforme, en prenant simplement soin qu'elle soit suffisamment grande pour éviter des transferts prématurés de filtres de la sous-liste d'éveil à la sous-liste de somnolence. Selon un deuxième mode de réalisation de l'invention, pour chaque filtre de la sous-liste d'éveil et de la sous-liste de somnolence, on donne au délai maximal D une valeur simplement égale à la périodicité T associée à l'application considérée, après avoir attribué le cas échéant, à l'initialisation, une valeur prédéterminée en guise de périodicité T à celles de ces applications dont la périodicité n'est pas connue a priori. Grâce à ces dispositions, la mise en oeuvre du filtrage selon l'invention est particulièrement aisée. Il importe toutefois que la fréquence caractéristique f = 1/T de chaque filtre soit, en régime de croisière, inférieure ou égale à la fréquence effective de réception des paquets de données destinés à l'application correspondante. En effet, si la fréquence caractéristique attribuée à un filtre est trop grande, ce filtre ne pourra se maintenir dans la liste d'éveil pendant une rafale, et ne pourra donc pas bénéficier de l'invention. Selon donc une caractéristique particulièrement avantageuse de ce deuxième mode de réalisation, à chaque fois qu'un filtre est déplacé, comme expliqué succinctement ci-dessus, de la sous-liste d'éveil à la sous-liste de somnolence, on augmentera la valeur de sa périodicité T d'une quantité prédéterminée P, s'il s'avère qu'aucun paquet de données n'a passé le test correspondant avec succès depuis l'instant où ce filtre avait été placé dernièrement sur la sous-liste d'éveil. On pourra optimiser le système de filtrage selon ce deuxième mode de réalisation en choisissant, pour chaque filtre de la sous-liste d'éveil et de la sous-liste de somnolence, une valeur de l'incrément en périodicité E adaptée aux caractéristiques connues propres à l'application associée, cette valeur étant de préférence faible par rapport à la périodicité T ; mais on pourra également, pour simplifier le dispositif, se contenter d'une valeur de s uniforme. Dès lors, pour obtenir un fonctionnement optimal d'un dispositif selon l'invention, il suffit que la fréquence caractéristique de chaque filtre, bien que toujours inférieure à la fréquence effective de réception des paquets de données correspondants pendant les rafales, soit aussi proche que possible de cette fréquence effective. Dans ce but, selon une caractérjstique encore plus particulière de ce deuxième mode de réalisation de l'invention, pour chaque filtre de la sous-liste d'éveil et de la sous-liste de somnolence, - on mesure, pour des instants prédéterminés et tm2 choisis pendant que ledit filtre est sur la sous-liste d'éveil, et sur la durée (tm2-tm ?), l'intervalle moyen de réception entre deux paquets de données successifs destinés à l'application correspondante, et - ledit intervalle moyen devient la nouvelle valeur de la périodicité T de ce filtre. Pour tous les filtres à l'exception des éventuels filtres toujours éveillés mentionnés ci-dessus, il sera commode de prendre comme instant initial tu l'instant tt du dernier transfert du filtre de la sous-liste de somnolence à la sous-liste d'éveil. Autrement dit, on effectue, à des moments choisis, une mesure d'activité de chaque filtre, de manière semblable à ce qui est pratiqué dans les procédés classiques. Toutefois, à la différence de ces derniers, on n'effectue, selon l'invention, de mesures d'activité d'un filtre que pendant des rafales de paquets de données destinés à l'application correspondante. Grâce à toutes ces dispositions, le classement de chaque filtre sur la liste d'appel épouse étroitement l'activité de ce filtre dans les conditions effectives de fonctionnement de l'ordinateur concerné et des autres ordinateurs (formant tous ensemble, le cas échéant, un réseau de communication) auxquels ledit ordinateur concerné est relié, et le nombre moyen de filtres appelés par paquet de données reçu est minimisé. Selon un second aspect de l'invention, celle-ci concerne un dispositif de filtrage de paquets de données reçus par un ordinateur, ledit filtrage servant à déterminer, pour chaque paquet de données reçu, l'application cliente à laquelle ledit paquet est destiné parmi toutes les applications prises en charge par ledit ordinateur, au moyen de programmes de test, appelés filtres , stockés dans ledit dispositif de filtrage, ledit filtrage étant réalisé en classant lesdits filtres sur une liste d'appel, chaque filtre étant appelé à son tour sur ladite liste jusqu'à ce que ledit paquet de données passe un test avec succès, ledit dispositif de filtrage étant caractérisé en ce que - ladite liste d'appel comprend au moins deux sous-listes, les filtres de la première de ces sous-listes, dite sous-liste d'éveil , précédant dans l'ordre d'appel les filtres de la seconde de ces sous-listes, dite sous-liste de somnolence , - à chaque filtre de ladite sous-liste d'éveil et de ladite sous-liste de somnolence est attachée une grandeur appelée délai maximal D, ledit dispositif de filtrage étant apte, à l'initialisation, à classer les filtres de la sous-liste d'éveil par valeurs croissantes dudit délai maximal D, et étant en outre apte, après chaque application d'un filtre à un paquet de données, - à transférer ledit filtre dans ladite sous-liste de somnolence si le filtre est sur la sous-liste d'éveil et si le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est supérieur au délai maximal D, et -à classer ledit filtre dans la sous-liste d'éveil au rang correspondant à sa valeur de D si le filtre est sur la sous-liste de somnolence et si le paquet de données qui vient d'être testé a passé ce test avec succès, et si en outre le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est inférieur au délai maximal D. Selon des caractéristiques particulières, le dispositif de filtrage comprend en outre une interface applicative dans laquelle sont enregistrées diverses informations concernant les applications associées aux filtres de la sous-liste d'éveil et de la sous-liste de somnolence, et notamment, pour chacune de ces applications : - la périodicité T associée si elle est connue, et - le nombre ns de paquets de données destinés à cette application qui ont été reçus depuis le dernier transfert du filtre associé de la sous-liste de somnolence à la sous-liste d'éveil. D'autres caractéristiques particulières concernent les éventuels paquets de données reçus qui ont été testés sans succès par tous les filtres de la sous-liste d'éveil (620) et tous les filtres de la sous-liste de somnolence (630). Selon ces caractéristiques, le dispositif de filtrage est, soit apte à simplement supprimer ces paquets de données, soit, en variante, apte à transmettre ces paquets de données à une application, parmi les applications prises en charge par ledit ordinateur, qui a été désignée en tant qu'application par défaut . La présente invention vise également : - un ordinateur comportant au moins un dispositif tel que décrit succinctement ci-dessus, - un réseau de communication comprenant au moins un ordinateur tel que décrit succinctement ci-dessus, - un moyen de stockage permanent de données, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'invention, - un moyen de stockage de données amovibles, partiellement ou totalement, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'invention, et - un programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre l'un des procédés selon l'invention. Les avantages offerts par ces dispositifs, ordinateurs, réseaux de communication, moyens de stockage de données et programmes d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés selon l'invention. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 représente des couches protocolaires classiques acheminant un paquet de données au sein d'un hôte d'un réseau de communication, - la figure 2 représente de façon schématique un dispositif de filtrage selon l'invention, - la figure 3 montre la structure des données attachées, selon l'invention, à chaque paquet de données après sa réception par l'ordinateur, - la figure 4a montre la structure des filtres selon un premier mode de réalisation de l'invention, - la figure 4b montre la structure des filtres selon un deuxième mode de réalisation de l'invention, - la figure 5a représente un organigramme d'un procédé de filtrage selon le premier mode de réalisation de l'invention, - la figure 5b représente un organigramme d'un procédé de filtrage selon le deuxième mode de réalisation de l'invention, et - la figure 6 représente de manière simplifiée un ordinateur apte à mettre en oeuvre l'invention. La figure 1 représente de façon schématique une pile de protocoles mis en oeuvre dans un ordinateur fonctionnant comme récepteur, et généralement aussi comme source de données au sein d'un réseau de communication, dans lequel lesdites données sont véhiculées sous forme de paquets de données de longueur fixe ou variable. L'ordinateur (décrit en détail ci-dessous en référence à la figure 6) est connecté au reste du réseau par l'entremise d'une interface appropriée, par exemple un câble Ethernet ou un bus selon la norme IEEE-1394. L'en-tête de chaque paquet traversant ladite interface réseau est examiné par l'ordinateur ; si le paquet est destiné à cet ordinateur, ce dernier en admet une copie (ledit paquet peut être également destiné à d'autres ordinateurs). Le paquet sera traité par la couche réseau , par exemple du type IP ( Internet Protocol ), puis transmis à la couche transport , par exemple du type UDP ( UserDafagram Protocol , protocole sans connexion) ou TCP ( Transmission Control Protocol , protocole avec connexion). Le paquet a pour destination finale une application bien déterminée, désignée ici par APP , par exemple un système client/serveur de gestion des communications à distance tel que RPC ( Remote Procedure Call ), ou un serveur de pages Web HTTP ( /-/yperText Transfer Protocol ). La détermination de cette application de destination parmi celles offertes par l'ordinateur est effectuée à l'aide du dispositif de filtrage 600 selon l'invention, qui est représenté de façon schématique sur la figure 2. Le dispositif de filtrage 600 comprend notamment deux sous-listes de filtres : une sous-liste 620 dite sous-liste d'éveil et une sous-liste 630 dite sous-liste de somnolence . Chaque paquet entrant est examiné successivement par les filtres de la sous-liste d'éveil, qui sont classés par activités décroissantes. Ces activités sont déterminées pour chaque filtre comme expliqué en détail ci-dessous. Si le paquet de données échoue à tous les tests associés aux filtres de la sous-liste d'éveil 620, le paquet est ensuite examiné par les filtres de la sous-liste de somnolence 630. Le parcours des sous-listes est évidemment interrompu dès que l'on a ainsi identifié l'application à laquelle ledit paquet est destiné. On notera que, pour tout paquet donné, il ne peut y avoir qu'un seul filtre qui l'accepte (s'il en existait deux, leur classement sur la sous-liste d'éveil serait dépendant non seulement de la fréquence des paquets correspondants, mais aussi de l'historique des évènements depuis l'initialisation du réseau). En revanche, il n'est pas nécessaire que toutes les applications soient munies d'un filtre. On peut avoir une application par défaut , à laquelle on transmet les paquets qui n'ont été identifiés par aucun filtre. Selon un mode de réalisation préféré de l'invention, quand une nouvelle application est mise en place sur un hôte d'un réseau de communication, on inscrit dans une interface applicative 610 la fréquence caractéristique f prévue pour les paquets véhiculés par le réseau et destinés à être traités par cette application sur cet hôte du réseau, à condition naturellement que l'on dispose de cette information. A moins que cette application ne constitue ladite application par défaut, on va installer en même temps un filtre associé. Le dispositif de filtrage 600 est alors réamorcé, et l'on classe ce filtre dans la sous-liste d'éveil 620 en se référant aux informations fournies par l'interface applicative 610. Le classement du filtre sera ensuite, si nécessaire, réajusté dynamiquement conformément au procédé selon l'invention, comme expliqué en détail ci-dessous. La figure 3 montre la structure des données attachées, selon l'invention, à un paquet de données après sa réception par l'ordinateur. Quand un paquet de données est accepté par l'ordinateur, la carte réseau émet une interruption de réception. L'interruption de réception d'un paquet provoque la création d'un descripteur de paquet qui est placé dans une zone de réception constituée d'une zone de mémoires tampon ( buffer ring en anglais). Comme le montre la figure 3, le descripteur contient : - l'adresse et la longueur des données de message proprement dites, et - la valeur ta de l'instant de réception de ce paquet par l'ordinateur. Ensuite, le dispositif selon l'invention déclenche une interruption de filtrage servant à amorcer le traitement de ce paquet de données par le dispositif de filtrage 600. La figure 4a montre la structure d'un filtre selon un premier mode de réalisation de l'invention. Chaque filtre contient un programme de test associé à une application bien déterminée. D'autre part, le descripteur de filtre contient un certain nombre de données permettant le fonctionnement du dispositif 600 : - une étiquette F ( flag en anglais) identifiant le type d'application selon que la périodicité T est connue ou non ; par exemple, on pourra prendre F= 0 si Test inconnue, et F = 1 si Test connue, - le délai courant ö, qui est égal, soit à la périodicité T si celle-ci est connue (F = 1), soit, si la périodicité T n'est pas connue (F = 0), au dernier intervalle de temps entre deux paquets destinés à cette application en cours de rafale, - l'instant t, d'arrivée du dernier paquet ayant passé le test associé à ce filtre avec succès, et - le nombre ns de paquets ayant passé le test associé à ce filtre avec succès depuis le dernier transfert du filtre de la sous-liste de somnolence 630 à la sous-liste d'éveil 620. Ce nombre ns est utilisé, selon une caractéristique particulière de ce premier mode de réalisation, par l'application correspondante pour savoir quelle est la longueur moyenne d'une rafale de paquets qui lui sont destinés. La valeur de n, est transmise à l'application via l'interface applicative 610. La figure 4b montre la structure d'un filtre selon un deuxième mode de réalisation de l'invention. Chaque filtre contient un programme de test associé à une application bien déterminée. D'autre part, le descripteur de filtre contient un certain nombre de données permettant le fonctionnement du dispositif 600 : - la périodicité T du filtre, c'est-à-dire l'intervalle moyen d'arrivée de paquets destinés à l'application correspondante pendant les rafales de tels paquets, - l'instant tt où, pour la dernière fois, le filtre a été transféré de la sousliste de somnolence à la sous-liste d'éveil, - l'instant t, d'arrivée du dernier paquet ayant passé le test associé à ce filtre avec succès, et - le nombre ns de paquets ayant passé le test associé à ce filtre avec succès depuis le dernier transfert du filtre de la sous-liste de somnolence 630 à la sous-liste d'éveil 620. Comme dans le premier mode de réalisation, le nombre n, peut être utilisé, selon une caractéristique particulière de ce deuxième mode de réalisation, par l'application correspondante pour savoir quelle est la longueur moyenne d'une rafale de paquets qui lui sont destinés, cette information lui étant fournie par l'entremise de l'interface applicative 610. Mais ce même nombre peut jouer, dans ce deuxième mode de réalisation, un rôle supplémentaire en liaison avec la mesure d'activité des filtres, comme expliqué en détail ci-dessous en référence à ce deuxième mode de réalisation de l'invention. La figure 5a représente les étapes principales d'un procédé de filtrage selon le premier mode de réalisation de l'invention, dans lequel on a choisi par commodité une valeur uniforme du facteur de fluctuations J. Suite à la réception d'une interruption de filtrage, on commence, à l'étape 401, par ouvrir la sous-liste d'éveil 620, que l'on va ensuite explorer selon une boucle contrôlée par l'étape 402. Tant qu'il reste encore des filtres sur la sous-liste d'éveil, et tant qu'on n'a pas encore identifié l'application à laquelle le paquet de données considéré est destiné, on appelle, à l'étape 403, le filtre suivant sur la sous-liste d'éveil, de manière à appliquer, à l'étape 404, le programme de test qu'il contient audit paquet de données. Si le paquet considéré passe le test avec succès, cela signifie que l'on a identifié l'application à laquelle ce paquet est destiné. On va donc transmettre, à l'étape 412, le paquet à cette application, avant de fermer la sous-liste d'éveil et de mettre fin au procédé de filtrage. Toutefois, avant de faire cela, on met d'abord à jour les données relatives au présent filtre. A l'étape 409, on vérifie si l'on est encore en cours de rafale, en comparant l'instant ta d'arrivée du paquet considéré avec l'instant t, d'arrivée du dernier paquet ayant passé avec succès le test associé à ce filtre. Si l'intervalle de temps entre ces deux instants est inférieur à J-8, on considère que la rafale associée à ce filtre n'est pas terminée, et, à l'étape 410, l'on donne à tl la valeur ta et l'on augmente d'une unité la valeur de ns ; de plus, si le filtre considéré correspond à une application de périodicité inconnue (étape 406), l'on remet à jour la valeur du délai courant 8 à l'étape 407 juste avant d'effectuer ladite étape 410. Si en revanche la rafale est terminée, on transfère, à l'étape 411, le filtre dans la sous-liste de somnolence après avoir mis à jour sa valeur de ti. On peut alors passer à ladite étape finale 412. Remontant à l'étape 404, considérons la suite des étapes dans le cas où le paquet considéré a échoué à ce test. On sait alors que l'on doit continuer à rechercher l'application à laquelle le paquet de données est destiné, en appelant le filtre suivant. Mais avant de faire cela, on examine, comme ci- dessus, la situation du présent filtre. A l'étape 405, on compare ta et tu. Si l'intervalle de temps entre ces deux instants est inférieur à Jo, on considère que la rafale associée à ce filtre n'est pas terminée (quoique le paquet considéré ne fasse pas partie de cette rafale), et l'on passe directement au filtre suivant en revenant à l'étape 402. Si en revanche l'intervalle de temps entre ces deux instants est supérieur à Jo, on considère que la rafale associée à ce filtre est terminée, et l'on va donc, avant de passer au filtre suivant, transférer, à l'étape 408, le présent filtre dans la sous-liste de somnolence. Si l'on épuise de la sorte la liste d'éveil sans trouver l'application à laquelle le paquet considéré est destiné, on passe, à l'étape 413, à la liste de somnolence 630, que l'on va ensuite explorer selon une boucle contrôlée par l'étape 414. Tant qu'il reste encore des filtres sur cette liste, et tant qu'on n'a pas encore identifié l'application à laquelle le paquet de données considéré est destiné, on appelle, à l'étape 415, le filtre suivant sur la liste de somnolence, de manière à appliquer, à l'étape 417, le programme de test qu'il contient audit paquet de données. Si le paquet considéré passe le test avec succès, on va transmettre, à l'étape 412, le paquet à cette application, avant de fermer la sous-liste de somnolence et de mettre fin au procédé de filtrage. Toutefois, comme cidessus, on met d'abord à jour les données relatives au présent filtre. A l'étape 418, on compare l'instant ta d'arrivée du paquet considéré avec l'instant ti d'arrivée du dernier paquet ayant passé avec succès le test associé à ce filtre. Si l'intervalle de temps entre ces deux instants est inférieur à Jo, on considère qu'une rafale associée à ce filtre a commencé (en fait déjà avec le paquet précédent). Par conséquent, à l'étape 419, on transfère le filtre dans la sous-liste d'éveil 620 au rang correspondant à sa valeur de , après avoir mis à jour la valeur de t est remis à zéro la valeur de ns ; de plus, si le filtre considéré correspond à une application de périodicité inconnue (étape 421), l'on remet à jour la valeur du délai courant å à l'étape 422 juste avant d'effectuer ladite étape 419. Si en revanche l'intervalle de temps entre ces deux instants est supérieur à Jo, on se contente, à l'étape 420, de mettre à jour t,. On peut alors passer à ladite étape finale 412. Remontant à l'étape 417, en cas d'échec au test correspondant, on est ramené à l'étape 414, et le procédé se poursuit comme on vient de le décrire. Selon des caractéristiques particulières de ce mode de réalisation, on a prévu, ne serait-ce que par sécurité, que si l'on arrive au bout de la sousliste de somnolence sans avoir encore trouvé l'application à laquelle le paquet considéré est destiné, l'on transmet ce paquet, à l'étape 416, à une certaine application choisie pour être l'application par défaut . Outre son rôle éventuel de filet de sécurité , une telle application par défaut sera particulièrement utile dans les cas où l'on souhaite mettre en place un traitement prédéterminé (par exemple, accéléré) réservé aux paquets de données destinés à certaines des applications prises en charge par l'ordinateur : on pourra alors utiliser le procédé de filtrage selon l'invention pour les filtres associés à ces applications recevant un traitement particulier, et l'application par défaut comprendra un traitement ordinaire des autres paquets de données reçus. En variante, on pourrait, à l'étape 416, simplement supprimer le paquet, et, si on le souhaite, prévoir l'émission d'un signal d'erreur. La figure 5b représente les étapes principales d'un procédé de filtrage selon le deuxième mode de réalisation de l'invention, dans lequel on a choisi par commodité une valeur uniforme de l'incrément en périodicité s. Suite à la réception d'une interruption de filtrage, on commence, à l'étape 501, par ouvrir la sous-liste d'éveil 620, que l'on va ensuite explorer selon une boucle contrôlée par l'étape 502. Tant qu'il reste encore des filtres sur la sous-liste d'éveil, et tant qu'on n'a pas encore identifié l'application à laquelle le paquet de données considéré est destiné, on appelle, à l'étape 503, le filtre suivant sur la sous-liste d'éveil, de manière à appliquer, à l'étape 504, le programme de test qu'il contient audit paquet de données. Si le paquet considéré passe le test avec succès, cela signifie que l'on a identifié l'application à laquelle ce paquet est destiné. On va donc transmettre, à l'étape 512, le paquet à cette application, avant de fermer la sous-liste d'éveil et de mettre fin au procédé de filtrage. Toutefois, avant de faire cela, on met d'abord à jour les données relatives au présent filtre. A l'étape 509, on vérifie si l'on est encore en cours de rafale, en comparant l'instant ta d'arrivée du paquet considéré avec l'instant t, d'arrivée du dernier paquet ayant passé avec succès le test associé à ce filtre. Si l'intervalle de temps entre ces deux instants est inférieur à T, on considère que la rafale associée à ce filtre n'est pas terminée, et, à l'étape 510, l'on donne à t, la valeur ta et l'on augmente d'une unité la valeur de n,. Si en revanche la rafale est terminée, on transfère, à l'étape 511, le filtre dans la sous-liste de somnolence après avoir mis à jour sa valeur de fI. On peut alors passer à ladite étape finale 512. Remontant à l'étape 504, considérons la suite des étapes dans le cas où le paquet considéré a échoué à ce test. On sait alors que l'on doit continuer à rechercher l'application à laquelle le paquet de données est destiné, en appelant le filtre suivant. Mais avant de faire cela, on examine, comme cidessus, la situation du présent filtre, et l'on met à jour, le cas échéant, les données de son descripteur. A l'étape 505, on compare ta et tu. Si l'intervalle de temps entre ces deux instants est inférieur à T, on considère que la rafale associée à ce filtre n'est pas terminée (quoique le paquet considéré ne fasse pas partie de cette rafale), et l'on passe directement au filtre suivant en revenant à l'étape 502. Si en revanche l'intervalle de temps entre ces deux instants est supérieur à T, on en déduit que la rafale associée à ce filtre est terminée (à condition que la périodicité T soit correcte), et l'on va donc, avant de passer au filtre suivant, transférer, à l'étape 508, le présent filtre dans la sous-liste de somnolence. Avant d'effectuer ce transfert, toutefois, on vérifie, à l'étape 506, si un paquet précédent a passé le test associé à ce filtre avec succès depuis le dernier transfert du filtre de la sous-liste de somnolence vers la sous-liste d'éveil : en effet, si l'ordinateur n'a pas reçu un tel paquet, on en conclut que la périodicité T que l'on a attribuée à ce filtre était en fait trop basse, et l'on augmente donc, à l'étape 507, cette périodicité d'une valeur égale à l'incrément en périodicité s. Si l'on épuise de la sorte la liste d'éveil sans trouver l'application à laquelle le paquet considéré est destiné, on passe, à l'étape 513, à la liste de somnolence 630, que l'on va ensuite explorer selon une boucle contrôlée par l'étape 514. Tant qu'il reste encore des filtres sur cette liste, et tant qu'on n'a pas encore identifié l'application à laquelle le paquet de données considéré est destiné, on appelle, à l'étape 515, le filtre suivant sur la liste de somnolence, de manière à appliquer, à l'étape 517, le programme de test. qu'il contient audit paquet de données. Si le paquet considéré passe le test avec succès, on va transmettre, à l'étape 512, le paquet à cette application, avant de fermer la sous-liste de somnolence et de mettre fin au procédé de filtrage. Toutefois, comme cidessus, on met d'abord à jour les données relatives au présent filtre. A l'étape 518, on compare l'instant ta d'arrivée du paquet considéré avec l'instant t, d'arrivée du dernier paquet ayant passé avec succès le test associé à ce filtre. Si l'intervalle de temps entre ces deux instants est inférieur à T, on considère qu'une rafale associée à ce filtre a commencé (en fait déjà avec le paquet précédent). Par conséquent, à l'étape 519, on transfère le filtre dans la sous-liste d'éveil 620 au rang correspondant à sa périodicité T, après avoir remis à jour la valeur de ti, remis à zéro la valeur de ns, et donné à tt (instant du transfert) la valeur ta. Si en revanche l'intervalle de temps entre ces deux instants est supérieur à T, on se contente, à l'étape 520, de mettre à jour t. On peut alors passer à ladite étape finale 512. Remontant à l'étape 517, en cas d'échec au test correspondant, on est ramené à l'étape 514, et le procédé se poursuit comme on vient de le décrire. Selon des caractéristiques particulières de ce deuxième mode de réalisation, on a prévu, pour les raisons indiquées en référence au premier mode de réalisation, que si l'on arrive au bout de la sous-liste de somnolence sans avoir encore trouvé l'application à laquelle le paquet considéré est destiné, l'on transmet ce paquet, à l'étape 516, à une certaine application choisie pour être l'application par défaut . En variante, on pourrait, à l'étape 516, simplement supprimer le paquet, et, si on le souhaite, prévoir l'émission d'un signal d'erreur. En plus des étapes illustrées sur la figure 5b, selon des caractéristiques préférentielles de ce deuxième mode de réalisation, on effectue, à des instants prédéterminés tm, une mesure des périodicités T des filtres (ou de certains filtres prédéterminés) classés dans la sous-liste d'éveil 620. La périodicité de chacun de ces filtres est simplement calculée selon la formule T = (tn-tt) lns, et la valeur de T est remise à jour dans le descripteur du filtre. Toutefois, s'il existe des filtres associés à une application recevant des paquets de manière invariablement régulière, c'est-à-dire des filtres qui ne somnolent jamais, il faudra organiser pour de tels filtres un planning de mesure plus compliqué pour calculer leur périodicité effective. De plus, pour ces filtres, le mécanisme de reclassement décrit en référence aux figures 5a et 5b est inopérant, car il intervient au moment du transfert des filtres de la sous-liste de somnolence 630 à la sous-liste d'éveil 620. Il est donc conseillé d'effectuer, à des instants prédéterminés te, un reclassement (par ordre d'activité décroissante) de l'ensemble des filtres situés sur la sous-liste d'éveil 620. Ce reclassement peut par ailleurs s'avérer utile pour d'autres modes de réalisation de l'invention. La figure 6 représente le schéma synoptique d'un ordinateur 200 connecté à un réseau 221 de type Ethernet ou de type Réseau Téléphonique Commuté, par exemple. Cet ordinateur 200 peut éventuellement être intégré dans un équipement de type multimedia tel qu'une imprimante, un scanner, un télécopieur (fax), un appareil photographique, ou une caméra. L'ordinateur 200 comporte, reliés entre eux par une architecture de communication 202 (par exemple un bus d'adresses et de données) : - des horloges 222, - un contrôleur d'entrée/sortie 207, relié, par l'intermédiaire d'une interface réseau 220 (par exemple le périphérique réseau dit Fast Ethernet 10/100"TULIP"DEC21140A ) au réseau 221, - un contrôleur d'interruption 208, - une unité centrale de traitement 206, - un lecteur de disquette 203, adapté à lire et à écrire sur des disquettes 212, -un écran 209, - un clavier 210, - une mémoire vive RAM 204, et - une mémoire morte ROM 205. Tous les composants illustrés en figure 6 sont bien connus du spécialiste des circuits de communication à processeur, et plus généralement des circuits de traitement de l'information. Ils ne seront donc pas détaillés ici. L'unité centrale 206 est, en outre, adaptée à mettre en oeuvre le procédé de l'invention. La mémoire vive 204 conserve, dans des registres qui, par commodité, portent chacun le même nom que les données qu'il contient : - un registre réception dans lequel est conservée une table (ou une liste) de descripteurs de réception, - un registre paquets dans lequel sont conservés les paquets à filtrer (voir la figure 3), - un registre filtres dans lequel sont conservées les valeurs actuelles des données de tous les filtres du dispositif (voir les figures 4a et 4b), - un registre liste~d'éveil dans lequel est conservé une table ordonnée des filtres présentement sur la liste d'éveil, et - un registre liste-somnolence dans lequel est conservé une table ordonnée des filtres présentement sur la liste de somnolence. La mémoire morte 205 conserve, dans des registres qui, par commodité portent, chacun, le même nom que les données qu'il contient : - un registre programme dans lequel est conservé le programme de fonctionnement de l'unité centrale 206, et - un registre global dans lequel sont conservées les valeurs de divers paramètres utilisés par le dispositif de filtrage 600, tels que les instants te (ou des paramètres équivalents) auxquels on reclasse les filtres situés sur la sous-liste d'éveil 620, et les valeurs de divers paramètres dépendant du mode de réalisation choisi, tels que le facteur de fluctuations J ou l'incrément en périodicité E (quand leur valeur est la même pour toutes les applications), ainsi que les instants tm (ou des paramètres équivalents) auxquels l'on effectue les mesures d'activité des filtres situés sur la sous-liste d'éveil 620. La mémoire morte 205 constitue un moyen de stockage d'informations lisibles par un microprocesseur, conservant des instructions d'un programme informatique et permettant la mise en oeuvre du procédé de l'invention. Selon une variante, la mémoire morte 205 est amovible, partiellement ou totalement, et comporte, par exemple, une bande magnétique, une mémoire flash, une disquette ou un disque compact à mémoire figée (CD-ROM). La présente invention ne se limite pas aux modes de réalisation décrits ci-dessus : en fait, l'homme de l'art pourra mettre en oeuvre diverses variantes de l'invention tout en restant à l'intérieur de la portée des revendications ci-jointes. Par exemple, il peut arriver en pratique que certaines des applications prises en charge par l'ordinateur soient des applications considérées comme prioritaires, en ce sens qu'il est utile, ou même indispensable, pour le bon fonctionnement du système informatique que les paquets destinés à une telle application lui soient transmis le plus rapidement possible, même si leur fréquence caractéristique est relativement basse. On pourra traiter une telle situation, dans le cadre de la présente invention, en mettant en place une sous-liste supplémentaire, dite sous-liste de priorité : tout paquet de données reçu par l'ordinateur sera alors testé par les filtres prioritaires placés sur cette sous-liste avant d'être (en cas d'échec) testés par les filtres de la sous-liste d'éveil 620 ; de plus, les filtres prioritaires seront classés sur cette sous-liste de priorité par ordre décroissant de priorité, et y resteront en permanence (notamment, ils ne seront jamais transférés vers d'autres listes). L'exigence de traitement prioritaire sera ainsi satisfaite au prix, inévitablement, d'une certain ralentissement du système de filtrage. De manière plus générale, on pourra prévoir, outre les dispositions de la présente invention, des mécanismes permettant d'accélérer le système de filtrage en tirant parti judicieusement des propriétés particulières de telle ou telle application. Par exemple, si, pour une application donnée, il est connu que le nombre de paquets formant une rafale est invariable d'une rafale à l'autre, il suffira, pour déterminer les instants où le filtre associé doit être transféré de la sous-liste d'éveil à la sous-liste de somnolence, de surveiller la valeur de ns : le filtre sera transféré vers la sous-liste de somnolence dès que ns deviendra égal à ladite longueur de rafale connue ; d'autre part, ce filtre sera replacé sur la sous-liste d'éveil (avec une valeur de ? s égaie à 1) dès qu'un paquet de données passera le test correspondant avec succès. On pourra ainsi simplifier l'algorithme pour les applications concernée, et gagner du temps globalement sur le système de filtrage, notamment en évitant les mesures de délais entre paquets successifs. REVENDICATIONS 1. Procédé de filtrage de paquets de données reçus par un ordinateur, ledit filtrage servant à déterminer, pour chaque paquet de données reçu, l'application cliente à laquelle ledit paquet est destiné parmi toutes les applications prises en charge par ledit ordinateur, au moyen de programmes de test appelés filtres , ledit filtrage étant réalisé en classant lesdits filtres sur une liste d'appel, chaque filtre étant appelé à son tour sur ladite liste jusqu'à ce que ledit paquet de données passe un test avec succès, ledit procédé de filtrage étant caractérisé en ce que - on subdivise ladite liste d'appel en au moins deux sous-listes, les filtres de la première de ces sous-listes, dite sous-liste d'éveil (620), précédant dans l'ordre d'appel les filtres de la seconde de ces sous-listes, dite sous-liste de somnolence (630), - on attache à chaque filtre de ladite sous-liste d'éveil (620) et de ladite sous-liste de somnolence (630) une grandeur appelée délai maximal D, - on classe, à l'initialisation, les filtres de la sous-liste d'éveil (620) par valeurs croissantes dudit délai maximal D, et en ce que, après chaque application d'un filtre à un paquet de données, - si ledit filtre est sur la sous-liste d'éveil (620), et si le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est supérieur au délai maximal D, on transfère alors le filtre dans ladite sous-liste de somnolence (630), et - si ledit filtre est sur la sous-liste de somnolence (630), et si le paquet de données qui vient d'être testé a passé ce test avec succès, et si en outre le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est inférieur au délai maximal D, on classe alors le filtre dans la sousliste d'éveil (620) au rang correspondant à sa valeur de D. 2. Procédé de filtrage selon la revendication 1, caractérisé en ce que, lorsqu'on transfère un filtre de la sous-liste d'éveil (620) à la sous-liste de somnolence (630), on classe ce filtre dans la sous-liste de somnolence (630) au rang correspondant à sa valeur de D. 3. Procédé de filtrage selon la revendication 1, caractérisé en ce que, lorsqu'on transfère un filtre de la sous-liste d'éveil (620) à la sous-liste de somnolence (630), on met ce filtre en queue de liste. 4. Procédé de filtrage selon l'une quelconque des revendications précédentes, caractérisé en ce que l'on effectue, à des instants prédéterminés te, un reclassement (par valeurs croissantes de D) de l'ensemble des filtres situés sur la sous-liste d'éveil (620). 5. Procédé de filtrage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, si ledit paquet de données reçu a été testé sans succès par tous les filtres de la sous-liste d'éveil (620) et tous les filtres de la sous-liste de somnolence (630), ce paquet de données est supprimé. 6. Procédé de filtrage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, si ledit paquet de données reçu a été testé sans succès par tous les filtres de la sous-liste d'éveil (620) et tous les filtres de la sous-liste de somnolence (630), ce paquet de données est transmis à une application choisie en tant qu'application par défaut. 7. Procédé de filtrage selon l'une quelconque des revendications précédentes, caractérisé en ce que, pour chaque filtre de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630), on donne audit délai maximal D une valeur égale à Jo, où le nombre J est un facteur de fluctuations supérieur à 1, et où le délai courant 8 est égal, quand la périodicité T associée à l'application considérée n'est pas connue, au dernier intervalle de temps entre deux paquets destinés à cette application en cours de rafale. 8. Procédé de filtrage selon la revendication 7, caractérisé en ce que, quand la périodicité T associée à l'application considérée est connue, on donne au délai courant 6 une valeur égale à cette périodicité T. 9. Procédé de filtrage selon la revendication 7, caractérisé en ce que l'on donne au délai courant ô une valeur égale au dernier intervalle de temps entre deux paquets destinés à l'application considérée en cours de rafale, même si la périodicité T associée à l'application considérée est connue. 10. Procédé de filtrage selon l'une quelconque des revendications 1 à 9, caractérisé en ce que l'on choisit, pour chaque filtre de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630), une valeur du facteur de fluctuations J adaptée aux caractéristiques connues propres à l'application associée. 11. Procédé de filtrage selon l'une quelconque des revendications 1 à 9, caractérisé en ce que l'on choisit une valeur du facteur de fluctuations J uniforme pour tous les filtres de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630). 12. Procédé de filtrage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que, pour chaque filtre de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630), on donne au délai maximal D une valeur égale à la périodicité T associée à l'application considérée, après avoir attribué le cas échéant, à l'initialisation, une valeur prédéterminée en guise de périodicité T à celles de ces applications dont la périodicité n'est pas connue a priori. 13. Procédé de filtrage selon la revendication 12, caractérisé en ce que, à chaque fois qu'un filtre est déplacé de la sous-liste d'éveil (620) à la sous-liste de somnolence (630), on augmente la valeur de sa périodicité T d'une quantité prédéterminée 8 s'il s'avère qu'aucun paquet de données n'a passé le test correspondant avec succès depuis l'instant où ce filtre avait été placé dernièrement sur la sous-liste d'éveil (620). 14. Procédé de filtrage selon la revendication 13, caractérisé en ce l'on choisit, pour chaque filtre de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630), une valeur de l'incrément en périodicité 8 adaptée aux caractéristiques connues propres à l'application associée. 15. Procédé de filtrage selon la revendication 13, caractérisé en ce l'on choisit une valeur de l'incrément en périodicité s uniforme pour tous les filtres de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630). 16. Procédé de filtrage selon l'une quelconque des revendications 12 à 15, caractérisé en ce que, pour chaque filtre de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630), - on mesure, pour des instants prédéterminés tml et tm2 choisis pendant que ledit filtre est sur la sous-liste d'éveil (620), et sur la durée (tm2-), l'intervalle moyen de réception entre deux paquets de données successifs destinés à l'application correspondante, et - ledit intervalle moyen devient la nouvelle valeur de la périodicité T de ce filtre. 17. Dispositif de filtrage de paquets de données reçus par un ordinateur, ledit filtrage servant à déterminer, pour chaque paquet de données reçu, l'application cliente à laquelle ledit paquet est destiné parmi toutes les applications prises en charge par ledit ordinateur, au moyen de programmes de test, appelés filtres , stockés dans ledit dispositif de filtrage, ledit filtrage étant réalisé en classant lesdits filtres sur une liste d'appel, chaque filtre étant appelé à son tour sur ladite liste jusqu'à ce que ledit paquet-de données passe un test avec succès, ledit dispositif de filtrage (600) étant caractérisé en ce que - ladite liste d'appel comprend au moins deux sous-listes, les filtres de la première de ces sous-listes, dite sous-liste d'éveil (620), précédant dans l'ordre d'appel les filtres de la seconde de ces sous-listes, dite sous-liste de somnolence (630), - à chaque filtre de ladite sous-liste d'éveil (620) et de ladite sous-liste de somnolence (630) est attachée une grandeur appelée délai maximal D, ledit dispositif de filtrage (600) étant apte, à l'initialisation, à classer les filtres de la sous-liste d'éveil (620) par valeurs croissantes dudit délai maximal D, et étant en outre apte, après chaque application d'un filtre à un paquet de données, - à transférer ledit filtre dans ladite sous-liste de somnolence (630) si le filtre est sur la sous-liste d'éveil (620) et si le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est supérieur au délai maximal D, et - à classer ledit filtre dans la sous-liste d'éveil (620) au rang correspondant à sa valeur de D si le filtre est sur la sous-liste de somnolence (630) et si le paquet de données qui vient d'être testé a passé ce test avec succès, et si en outre le temps écoulé depuis qu'un paquet de données précédent a passé ce test avec succès est inférieur au délai maximal D. 18. Dispositif de filtrage selon la revendication 17, caractérisé en ce qu'il comprend en outre une interface applicative (610) dans laquelle sont enregistrées diverses informations concernant les applications associées aux filtres de la sous-liste d'éveil (620) et de la sous-liste de somnolence (630), et notamment, pour chacune de ces applications : - la périodicité T associée si elle est connue, et - le nombre ns de paquets de données destinés à cette application qui ont été reçus depuis le dernier transfert du filtre associé de la sous-liste de somnolence (630) à la sous-liste d'éveil (620). 19. Dispositif de filtrage selon la revendication 17 ou la revendication 18, caractérisé en ce qu'il est apte à supprimer tout paquet de données reçu qui a été testé sans succès par tous les filtres de la sous-liste d'éveil (620) et tous les filtres de la sous-liste de somnolence (630). 20. Dispositif de filtrage selon la revendication 17 ou la revendication 18, caractérisé en ce que, une application parmi les applications prises en charge par ledit ordinateur ayant été désignée en tant qu'application par défaut , ledit dispositif est apte à transmettre à ladite application par défaut tout paquet de données reçu qui a été testé sans succès par tous les filtres de la sous-liste d'éveil (620) et tous les filtres de la sous-liste de somnolence (630). 21. Ordinateur (200), caractérisé en ce qu'il comporte un dispositif selon l'une quelconque des revendications 17 à 20. 22. Réseau de communication, caractérisé en ce qu'il comprend au moins un ordinateur selon la revendication 21. 23. Moyen de stockage permanent de données, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 16. 24. Moyen de stockage de données amovibles, partiellement ou totalement, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 16. 25. Programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre un procédé selon l'une quelconque des revendications 1 à 16.