FR 3042670 A1 20170421 FR 1502196 A 20151019 - 1 - Arrière-plan de l'invention [001] L'invention se rapporte au domaine général des télécommunications. L'invention se rapporte en particulier à la distribution de données, par exemple des données audiovisuelles, dans un réseau de télécommunications. [002] Le modèle actuel de distribution de données repose principalement sur les réseaux de distribution de contenus (CDN pour « Content Distribution Networks » en anglais). Une plateforme CDN permet d'envoyer des données depuis des dispositifs de communication appelés serveurs vers des dispositifs de communication appelés clients. L'augmentation de la quantité de données à transmettre impose aux CDNs une augmentation conséquente de la capacité de leurs serveurs et la capacité de leurs liaisons réseaux pour supporter le trafic croissant. Par ailleurs, l'augmentation de la demande en services et en trafic est continuelle. L'introduction par exemple de nouvelles définitions vidéo comme le 1080p en 1900*1080 et la 4K en 3840*2160 augmente considérablement le débit d'un flux audiovisuel employant ces définitions avec un facteur compris entre 4 et 10 en fonction des paramètres d'encodage. En prenant en considération l'augmentation du nombre d'utilisateurs, la distribution de données en temps réel ou quasi temps réel comme un flux vidéo en direct nécessitera des investissements importants en infrastructures et en coûts d'exploitation pour les CDNs. [003] L'utilisation d'un réseau pair-à-pair (P2P pour « Peer-To-Peer » en anglais) permet de remédier à ce problème en répartissant la charge de distribution sur les clients (sur les pairs) du réseau. En effet, dans un réseau pair-à-pair, les données d'un contenu sont partagées entre des clients, qui s'échangent des segments de données (appelés « chunks » en anglais) afin de rassembler l'ensemble des données du contenu. A cet effet, chaque client établit des connexions avec les autres clients du réseau pair-à-pair. Pour obtenir la liste des autres clients partageant les données d'un contenu particulier, un client s'enregistre auprès d'une entité de gestion du réseau pair-à-pair, généralement appelée « Tracker ». La distribution de données dans un réseau pair-à- pair présente plusieurs inconvénients. Le premier inconvénient résulte de l'importance du trafic généré par les clients à cause des requêtes-réponses entre eux et avec l'entité de gestion par rapport au trafic d'échange de données. Le deuxième inconvénient résulte de la mauvaise performance des réseaux pair-à-pair dans la distribution de données en temps réel. En effet, la recherche d'un client qui dispose des segments manquants pour reconstituer les données implique des délais de traitement avant d'obtenir les données qui sont incompatibles avec le temps réel. 3042670 - 2 - [4] Il existe donc un besoin pour une meilleure technique de distribution de données dans les réseaux de télécommunications. Description de l'invention [5] L'invention vise à répondre à ce besoin en proposant un procédé de communication 5 ordonnançant le fonctionnement d'un réseau pair-à-pair incluant un premier dispositif de communication, dit entité de pilotage, un second dispositif de communication, dit entité de distribution, et une pluralité de dispositifs de communication, dits clients, l'entité de pilotage comprenant : - Des moyens de réception des clients de messages d'enregistrement et d'informations, 10 - Des moyens de classification et formation de groupes pour rassembler des clients, - Des moyens d'affectation de clients avec des rôles précis dans des groupes, - Des moyens de planification des échanges de données pour les clients de chaque groupe entre eux et avec des clients d'un autre groupe, - Des moyens d'envois d'instructions vers les clients du réseau pair-à-pair. 15 [006] Autrement dit, l'invention propose une architecture de distribution en pair-à-pair dans laquelle une entité de pilotage collecte des informations sur les clients du réseau pair-à-pair, puis forme des groupes dans lesquels les clients sont affectés avec des rôles précis. L'entité de pilotage transmet des instructions aux clients pour établir des connexions entre eux et échanger les données suivant une planification qu'elle a établie. La planification assure aux clients la réception de la totalité 20 des données dans les meilleurs délais et sans avoir recours à des requêtes de recherche de segments de données auprès d'autres clients. L'invention permet donc de réduire le trafic généré par le réseau pair-à-pair pour l'échange de données. Par ailleurs, le procédé assure une réception rapide des données qui est compatible avec les contraintes d'une distribution de données en temps réel. [007] De manière correspondante, l'invention propose également un dispositif de 25 communication dit entité de distribution pour la transmission des données vers un réseau pair-à-pair comprenant : - Des moyens de division des données en segments, - Des moyens de numérotation périodique et continue des segments, - Des moyens de conditionnement des segments de données avant envoi en appliquant 30 des opérations de compression, codage, entrelacement, encapsulation et cryptage, 3042670 -3- - Des moyens d'adaptation des données, - Des moyens d'envois de segments de données vers les clients du réseau pair-à-pair, - Des moyens de réception et traitement de demande de retransmission de segments, - Des moyens de réception et traitement de messages d'instructions de l'entité de pilotage, 5 - Des moyens d'envoi de messages d'informations à l'entité de pilotage. [008] De manière correspondante, l'invention propose un procédé de communication effectué par l'entité de distribution pour la segmentation, adaptation et conditionnement des données qui seront distribuées sur le réseau pair-à-pair, procédé comprenant : - Une étape de réception d'instructions envoyées par l'entité de pilotage, 10 Une étape d'adaptation des données, - Une étape de division en segments des données, Une étape d'application d'opérations de compression, codage, entrelacement, cryptage et encapsulation des données, - Une étape de numérotation des segments de données suivant un schéma de 15 numérotation périodique de 1 à M, M étant un entier, et suivant un schéma de numérotation continue commençant par 1. [009] Autrement dit, l'entité de pilotage définit les opérations et schémas de numérotation à appliquer aux données avant transmission et envoie des instructions à l'entité de distribution. L'entité de distribution applique les éventuelles adaptations demandées comme par exemple le transcodage 20 d'un flux audiovisuel ou la conversion de format d'un fichier. Elle divise ensuite les données en segments et leur applique les différentes opérations requises dans l'ordre défini par l'entité de pilotage comme la compression pour réduire la taille des données, codage pour permettre la correction de données corrompues à la réception, entrelacement pour réduire l'effet mémoire des erreurs introduites par certains médias de communication, cryptage pour assurer la protection des données. 25 Les segments sont ensuite numérotés en continu et suivant un cycle de période M. L'opération « modulo » permet de déterminer le numéro périodique d'un segment, par exemple, pour une période M = 16, le segment numéro 1234 a le numéro périodique S2 car 1234 mod 16 = 2. L'emploi de numéros périodiques permet de conférer une priorité Pi à chaque segment Si dans un cycle de taille M. Dans un même cycle, la priorité d'un segment de numéro inférieur est plus importante car il 30 est plus en amont dans l'ordre de reconstruction des données. Ainsi le segment de numéro périodique S4 est prioritaire en réception par rapport au segment de numéro périodique S7 et P4 est donc supérieure à P7. 3042670 - 4 - [0010] Corrélativement, l'invention propose un procédé de communication effectué par l'entité de pilotage pour l'affectation de clients dans des groupes du réseau pair-à-pair comprenant : Une étape de réception d'informations sur un client, - Une étape d'analyse des informations du client pour le choix d'une catégorie, 5 - Une étape de vérification de la taille des groupes de la catégorie choisie, - Une étape de vérification de la date de dernière modification des groupes, Une étape de choix d'un groupe existant ou de création d'un nouveau groupe, - Une étape de détermination des nouveaux rôles et des nouvelles planifications d'échanges de données pour les clients du groupe, 10 - Une étape de planification des assistances aux envois de données des clients du groupe, - Une étape d'envoi d'instructions à l'ensemble des clients du groupe indiquant leurs nouveaux rôles et planifications d'échange de données. [0011] Autrement dit, l'entité de pilotage définit plusieurs catégories de groupes suivant des critères comme par exemple la localisation, le type de dispositif utilisé ou le débit de données maximal 15 que le client peut supporter. Pour chaque client, une catégorie est choisie en fonction des informations qu'il a fournies. L'entité de pilotage vérifie par la suite les dispositions des groupes de la catégorie à intégrer un nouveau client. Elle vérifie la taille de chaque groupe. Si un groupe a atteint la taille maximale N, N étant un entier, il est écarté de la liste de recherche. Ensuite, l'entité de pilotage vérifie la date de dernière modification des groupes restants, qui sont donc incomplets et peuvent intégrer 20 un nouveau client. Une période de temps appelée période de grâce D permet d'éviter de constamment modifier les groupes afin de leur assurer une meilleure stabilité dans le réseau pair-à-pair. Si aucun groupe n'a bénéficié encore de la période de grâce, celui avec la date de modification la plus ancienne est sélectionné pour y affecter le client. Sinon, parmi les groupes n'ayant subi aucune modification pendant la période D, celui avec le plus grand nombre de clients est choisi afin d'arriver à avoir des 25 groupes complets, c.-à-d. avec une taille N, le plus rapidement possible. Si aucun des critères de sélection suscités n'est admissible, l'entité de pilotage crée un nouveau groupe et y affecte le client. [0012] Corrélativement, l'invention propose un procédé de communication effectué par l'unité de pilotage pour la planification des échanges de segments de données entre les clients d'un groupe du réseau pair-à-pair, procédé comprenant : 30 - Une étape de réception d'informations sur les capacités d'envoi et de réception de données des clients, 3042670 -5- - Une étape d'affectation d'un identifiant à chaque client du groupe, - Une étape de détermination de l'action de chaque client à chaque période de temps T, - Une étape de définition de la planification d'envois de segments de données pour les clients du groupe à partir des actions déterminées, 5 - Une étape d'envois d'instructions aux clients du groupe indiquant leurs identifiants et planifications d'échanges de données entre eux. [0013] Autrement dit, l'entité de pilotage reçoit des informations de chaque client et détermine sa capacité d'envoi UP et de réception DW, qui peuvent être exprimées en débit de données par exemple en Kbits/s. Elle définit une période de temps T durant laquelle chaque client va recevoir ou 10 envoyer un ou plusieurs segments de données en fonction de ses capacités d'envoi et de réception. L'entité de pilotage définit un débit référence R pour les données qui seront distribuées dans le réseau pair-à-pair équivalent au débit d'envoi nécessaire pour l'envoi desdites données entre deux dispositifs de communication. Si tous les clients du groupe disposent d'une capacité d'envoi supérieure au débit référence R, le groupe assure de manière autonome la distribution de données entre ses membres. 15 Dans le cas contraire, les clients qui ont une capacité d'envoi inférieure au débit référence R seront assistés par l'entité de distribution dans l'envoi des segments de données. Ces clients sont identifiés par l'entité de pilotage. Pour les besoins de planification des envois de données dans le groupe, l'entité de pilotage considère que tous clients disposent d'une capacité d'envoi supérieure au débit référence R. 20 [0014] Les clients obtiennent leurs identifiants dans le groupe en fonction de leurs capacités d'envoi. Ainsi celui qui dispose de la plus forte capacité d'envoi se voit affecter l'identifiant C1 et jouera le rôle du client numéro 1 dans le groupe. Il sera également caractérisé par ses capacités (UP1, DW1). L'entité de pilotage définit la disponibilité chez le client Ci du segment Sk par une variable binaire f Aj,k, i E [1 - k E [1 - M] } prenant la valeur 1 si le segment est disponible et 0 dans le cas 25 contraire. Elle définit également l'envoi par le client Ci au client Ci du segment Sk par la variable binaire E [1 - k E [1 - } prenant la valeur 1 si l'envoi a lieu et 0 dans le cas contraire. [0015] L'entité de pilotage détermine les actions optimales des clients à chaque période de temps T en maximisant l'efficacité globale du groupe EG définie par l'équation [1]. Cette efficacité se traduit par la maximisation des sommes des envois de segments de données à chaque période de 30 temps T pondérés par la priorité des segments envoyés par tous les clients du groupe. Autrement dit, la planification doit permettre d'envoyer le maximum de segments, de préférence les segments ayant une forte priorité en premier, suivant les besoins des clients. Ce problème est assujetti à des contraintes présentées dans les équations [2] à [5]. L'équation [2] exprime qu'un client ne peut 3042670 - 6 - envoyer un segment qu'il n'a pas encore reçu. L'équation [3] exprime qu'un client ne peut envoyer sur une période T plus de données que ce que sa capacité d'envoi lui permet. L'équation [4] impose des restrictions équivalentes sur la capacité de réception. L'équation [5] interdit aux clients de s'envoyer à eux-mêmes des données. 5 [0016] L'entité de pilotage formule ainsi un problème d'optimisation binaire d'entiers soumis à des contraintes d'égalité et d'inégalité dont la solution permet d'obtenir les variables f Eu k, i, j E [1 - N], k E [1 - /14] définissant tous les envois de segments de données entre les clients du groupe pour une période Tp. [0017] L'entité de pilotage prend en compte la réception des données depuis l'extérieur dans le 10 calcul de l'efficacité du groupe. A tour de rôle, en commençant par le client C1, les clients recevront, depuis la source de données pour le groupe, les segments de données qui seront échangés entre eux. La réception de ces segments est répercutée sur les capacités de réception des clients. Ainsi pendant chaque période T, un client reçoit un segment de données depuis l'extérieur. N N M EG = III Euk X Pk [1] i=1 j=1 k=1 Eij,k REVENDICATIONS1) Procédé de communication pour la planification des échanges de segments de données entre les clients appartenant à un groupe d'un réseau pair-à-pair, effectué par un dispositif de communication dit entité de pilotage (20), caractérisé en ce qu'il comprend : - Une étape de définition des rôles des clients (10) dans un groupe (50) en fonction de leurs capacités d'envoi de données, - Une étape de définition d'un problème d'optimisation binaire soumis à des contraintes d'égalité et d'inégalité caractérisant les actions des clients pendant une période de temps T, - Une étape de détermination des actions des clients pendant ladite période de temps T pour maximiser l'efficacité globale du groupe, définissant une planification des envois de segments de données dans le groupe pour la période visée, - Une étape de mise à jour des disponibilités des segments reçus par les clients et leurs priorités dans la formulation du problème d'optimisation, - Une étape d'itération de la détermination des actions des clients avec les nouvelles valeurs pour la période de temps suivante visée, - Une étape de définition des planifications d'envois et réceptions de segments données pour le groupe à partir des actions déterminées. 2) Procédé de communication, selon la revendication 1, caractérisé en ce qu'il comprend : - Une étape de réception d'informations sur les capacités d'envois et réceptions de données des clients (10) du groupe (50). 3) Procédé de communication, selon les revendications 1 ou 2, caractérisé en ce qu'il comprend : - Une étape de qualification des capacités d'envois des clients (10) d'un groupe (50) du réseau pair-à-pair par rapport à un débit référence R des données distribuées, - Une étape de détermination des assistances aux envois de données aux clients ne disposant pas d'une capacité d'envoi suffisante par rapport au débit référence R. 3042670 - 20 - 4) Procédé de communication, selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend : - Une étape d'affectation d'un client de stabilité à un groupe (50) caractérisé en ce qu'il est capable de remplacer un autre client du groupe et assurer son rôle dans la 5 distribution de données. 5) Procédé de communication, selon l'une quelconque des revendications précédentes, pour l'affectation d'un client (10) à un groupe (50) d'un réseau pair-à-pair, effectué par un dispositif 10 de communication dit entité de pilotage (20), caractérisé en ce qu'il comprend : - Une étape (E2) de décision d'affectation d'un client (10) à une catégorie de clients, - Une étape (E3) de détermination de groupes incomplets, - Une étape (E4) de détermination de groupes non modifiés depuis au moins une période de grâce D, 15 - Une étape (E5) de choix d'un groupe (50) pour le client (10), - Une étape (E8) de détermination des planifications des échanges de segments de données pour le groupe (50) intégrant le nouveau client (10) selon les revendications 1 à 4, - Une étape (E9) de détermination d'un dispositif de communication source de données 20 pour le groupe pour l'envoi des segments de données au groupe (50), - Une étape (E10) de transmission d'instructions aux clients (10) du groupe (50). 6) Procédé de communication, selon la revendication 5, caractérisé en ce qu'il comprend avant 25 l'étape (E2) : - Une étape (El) de réception de messages d'enregistrement et d'informations du client (10). 30 7) Procédé de communication, selon la revendication 5, caractérisé en ce qu'il comprend : - Une étape (E6) pour la création d'une nouvelle catégorie, - Une étape (E7) pour la création d'un nouveau groupe. 3042670 -21- 8) Procédé de communication, selon la revendication 5, pour la planification des envois de segments de données vers les clients (10) appartenant à un groupe (50) d'un réseau pair-à-pair, effectué par un dispositif de communication dit entité de pilotage (20), caractérisé en ce que l'étape (E9) comprend : 5 - Une étape de détermination d'un dispositif source de données pour le groupe (50), - Une étape de planification de l'envoi des segments de données vers le groupe (50), - Une étape d'envois d'instructions au dispositif sources de données pour le groupe. 10 9) Procédé de communication, selon la revendication 8, pour la segmentation, adaptation et conditionnement des données distribuées sur le réseau pair-à-pair, procédé comprenant : - Une étape de réception d'instructions envoyées par l'entité de pilotage (20), - Une étape d'adaptation des données, - Une étape de division en segments des données, 15 - Une étape d'application d'opérations de compression, codage, entrelacement, cryptage et encapsulation des données, - Une étape de numérotation des segments de données suivant un schéma de numérotation périodique et un schéma de numérotation continue. 20 10) Procédé de communication, selon l'une quelconque des revendications précédentes, pour la distribution de données entre les clients (10) appartenant à un groupe (50) d'un réseau pair-à- pafr' caractérisé en ce qu'il comprend : - Une étape (F1) d'envoi de messages d'enregistrement et d'informations à l'entité de 25 pilotage, - Une étape (F2) de réception d'instructions indiquant la planification des envois et réceptions de segments de données, - Une étape (F4) de réception de segments de données suivant la planification définie, - Une étape (F5) d'envoi de segments de données suivant la planification définie, 30 - Une étape (F6) d'envoi de messages d'informations sur la distribution de données à l'entité de pilotage (20). 3042670 -22- 11) Dispositif de communication (20) dit entité de pilotage, pour la mise en oeuvre du procédé de communication selon les revendications 1 à 8, caractérisé en ce qu'il comprend : - Des moyens de réception des clients (10) de messages d'enregistrement et d'informations, 5 - Des moyens de formation de catégories et groupes (50), - Des moyens d'affectation des clients avec des rôles précis dans des groupes, - Des moyens de planification des échanges de données pour les clients de chaque groupe entre eux et avec des clients d'un autre groupe, - Des moyens de planification des envois de données vers les clients d'un groupe, 10 - Des moyens d'envois d'instructions vers les clients (10) du réseau pair-à-pair, - Des moyens d'envois d'instructions vers l'entité de distribution (30). 12) Dispositif de communication (30) dit entité de distribution, pour la mise en oeuvre du procédé de communication selon la revendication 9, caractérisé en ce qu'il comprend : 15 - Des moyens de division des données en segments, - Des moyens de numérotation périodique et continue des segments, - Des moyens de conditionnement des segments de données avant envoi en appliquant des opérations de compression, codage, entrelacement, encapsulation et cryptage, - Des moyens d'adaptation des données, 20 - Des moyens d'envoi de segments de données vers les clients du réseau pair-à-pair, - Des moyens de réception et traitement de demande de retransmission de segments, - Des moyens de réception et traitement de messages d'instructions de l'entité de pilotage (20). 25 13) Dispositif de communication (10) dit client, pour la mise en oeuvre du procédé de communication selon la revendication 10, caractérisé en ce qu'il comprend : - Des moyens de réception depuis un ou plusieurs clients du réseau pair-à-pair, de segments de données distribués sur ledit réseau pair-à-pair, - Des moyens de réception depuis l'entité de distribution (30) de segments de données, 30 - Des moyens de distribution de segments de données vers d'autres clients du réseau pair-à-pair suivant une planification définie, - Des moyens de reconstruction de données à partir de segments reçus, 3042670 - 23 - Des moyens d'envoi, vers l'entité de pilotage du réseau pair-à-pair, d'un message d'enregistrement en tant que client du réseau pair-à-pair, Des moyens d'envoi, vers l'entité de pilotage du réseau pair-à-pair, de messages d'informations sur les caractéristiques et capacités du dispositif. 14) Programme d'ordinateur comportant des instructions pour l'exécution du procédé de communication selon les revendications 1, à 10, lorsque ledit programme est exécuté par un ordinateur.