Brevet FR2925190A1 — publié le 20090619

Procédé et dispositif de communication entre plusieurs interfaces de connexion. La présente invention se rapporte à la communication entre plusieurs 5 interfaces de connexion dans un réseau de communication. Elle trouve une application dans tout processus qui reçoit des messages ou données en provenance de plusieurs sources via des réseaux de communication de type Internet et fonctionnant selon des protocoles tels que 10 TCP (� Transport Control Protocol �) ou équivalents. Généralement, une interface de connexion, appelée encore � socket � en anglo-saxon, comprend une liste-réception répertoriant des mémoires tampon contenant le flux de données reçues et une liste-émission répertoriant des 15 mémoires tampons contenant le flux de données à émettre. Les liste-réception et liste-émission sont dites � doublement chainées � dans la mesure où les mémoires tampon qui les constituent possèdent chacune une structure comprenant un pointeur-précédent indiquant la mémoire tampon 20 qui précède la mémoire tampon courante dans la liste correspondante et un second pointeur-suivant indiquant la mémoire tampon qui suit la mémoire tampon courante dans la liste correspondante. Avec une seule interface de connexion le processus peut recevoir les 25 messages ou les données en attendant leur arrivée dans la liste-réception de ladite interface. Avec plusieurs interfaces de connexion il est nécessaire d'exécuter d'abord une analyse cyclique des listes-réception pour retrouver les interfaces de 30 connexion ayant reçu des messages destinés à être lus. Plusieurs solutions connues, notamment celles dénommées � select �, � poli �, � kqueue �, � epoll � sont proposées pour mettre en oeuvre cette d'analyse. Ces solutions connues sont relativement satisfaisantes mais ne tiennent pas compte de l'ordre d'arrivée des messages et impliquent un travail supplémentaire. 40 II en résulte une dégradation importante des performances du réseau, cette dégradation étant d'autant plus importante que le nombre de sockets à lire est grand, par exemple supérieur à 1000. La présente invention remédie à cet inconvénient. 45 Elle porte sur un dispositif de communication entre plusieurs interfaces de connexion dans un réseau de communication dans lequel chaque interface de connexion comprend une liste-réception répertoriant des mémoires tampon contenant le flux de données reçues, lesdites mémoires tampon ayant 50 chacune une structure comprenant un pointeur-précédent indiquant la 355 mémoire tampon qui précède la mémoire tampon courante dans la liste réception correspondante et un second pointeur-suivant indiquant la mémoire tampon qui suit la mémoire tampon courante dans la liste réception correspondante. Selon une définition générale de l'invention, l'une des interfaces de connexion est désignée apte à recevoir le flux de données reçues par chaque interface de connexion associée à un processus choisi, 10 ladite interface de connexion ainsi désignée comprend en outre une liste-réception supplémentaire répertoriant des mémoires tampons contenant le flux de données reçues par l'ensemble des interfaces de connexion participant à un processus choisi, et 15 les mémoires tampon de chaque interface de connexion appartiennent en même temps aux deux listes réception et comprennent chacune en outre un pointeur-précédent supplémentaire indiquant la mémoire tampon qui précède la mémoire tampon courante dans la liste-réception supplémentaire et un pointeur-suivant supplémentaire indiquant la mémoire tampon qui suit la 20 mémoire tampon courante dans la liste réception supplémentaire. Ainsi, le dispositif selon l'invention permet au niveau de l'interface de connexion ainsi désignée d'accéder au flux de données reçues par l'ensemble des interfaces de connexion participant audit processus, et cela 25 dans l'ordre d'arrivée dudit flux de données reçues. Il en résulte une amélioration des performances du réseau par rapport aux structures antérieures. 30 La présente invention a également pour objet un procédé de communication mis en oeuvre par le dispositif selon l'invention. D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description détaillé ci-après et des dessins dans lesquels 35 - la figure 1 illustre schématiquement un dispositif de communication équipé d'une interface de connexion désignée conforme à l'invention et -la figure 2 illustre schématique une structure d'une mémoire tampon 40 conforme à l'invention, En référence à la figure 1, on a représenté un processus de type messagerie TOP/IP. 45 Un tel processus reçoit des messages en provenance de plusieurs sources via un réseau de communication fonctionnant sous e protocole de type TOP. A chaque source est associée une interface de connexion SC, individualisée en SOA, SC2 et SC3. Chaque interface de connexion SC comprend une liste-réception RX répertoriant des mémoires tampon SKB contenant le flux de données reçues. Chaque interface de connexion comprend également une liste-émission (non 5 représentée) répertoriant des mémoires tampons contenant le flux de données à émettre. En référence à la figure 2, la structure de la liste réception RX est telle que chaque mémoire tampon SKB comprend un pointeur-précédent PP indiquant 10 la mémoire tampon SKB qui précède la mémoire tampon courante dans la liste correspondante et un second pointeur-suivant PS indiquant la mémoire tampon qui suit la mémoire tampon courante dans la liste correspondante. Les mémoires tampons sont chainées entre elles pour une interface de 15 connexion choisie. Chaque mémoire tampon SKB identifie la structure du dispositif ND pour lequel le paquet de données est envoyé ou à partir duquel le paquet de données est reçu. A chaque paquet est associé une mémoire tampon ou buffer SKB. Les en 20 têtes des paquets sont correctement localisés par l'intermédiaire d'un jeu de pointeurs TH, IPH et MAC. Les buffers sont chaînés pour une interface de connexion donnée et contiennent des informations telles que les liens aux en tête des protocoles, le dispositif associé au paquet. 25 On fait à nouveau référence à la figure 1. L'interface de connexion SC3 est désignée à recevoir aussi le flux de données reçues de chaque interface de connexion SC1, SC2 et SC3 associées à un processus choisi, par exemple le processus de messagerie. 30 L'interface de connexion SC3 comprend une liste-réception supplémentaire RXS répertoriant des mémoires tampons SKB contenant le flux de données reçues par l'ensemble des interfaces de connexion participant audit processus. 35 On fait à nouveau référence à la figure 2, Les mémoires tampon SKB de chaque interface de connexion SC1, SC2, SC3 appartiennent en même temps aux deux listes réception RX, et RXS. 40 Les mémoires tampon SKB comprennent chacune en outre un pointeur-précédent supplémentaire PPS indiquant la mémoire tampon qui précède la mémoire tampon courante dans la liste-réception supplémentaire RXS et un pointeur-suivant supplémentaire PSS indiquant la mémoire tampon qui suit la mémoire tampon courante dans la liste réception supplémentaire RXS. 455 Au niveau de l'interface de connexion ainsi désignée SC3, il est possible d'accéder au flux de données reçues par l'ensemble des interfaces de connexion participant audit processus, et cela dans l'ordre d'arrivée dudit flux de données reçues. En effet, la liste réception supplémentaire RXS contient les informations de pointage permettant de retrouver les flux de données reçues selon l'ordre d'arrivée de ces données dans les différentes interfaces de connexion. 10 Par exemple, en référence à la figure 1, l'ordre d'arrivée des flux de données reçues est le suivant : Skb 3.1 Skb 2.1 Skb 1.1 15 Skb 3. 2 Skb 1.2 Skb 1.3 Grâce à la liste réception supplémentaire RXS, il est possible d'accéder aux 20 flux de données selon cet ordre tandis qu'en l'absence de la liste de réception supplémentaire, l'accès serait en fonction du rang de l'interface de connexion, c'est à dire d'abord l'interface de connexion SC1 puis l'interface de connexion SC2 et après SC3. Dans ce cas l'ordre de traitement des flux de données serait 25 Skb 1.1 Skb 1.2 Skb 1.3 Skb 2.1 Skb 3.1 30 Skb 3.2 REVENDICATIONS 5 1.) Dispositif de communication de communication entre plusieurs interfaces de connexion (SC1, SC2, SC3) dans un réseau de communication dans lequel chaque interface de connexion (SC1,SC2, SC3) comprend une liste- 10 réception (RX) répertoriant des mémoires tampon (SKB) contenant le flux de données reçues, ladite liste-réception (RX) ayant une structure selon laquelle chaque mémoire tampon (SKB) comprend un pointeur-précédent (PP) indiquant la mémoire tampon qui précède la mémoire tampon courante dans la liste réception correspondante et un second pointeur-suivant (PS) indiquant 15 la mémoire tampon qui suit la mémoire tampon courante dans la liste réception correspondante, caractérisé en ce que l'une (SC3) des interfaces de connexion (SC) est désignée apte à recevoir le flux de données reçues par chaque interface de 20 connexion associée à un processus choisi, en ce que ladite interface de connexion ainsi désignée (SC3) comprend en outre une liste-réception supplémentaire (RXS) répertoriant des mémoires tampons contenant le flux de données reçues par l'ensemble des interfaces 25 de connexion participant à un processus choisi, et en ce que les mémoires tampon (SKB) de chaque interface de connexion (SC1,SC2,SC3) appartiennent en même temps aux deux listes réception (RX, et RXS) et comprennent chacune en outre un pointeur-précédent 30 supplémentaire (PPS) indiquant la mémoire tampon qui précède la mémoire tampon courante dans la liste-réception supplémentaire (RXS) et un pointeur-suivant supplémentaire (PSS) indiquant la mémoire tampon qui suit la mémoire tampon courante dans la liste réception supplémentaire (RXS), 35 ce qui permet d'accéder au flux de données reçues par l'ensemble des interfaces de connexion participant audit processus, dans l'ordre d'arrivée dudit flux de données reçues. 2.) Procédé de communication entre plusieurs interfaces de connexion (SC1, 40 SC2, SC3) dans un réseau de communication dans lequel chaque interface de connexion (SC1,SC2, SC3) comprend une liste-réception (RX) répertoriant des mémoires tampon (SKB) contenant le flux de données reçues, ladite liste-réception (RX) ayant une structure selon laquelle chaque mémoire tampon (SKB) comprend un pointeur-précédent (PP) indiquant la mémoire tampon qui 45 précède la mémoire tampon courante dans la liste réception correspondante et un second pointeur-suivant (PS) indiquant la mémoire tampon qui suit la mémoire tampon courante dans la liste réception correspondante,caractérisé en ce que l'une (SC3) des interfaces de connexion (SC) est désignée apte à recevoir le flux de données reçues par chaque interface de connexion associée à un processus choisi, en ce que ladite interface de connexion ainsi désignée (SC3) comprend en outre une liste-réception supplémentaire (RXS) répertoriant des mémoires tampons contenant le flux de données reçues par l'ensemble des interfaces de connexion participant à un processus choisi, et en ce que les mémoires tampon (SKB) de chaque interface de connexion (SC1,SC2,SC3) appartiennent en même temps aux deux listes réception (RX, et RXS) et comprennent chacune en outre un pointeur-précédent supplémentaire (PPS) indiquant la mémoire tampon qui précède la mémoire tampon courante dans la liste-réception supplémentaire (RXS) et un pointeur- suivant supplémentaire (PSS) indiquant la mémoire tampon qui suit la mémoire tampon courante dans la liste réception supplémentaire (RXS), ce qui permet d'accéder au flux de données reçues par l'ensemble des interfaces de connexion participant audit processus, dans l'ordre d'arrivée dudit flux de données reçues.