Brevet FR2880752A1 — publié le 20060714

Méthode de construction d'une adresse de diffusion unique par un serveur et serveur utilisant cette méthode. La présente invention concerne le domaine de la diffusion de flux de données numériques sur un réseau IP et plus particulièrement la façon dont un serveur de flux audio/vidéo va choisir des adresses de diffusion multipoint ( multicast en anglais) uniques sur le réseau. Sur les réseaux IP, il existe plusieurs moyens de diffuser des données à destinations de plusieurs utilisateurs. Le moyen le plus couramment utilisé dans le cadre de la diffusion de services numériques, par exemples audio visuels est un mode de diffusion dit multipoint. Dans ce mode un serveur va émettre les paquets de données correspondant au service à destination d'une adresse virtuelle dite adresse de diffusion multipoint. Cette adresse est virtuelle, car elle ne correspond pas à l'adresse IP d'une machine destination des paquets de données. En effet, une machine souhaitant recevoir le flux de données émis va s'abonner à la diffusion multipoint. Pour ce faire elle va utiliser le protocole IGMP ( Internet Group Management Protocol en anglais). Elle va émettre une commande join avec l'adresse de diffusion, cette commande va être transmise de routeur en routeur dans le réseau jusqu'à atteindre un routeur relayant déjà ce flux ou directement connecté au serveur. Une fois la source, ou un point de la diffusion atteint, les routeurs intermédiaires entre ce point et la machine souhaitant recevoir le flux vont se configurer pour transmettre ce flux depuis le serveur jusqu'à la machine destination. On voit donc que ce protocole de diffusion multipoint fait appel à des adresses virtuelles en ce qu'elles ne représentent pas de machines physiques. Un espace d'adresses est ainsi réservé à cet usage, ce sont les adresses entre 224.0.0.0 et 239.255.255.255. Ces adresses correspondent aux adresses dont les 4 premiers bits sont 1110 . Un groupe de travail ( Multicast Address Allocation ) de l'IETF ( Internet Engineering Task Force en anglais) s'est occupé de résoudre le problème d'allocation d'adresses de diffusion multipoint. En effet des serveurs souhaitant diffuser des flux de données doivent choisir une adresse et un port pour cette diffusion. Cette adresse doit se trouver dans l'espace réservé à cet effet et ne pas entrer en collision avec une autre adresse qui serait choisie par un autre serveur. La proposition de l'IETF repose sur un, ou des, serveur(s) d'allocation d'adresses de diffusion multipoint. Un serveur de flux souhaitant une adresse pour une nouvelle diffusion va donc s'adresser à un de ces serveurs d'adresses pour obtenir cette adresse. La gestion du pool d'adresses réservées et l'éventuelle coordination entre serveurs sont également gérées. Cette proposition, quoique tout à fait fonctionnelle, est relativement lourde à mettre en place. Dans le cadre de réseaux locaux, par exemple de réseaux domestiques, des serveurs locaux vont distribuer des flux audio/vidéo sur IP. Ces flux sont généralement issus de diffusion satellite ou câble et sont retransmis soit directement soit après stockage. Lorsqu'un tel appareil doit diffuser un flux audio/vidéo, il doit choisir une adresse de diffusion multipoint à utiliser pour cette diffusion. Il serait judicieux de pouvoir mettre en place un mécanisme d'allocation ou de construction d'adresses de diffusion plus léger ne nécessitant ni matériel, ni configuration particulière mais assurant l'unicité au sein du réseau local des adresses ainsi construites. D'autre part, les clients doivent avoir connaissance de ces adresses. L'invention permet d'apporter une solution à l'allocation d'adresses de diffusion multiple au sein d'un réseau local par des serveurs de flux, notamment audio/vidéo. Cette solution n'implique pas de configuration ni de serveurs particuliers. L'invention repose sur l'utilisation d'identificateurs du flux diffusé pour la construction de l'adresse de diffusion multipoint. D'autre part, cette méthode permet au client à la diffusion de connaître l'adresse de diffusion multiple ainsi construite pour s'abonner à un flux. L'invention concerne une méthode de construction, par un serveur de flux de données pour un réseau de communication, d'une adresse de diffusion multipoint et/ou du numéro de port associé pour la diffusion d'un flux de données. Cette méthode comporte au moins l'étape suivante: 2880752 3 détermination d'au moins une partie de l'adresse de diffusion multipoint et/ou du numéro de port associé en fonction d'au moins un identificateur des données à diffuser sur cette adresse. Selon un mode particulier de réalisation de l'invention l'étape de détermination utilise tout ou partie du au moins un identificateur du flux pour déterminer des bits de l'adresse de diffusion multipoint et/ou le numéro de port associé construit. Selon un mode particulier de réalisation de l'invention, le réseau étant un réseau local IP fonctionnant en IP version 6, l'étape de détermination utilise le au moins un identificateur du flux pour la détermination des bits de l'identificateur de groupe de l'adresse de diffusion multipoint construite. Selon un mode particulier de réalisation de l'invention l'identificateur est l'identificateur unique du flux dans le réseau. L'invention concerne également un serveur de flux de données en 20 mode de diffusion multipoint au sein d'un réseau de communication possédant: des moyens de connexion au réseau; des moyens de diffusion de flux de données en mode de diffusion multipoint sur ce réseau local IP; - des moyens de construction d'une adresse de diffusion multipoint et/ou du numéro de port associé en fonction d'au moins un identificateur des données à diffuser. 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 les espaces d'adresses recommandés pour les réseaux privés. La figure 2 représente la structure d'une adresse de diffusion multipoint IPV6 (IP version 6). La figure 3 représente des exemples de construction d'adresses de diffusion multipoint selon des schémas de construction selon l'invention. La figure 4 représente un exemple d'architecture d'un serveur selon l'exemple de réalisation de l'invention. Sur les réseaux de transfert d'informations par paquets, comme par exemple Internet, les réseaux locaux IP ou autres, on trouve plusieurs modes de transfert des informations. Ces modes peuvent se classer dans trois catégories en fonction du nombre d'émetteurs et de récepteurs engagés dans cette transmission. On trouve d'abord la transmission point à point ( unicast en anglais) qui permet à un émetteur d'envoyer un paquet d'information à destination d'un récepteur unique identifié par son adresse sur le réseau. C'est le mode de transmission utilisé par les protocoles les plus populaires du réseau Internet comme le protocole de transfert des pages Web HTTP ( Hyper Text Transfer Protocol en anglais) ou le protocole de transfert de fichiers FTP ( File Transfer Protocol en anglais). Un autre mode de transmission consiste, pour un émetteur à transmettre un paquet en mode de diffusion générale ( broadcast en anglais). Dans ce mode, le paquet émis par l'émetteur est émis à destination de tous les noeuds du réseau. Ce mode n'est pas disponible sur Internet mais se retrouve sur les réseaux locaux. Le troisième mode consiste pour un émetteur ou un groupe d'émetteurs, à transmettre un paquet à destination d'un groupe de récepteurs, dans un mode de transmission multipoint ( multicast en anglais). Dans ce mode les paquets sont émis à destination d'une adresse dite adresse de diffusion multipoint et seront acheminés à destination de tous les destinataires appartenant au groupe de diffusion. On dira d'un client qui rejoint un groupe de diffusion qu'il s'abonne au groupe et d'un client qui quitte le groupe qu'il se désabonne du groupe. Le mode de diffusion multipoint est utilisé dans la pratique pour économiser la bande passante intermédiaire dans le réseau lorsqu'une source émet des données vers un groupe de destinataires. En effet, dans ce cas, l'utilisation d'un mode de transmission point à point implique que les données soient envoyées autant de fois qu'il y a de destinataires. Ce mode entraîne la duplication des paquets sur les parties du réseau communes aux chemins entre la source et les différents destinataires. Au contraire la diffusion multipoint permet de n'envoyer les données qu'une fois, ces données étant dupliquées sur les roui:eurs du réseau, en fonction des chemins menant aux destinataires appartenant au groupe de diffusion. Au sein d'un réseau local, par exemple du type domestique, il est de plus en plus courant d'avoir des serveurs de contenus audio visuels ou autres contenus diffusés sous la forme de flux de données. Ces flux sont généralement diffusés en mode de diffusion multipoint car cela permet d'économiser de la bande passante lorsque la diffusion est à destination de plusieurs clients. Ceci peut se produire, dans le domicile, par exemple pour diffuser de la musique dans plusieurs pièces ou permettre à plusieurs membres de la famille de suivre un même contenu dans des pièces différentes. On peut également citer l'enregistrement conjointement avec la visualisation d'un média. Dans toutes ces utilisations il se trouve plusieurs clients, au sens appareils destinataires d'un contenu, au sein du foyer donc sur le réseau local. Sur ce réseau local, un certain nombre d'appareils vont donc agir comme serveurs de flux audio/vidéo, préférentiellement en diffusion multipoint. On peut citer des magnétoscopes numériques, des passerelles recevant du contenu par satellite ou câble et les distribuant sur le réseau domestique ou tout autre appareil agissant en source de contenu sur le réseau local. Tous ces appareils vont donc, à chaque fois qu'ils vont vouloir diffuser du contenu, avoir besoin de choisir un couple adresse de diffusion multipoint et port. II faut garantir l'unicité de ce couple de façon à éviter les collisions entre différentes diffusions par des appareils du réseau local. Un client désirant se connecter à la diffusion devra prendre connaissance de cette adresse. La non-collision avec les adresses de diffusion multipoint de flux provenant d'un réseau extérieur au réseau local mais accessible aux clients du réseau local n'est pas garantie par ce mécanisme. Il peut s'agir d'un réseau domestique connecté à un réseau externe de distribution de média. Un moyen d'assurer cette non-collision est d'implémenter une translation d'adresse au niveau de la passerelle connectant le réseau local et le réseau de distribution. La passerelle étant un élément du réseau local, celle-ci peut adopter les règles décrites dans le document pour transmettre les flux qu'elle reçoit depuis le réseau externe et à destination de clients internes au réseau local. Pour éviter de devoir mettre en place et configurer des serveurs d'adresses de diffusion multipoint, il est proposé dans ce document de s'appuyer des caractéristiques du flux à transmettre pour construire l'adresse et/ou le port de diffusion multipoint utilisé pour la transmission du flux. En effet, les flux audio/vidéo sont généralement identifiés de manière unique. II est donc possible de construire des adresses et/ou des numéros de port uniques basés sur les identificateurs du flux. De cette manière, on garantit l'unicité des adresses ainsi construites au sein du réseau et d'autre part, un client utilisant la même méthode sera à même de construire l'adresse de diffusion d'un flux auquel il désire s'abonner. L'IANA, a défini dans la RFC. 2365, un espace d'adresses de diffusion multipoint pour les réseaux privés entre 239.255.0.0 et 239.255. 255.255. De ce fait les 16 premiers bits des adresses de diffusion multipoint sont fixés à 239.255. Mais ici encore, le non-respect de cette recommandation, tant que l'on reste dans l'espace général des adresses de diffusion multipoint (224.0.0.0 à 239.255.255.255) n'entraîne aucun problème de fonctionnement. Les adresses de diffusion multipoint IPV6 sont définies dans la RFC 2373. La figure 2 décrit le format de ces adresses. Un premier champ de 8 bits à 1, un champ flgs de 4 bits, un champ scop de 4 bits suivi d'un identificateur de groupe de 112 bits. Dans un réseau local, la valeur de flgs doit être 1 tandis que celle de scop de 2 signifiants que l'adresse est temporaire et limitée au lien. Il est à noter que dans le cas de IPV6, il ne peut y avoir de confusion entre les adresses de diffusion multipoint extérieures au réseau local et celles que l'on définit sur ce réseau. En effet, les champs flgs et scope de ces adresses seront différents. L'exemple de réalisation de l'invention se place dans le cadre de la diffusion de flux audio/vidéo au format DVB ( Digital Video Broadcast en anglais). Cette norme définit un ensemble de trois identificateurs du flux connu sous l'appellation triplet DVB. On peut trouver une définition de ce triplet dans le document: Digital Video Broadcasting (DVB) ; Specification for Service Information (SI) in DVB systems; EN 300 468 vl.3.1) . Ce triplet se compose d'un identificateur de réseau (ONid pour Original Network ID) présent dans la NIT ( Network Information Table en anglais) codé sur 16 bit, d'un identificateur de flux de transport (TSid pour Transport Stream ID) présent dans la SDT ( Stream Description Table ) codé sur 16 bits et d'un identifiant de service (Sid pour Service ID) également codé sur 16 bits. Ce triplet permet d'identifier de manière unique un service diffusé sur un réseau DVB. En effet le réseau est défini comme une collection de multiplex de flux de transport MPEG-2 transmis par un même système de distribution identifié de manière unique par son ONid. Le flux de transport étant défini comme la structure de base de DVB pour le transport des services identifié de manière unique par le TSid au sein du réseau. Le service étant une séquence de programmes sous le contrôle d'un diffuseur et pouvant être diffusé au sein d'une programmation identifié de manière unique par son Sid au sein du flux de transport. Lorsqu'un flux DVB va devoir être distribué sur un réseau IP par un serveur, celui-ci devra obtenir une adresse de diffusion multipoint pour cette distribution. Cette adresse devra être unique sur le réseau local, différents serveurs devant se prémunir contre le risque d'utiliser la même adresse pour deux flux différents. De part la définition des identificateurs du flux précédemment décrit, ces identificateurs identifient de manière unique le flux en question. Il est donc possible d'utiliser cette unicité des identificateurs pour construire des adresses et/ou des numéros de port héritant de cette propriété d'unicité. II est donc proposé d'utiliser ces identificateurs pour la construction de l'adresse de diffusion multipoint et/ou le numéro de port. D'autre part, la méthode de construction de l'adresse de diffusion multipoint et/ou du numéro de port étant connue, elle pourra être utilisée également par le client. Dès lors que celui-ci connaîtra le flux qu'il souhaite recevoir et donc les identificateurs en question, il pourra appliquer la méthode pour déterminer l'adresse de diffusion à laquelle il doit s'abonner pour recevoir ce flux. En IPV4, le format des adresses de diffusion multipoint, fixant les 4 premiers bits à 1110 nous laisse donc 28 bits libres auxquels il faut rajouter les 16 bits du numéro de port soit 44 bits. Les 3 identificateurs définissent quant à eux des valeurs sur un ensemble de 48 bits (3 * 16). On voit donc qu'il n'est pas possible d'établir une correspondance directe entre les 48 bits des identificateurs et les 44 bits libres dont on dispose pour l'adresse de diffusion multipoint. Il est possible de résoudre le problème en décidant de ne tenir compte que des 12 bits de poids faible de l'identificateur de réseau. Ceci suppose que le nombre de réseau transporté ne dépasse pas 4096 et que les identificateurs de réseau s'incrémentent par pas de 1 à partir de O. Cette supposition est largement vérifiée dans la pratique de tous les déploiements réels aujourd'hui. La figure 3 propose une correspondance permettant la construction du couple adresse de diffusion multiple et numéro de port à partir du triplet DVB. Il y est proposé une correspondance directe entre le numéro de port et le Sid, les 2 octets de poids faibles de l'adresse correspondant au TSid tandis que l'on fait correspondre les 12 bits de poids faible du ONid avec les 12 bits de poids faible des 2 octets de poids fort de l'adresse de diffusion multipoint. II est clair que cette correspondance n'est qu'un exemple et que tout autre correspondance est possible. On peut de même utiliser des fonctions permettant de donner les bits libres du couple adresse, numéro de port qui ne soient pas une correspondance bit à bit. Dans le cas d'un réseau IP version 6, le format des adresses de diffusion multipoint (figure 2) laisse le champ d'identificateur de groupe de 112 bits libre. On peut donc utiliser la même méthode que celle employée pour IP version 4. Il est ici possible d'utiliser des correspondances bit à bit complètes entre les 3 identificateurs du flux et 48 bits choisis parmi les 112. De même, il est aussi possible d'utiliser des fonctions permettant de donner les bits libres du couple adresse, numéro de port qui ne soient pas une correspondance bit à bit. La figure 4 représente un exemple d'architecture générale d'un serveur, référencé 4.1, destiné à implérnenter la méthode. Un tel appareil comporte une interface réseau, référencée 4.6, destinée à connecter l'appareil au réseau IP référencé 4.7. Il comporte également une mémoire permanente, référencée 4.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 la construction des adresses de diffusion multipoint selon la méthode décrite. Ces programmes seront chargés dans la mémoire vive, référencée 4.3, pour l'exécution par le processeur central référencé 4.2. Tous ces éléments seront reliés entre eux par un bus de communication référencé 4.4. II 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 serveur à même d'implémenter la méthode. La méthode ici décrite, réutilise directement les identificateurs du flux pour construire la partie correspondante de l'adresse de diffusion multiple. Il est bien évident que toute utilisation de ces identificateurs dans la construction de l'adresse de diffusion multiple va assurer de la même manière l'unicité recherchée. De fait, l'invention repose sur l'utilisation d'au moins certains de ces identificateurs, et de leur propriété d'unicité, pour construire des couples adresse et numéro de port uniques servant à la diffusion multipoint sur le réseau local sans nécessiter l'intervention d'un serveur gérant l'attribution des adresses. REVENDICATIONS 1. Procédé de construction, par un serveur de flux de données pour un réseau de communication, d'une adresse de diffusion multipoint etlou du numéro de port associé pour la diffusion d'un flux de données caractérisée en ce que la méthode comporte au moins l'étape suivante: - détermination d'au moins une partie de l'adresse de diffusion multipoint et/ou du numéro de port associé en fonction d'au moins un identificateur des données à diffuser sur cette adresse. 2. Procédé selon la revendication 1 caractérisée en ce que l'étape de détermination utilise tout ou partie du au moins un identificateur du flux pour déterminer des bits de l'adresse de diffusion multipoint et/ou le numéro de port associé construit. 3. Procédé selon la revendication 1, le réseau étant un réseau local IP fonctionnant en IP version 6, caractérisée en ce que l'étape de détermination utilise le au moins un identificateur du flux pour la détermination des bits de l'identificateur de groupe de l'adresse de diffusion multipoint construite. 4. Procédé selon l'une des revendication 1 à 3 caractérisée en ce que le au moins un identificateur soit l'identificateur unique du flux dans le 25 réseau. 5. Serveur de flux de données en mode de diffusion multipoint au sein d'un réseau de communication possédant: des moyens de connexion au réseau; des moyens de diffusion de flux de données en mode de diffusion multipoint sur ce réseau local IP; caractérisé en ce qu'il comporte en outre: - des moyens de construction d'une adresse de diffusion multipoint et/ou du numéro de port associé en fonction d'au moins un 35 identificateur des données à diffuser. 6. Serveur selon la revendication 5 caractérisé en ce que le au moins un identificateur soit l'identificateur unique du flux dans le réseau.