Procédé et dispositif de transmission de contenu
La présente invention concerne un procédé et un dispositif de transmission de contenu. Elle concerne, en particulier, le domaine des télécommunications, et plus particulièrement des télécommunications sur un réseau, par exemple Internet, et celui des applications informatiques sur Internet tel que la distribution de contenu (« Content Distribution ») et les applications pair-à-pair ou « P2P » (pour, en anglais « peer-to-peer »).
Les applications de partage de fichiers pair à pair sont largement utilisées sur Internet et représentent une importante part du trafic échangé. Parmi ces applications, on peut distinguer les applications de diffusion de fichiers des applications de partage de fichiers proprement dit. Les premières permettent de mettre en commun les ressources d'un grand nombre de pairs pour télécharger un fichier donné. L'exemple le plus connu est « BitTorrent » (marque déposée). Les deuxièmes consistent à mettre en commun un grand nombre de fichiers qui forment une bibliothèque distribuée. Une des applications les plus populaires de cette catégorie est « e ule » (marque déposée). La présente invention concerne principalement cette deuxième catégorie.
Les applications de partage de fichier sont proposées :
- pour le partage de contenu (« Content Distribution ») pair-à-pair. L'application peut reposer sur un programme téléchargé sur le terminal du client ou sur un programme installé dans un décodeur (« Set-top box »). Le propriétaire du contenu peut opter pour une diffusion commerciale, rémunérée à l'acte ou sur abonnement ;
- comme principe de base pour les échanges sur l'Internet du futur. Au lieu d'accéder comme aujourd'hui à un fichier par son URL (acronyme de « Uniform Resource Locator » pour localiseur de ressource uniforme), c'est dire l'adresse du fichier, on identifiera un fichier par un code unique. Le fichier est ensuite téléchargé depuis les terminaux de tous les internautes possédant tout ou partie du fichier recherché. Le lecteur pourra se reporter à l'article de V. Jacobson « A New Way to Look at Networking », août 2006, site de la toile Google (http://video.google.com/videoplay?docid=-6972678839686672840) et au projet européen « SAIL » (suite du projet « 4WARD ») où ce paradigme de réseau est décrit comme « information-centric » et le réseau est appelé « Network of Information » (réseau d'information).
L'application du demandeur de contenu s'adresse à tout ou partie des autres utilisateurs possédant au moins une partie du fichier. L'utilisateur leur demande en parallèle des morceaux complémentaires du fichier. Les utilisateurs sollicités stockent la demande et y répondent suivant des règles de service définies par l'application de partage de fichier en question, La diffusion d'un fichier « i » par le terminal d'un possesseur « P » se fait actuellement de la façon suivante. Le possesseur P met en file d'attente les demandes de fichiers qui lui sont soumises dont, en particulier, les demandes pour le fichier i. Ces fichiers sont, par ailleurs,
découpés en blocs. P envoie à chaque demandeur des blocs appartenant aux fichiers demandés par ce demandeur.
Suivant une première famille de règles de service, les demandes peuvent être servies en fonction de leur ordre d'arrivée, suivant un tirage aléatoire, en parallèle, ou suivant d'autres règles ne prenant pas en compte le nombre d'exemplaires du fichier disponibles. Un exemple est la discipline de service « Round Robin » (marque déposée) dans laquelle P envoie à tour de rôle un bloc du fichier demandé à chaque demandeur dans sa file. Soit, à un moment donné, Xi demandeurs pour le fichier i chez un possesseur P. Dans la mesure où ces demandes sont traitées sans tenir compte de la popularité, et dans la mesure où ces systèmes comportent un grand nombre d'utilisateurs et que Xi varie lentement, on peut considérer que, en moyenne, une demande particulière d'un fichier i reçoit une part 1/(X1 + ...+ Xi + ...) de la bande passante que le possesseur P réserve à l'application. On peut estimer que ce résultat donne une estimation approximative pour les règles ne prenant pas en compte le nombre d'exemplaires du fichier, que les fichiers soient servis en fonction de leur ordre d'arrivée, en suivant un tirage aléatoire ou en parallèle.
Ainsi les performances, en termes de délai d'obtention d'un fichier résultant de l'utilisation de cette première famille de règles de service dans l'émetteur du fichier vont dépendre, de façon évidente, du nombre d'exemplaires de ce fichier parmi les utilisateurs de l'application. En particulier, un fichier moins populaire sera plus long à télécharger car il existe moins d'utilisateurs possédant un exemplaire, auquel on peut demander le fichier. Cet effet est démultiplié par le fait qu'un fichier peu populaire est amené à côtoyer, chez un possesseur, des fichiers très populaires. Dans ce cas, le possesseur très sollicité n'attribue qu'une faible part de sa bande passante à la diffusion du fichier peu populaire. Cela aboutit aux performances que l'on peut observer sur les applications de partage de fichier P2P où les fichiers peu populaires sont sujets à des temps de téléchargement très longs.
Une deuxième méthode de diffusion consiste à utiliser des règles de service prenant en compte la popularité d'un fichier, c'est-à-dire le nombre d'exemplaires du fichier disponibles. A titre d'exemple l'application « eMule » définit des seuils de popularité en dessous desquels le poids d'un fichier est augmenté de façon à lui donner une préférence pour son émission, Ces seuils sont en nombre limité et les poids sont choisis de façon heuristique.
Soit, à un moment donné, un nombre Xi de demandeurs pour le fichier i disponible sur le terminal d'un possesseur P. Soit « pi » le poids associé au fichier i. On peut considérer que, en moyenne, cette famille de règles attribue à une demande particulière d'un fichier i une part pi/(p1*X1 + ...+ pj*Xj + ...) de la bande passante que le possesseur P réserve à l'application. Ce mode de partage est mis en œuvre par exemple avec la discipline de service « Weighted Round Robin » dans laquelle on sert les demandes à tour de rôle comme pour « Round Robin » mais on sert une même demande plusieurs fois (en fonction du poids associé) avant de recommencer un tour. Le lecteur pourra se reporter, à ce propos, à l'article de E.
Hahne, « Round Robin scheduling for fair flow control », Ph.D. thesis, Dept. Eiect. Eng. and Comput. Sci., M.I.T., décembre 1986.
Une autre discipline de service qui permet de s'affranchir de poids en valeur entière est « Weighted Fair Queueing » citée dans les documents suivants :
- A. Demers, S. Keshav, S. Shenker, « Analysis and simulation of a fair queueing algorithm », Internet Res. and Exper., vol. 1 , 1990,
- A. K. Parekh, R. G. Gallager, « A Generalized Processor Sharing Approach to Flow Control in Integrated Services Networks »: The Single-Node Case", IEEE/ACM Transactions on Networking, Vol. 1, No. 3, Juin 1993 et
- S. J. Golestani, « A self-clocked fair queueing scheme for high speed applications », proceedings INFOCO '94, Avril 1994
Toutefois, les utilisateurs d'eMule peuvent constater que cette méthode ne permet pas de retrouver des temps d'obtention de fichier du même ordre pour les fichiers populaires et non populaires. Il est en effet difficile de choisir les seuils et les poids sachant que la popularité d'un fichier peut varier d'un facteur de 1 à 00000.
Les méthodes de partage existantes aboutissent ainsi à des temps de téléchargement très longs pour les fichiers non populaires, c'est-à-dire ceux pour lesquels peu d'exemplaires existent.
La présente invention vise à remédier à ces inconvénients.
A cet effet, selon un premier aspect, la présente invention vise un procédé de transmission d'un contenu i par un fournisseur de ce contenu, caractérisé en ce qu'il comporte :
une étape de réception, par ledit fournisseur, d'une requête de transmission du contenu i en provenance d'un demandeur,
une étape d'obtention, par ledit fournisseur, d'une estimation Ni d'un nombre de fournisseurs dudit contenu i et
une étape de transmission du contenu i, au cours de laquelle, ledit fournisseur transmet au demandeur au moins une partie du contenu i en attribuant au demandeur une proportion moyenne de la bande passante allouée par ce fournisseur à la diffusion de contenus calculée sous forme d'un coefficient, fonction du nombre Ni de fournisseurs du contenu i et d'une valeur réelle A, commune à tous les contenus à transmettre, servant à ajuster l'impact sur ledit coefficient du nombre Ni de fournisseurs du contenu i.
Seion un mode de réalisation particulier, ce coefficient est calculé comme produit du ratio 1/NÏA par un coefficient de pondération Wi affecté au contenu i, A prenant sa valeur dans l'ensemble des nombres réels.
Grâce à ces dispositions, on peut décider, par le choix de la valeur A, qui est commune à tous les contenus à transmettre, de favoriser ou non les contenus selon ieur
popularité. En effet, le nombre Ni représente le nombre de pairs « partageant » le fichier à un instant donné: c'est le nombre de pairs qui:
soit stockent le contenu complet à transmettre afin de le partager,
soit demandent le fichier et ont reçu un bloc de données complet, faisant partie du contenu à transmettre, et qui sont susceptibles de retransmettre un te! bloc à un autre pair, le bloc étant ici l'unité d'échange minimale utilisée pour la transmission de contenus.
Cette valeur A est utilisable, en effet, pour augmenter ou diminuer la distorsion entre les temps de réponse des fichiers ayant différentes popularités. En fonction de la valeur du paramètre A, les temps de réponse pour les fichiers peu populaires peuvent être rendus aussi proches que souhaités des temps de réponse pour les fichiers très populaires. Au contraire, il possible d'augmenter encore plus les temps de réponse pour les fichiers peu populaires afin de réduire ceux concernant les fichiers très populaires. Enfin, il est possible d'inverser la tendance et de rendre les temps de réponse des fichiers peu populaires inférieurs aux temps de réponse des fichiers très populaires.
Il devient donc possible d'obtenir des performances approximativement égales, en termes de délai de transmission de fichiers de mêmes dimensions, quel que soit le nombre de fournisseurs, c'est-à-dire le nombre d'exemplaires disponibles du contenu recherché par le demandeur.
Dans un mode de réalisation, la proportion moyenne de bande passante allouée aux demandeurs du contenu i est le produit dudit coefficient par le nombre Xi de demandeurs du contenu î attendant d'être servis par ledit fournisseur.
On note que la mise en œuvre de la présente invention ne nécessite pas de calcul complexe, et donc de consommation de ressources de la part des fournisseurs du contenu.
On note aussi que la mise en œuvre de la présente invention ne nécessite pas de modification du protocole d'échange d'information entre utilisateurs. De plus, elle ne nécessite pas que tous les utilisateurs l'adoptent pour fournir ses avantages, éventuellement réduits en fonction du nombre d'utilisateurs ne l'adoptant pas. La présente invention peut donc être déployée progressivement sur une application P2P existante.
Selon un mode de réalisation, le coefficient de pondération Wi est égal à Ki * Ei /
S, où
S représente un coefficient de normalisation de la bande passante allouée par ce fournisseur à la diffusion des contenus attendant d'être servis par ledit fournisseur,
Ki est un coefficient, fonction d'une catégorie de contenus à laquelle appartient le contenu i,
Ei est un coefficient de modulation affecté au contenu i, choisi tel que le rapport entre deux valeurs de coefficients de modulation Ei et Ej affectés à deux contenus i et j à transmettre est compris dans l'intervalle [0,1 ; 0],
La somme S vise à normaliser les coefficients calculés. Compte tenu des notations adoptées, cette somme est égale à la somme:
Κ1Έ1*Χ1/Ν1Α + ... + (Kj*Ej*Xj/NjA) + ...
où Xj représentant le nombre de demandeurs du contenu j attendant d'être servis par le fournisseur considéré, j variant de 1 à jmax, où jmax est le nombre total de contenus attendant d'être servis par ce fournisseur.
Dans cette somme, la proportion de bande passante allouée aux demandeurs du contenu j est Kj*Ej*XJ/Nj A
Le coefficient Ki permet de moduler la bande passante allouée à un contenu afin, par exemple, de favoriser / défavoriser délibérément certains contenus, quelle que soit leur popularité. Les contenus de coefficient Ki les plus élevés peuvent être ainsi favorisés. Ainsi, à l'intérieur d'une même catégorie de contenus possédant le même coefficient Ki, les performances sont approximativement égales pour une même popularité Ni.
Le coefficient de modulation Ei représente des variantes possibles dans le calcul du coefficient Wi. Le coefficient Ei affecté à un contenu i est, par exemple, une fonction de Xi et/ou de Ni. Il a été observé qu'une valeur de Ei égale à 1 pour tous ies contenus i est optimale, mais que des variations autour de cette valeur optimale sont possibles sans dégrader sensiblement les performances obtenues avec cette valeur optimale.
Selon des caractéristiques particulières, l'étape d'obtention de l'estimation Ni comporte :
une étape d'émission, par ledit fournisseur, d'une requête de déclaration de disponibilité du contenu i à destination d'utilisateurs tiers potentiellement fournisseurs du contenu i,
une étape de réception de réponses de la part d'utilisateurs tiers potentiellement fournisseurs du contenu i et
une étape de traitement des réponses pour déterminer l'estimation Ni du nombre de fournisseurs dudit contenu.
Grâce à ces dispositions, le fournisseur détermine, de manière autonome, grâce à une requête fictive du contenu i, le nombre Ni, que les autres utilisateurs, y compris le demandeur, mettent en œuvre, ou non, le procédé objet de la présente invention.
Selon des caractéristiques particulières, l'étape d'obtention de l'estimation Ni comporte une étape de détermination si l'estimation Ni a déjà été obtenue par le fournisseur au cours d'une durée écoulée prédéterminée et, seulement si l'estimation Ni n'a pas déjà été obtenue, l'étape d'émission de la requête à destination des utilisateurs tiers, l'étape de réception de réponses de la part d'utilisateurs tiers et l'étape de traitement.
On évite ainsi un risque de congestion du réseau dû aux requêtes fictives émises par les fournisseurs pour connaître l'estimation Ni du nombre de fournisseurs du contenu.
Selon des caractéristiques particulières, l'étape d'obtention de l'estimation Ni comporte :
une étape d'émission, par le demandeur, d'une requête de déclaration de disponibilité du contenu i à destination d'utilisateurs potentiellement fournisseurs du contenu i,
une étape de réception de réponses de la part d'utilisateurs potentiellement fournisseurs du contenu i,
une étape de traitement des réponses pour déterminer l'estimation Ni du nombre de fournisseurs dudit contenu et
une étape de transmission de l'estimation Ni, par le demandeur à destination d'au moins un fournisseur.
Grâce à ces dispositions, le procédé objet de la présente invention ne met pas en œuvre de requête supplémentaire, par rapport aux procédés connus dans l'art antérieur.
Selon des caractéristiques particulières, au cours de l'étape de transmission, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante fonction décroissante de l'estimation Ni du nombre de fournisseurs.
Selon des caractéristiques particulières, au cours de l'étape de transmission, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante en proportion moyenne de (1/NiA)/(X1/N1A + ...+ Xj/NjA + ...) de la bande passante allouée par ce fournisseur à la diffusion de contenus de pair à pair.
On note que l'application impiémentant le procédé objet de la présente invention est paramétrable de façon à pouvoir augmenter ou diminuer la distorsion entre les temps de réponse des fichiers de différentes popularités. En fonction de la valeur du paramètre A, les temps de réponse pour les fichiers peu populaires peuvent être rendus aussi proches que souhaités des temps de réponse pour les fichiers très populaires. Au contraire, il possible d'augmenter encore plus les temps de réponse pour les fichiers peu populaires afin de réduire ceux concernant les fichiers très populaires. Enfin il est possible d'inverser la tendance et de rendre les temps de réponse des fichiers peu populaires inférieurs aux temps de réponse des fichiers très populaires.
La possibilité de moduler (es distorsions de temps de réponse est importante afin de s'adapter aux objectifs que l'on se fixe lors de la diffusion des fichiers, objectifs qui dépendent du contexte. Par exemple si l'on souhaite que de nouveaux contenus se diffusent rapidement, on fixe la valeur du paramètre A de façon à ce que les contenus peu populaires bénéficient de temps de réponses particulièrement courts. A contrario, on peut souhaiter paramétrer le système de façon à renforcer l'avantage dont bénéficient naturellement les contenus populaires.
Si la valeur de A est positive, les fichiers peu populaires voient leurs temps de réponses diminuer et ceci d'autant plus que la valeur de A augmente. Si la valeur de A est négative, ce sont les fichiers populaires qui voient leurs temps de réponses diminuer (au détriment des fichiers peu populaires) et ceci d'autant plus que la valeur absolue de A augmente. Le cas particulier A=1 produit des temps de réponses quasiment indépendants de la
popularité. Si on choisit A>1 , on obtient des temps de réponses pour les fichiers peu populaires qui sont inférieurs aux temps de réponse des fichiers populaires.
Selon des caractéristiques particulières, au cours de l'étape de transmission, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante fonction, en outre, du contenu à transmettre.
On peut, ainsi, favoriser les fichiers comportant les quantités d'information les plus importantes, ou au contraire, les plus faibles, les contenus textes, images, sons, musiques ou vidéos, par exemple.
Selon des caractéristiques particulières, au cours de l'étape de requête d'un contenu i, l'utilisateur demandeur transmet une requête de déclaration de disponibilité aux fournisseurs potentiels.
Selon des caractéristiques particulières, au cours de l'étape de requête d'un contenu i, l'utilisateur demandeur transmet une requête de déclaration de disponibilité à au moins un serveur qui centralise les contenus disponibles auprès des fournisseurs potentiels.
La présente invention s'applique ainsi aux applications de partage de fichiers qui s'appuie sur des serveurs pour retrouver les possesseurs de fichiers.
Selon des caractéristiques particulières, au cours de l'étape de requête d'un contenu i, l'utilisateur demandeur transmet une requête de déclaration de disponibilité à d'autres utilisateurs, qui retransmettent ladite requête.
La présente invention s'applique ainsi aux applications de partage de fichiers qui s'appuient sur des systèmes de recherche de fichier de proche en proche, comme, par exemple, les applications Gnutella (marque déposée) et eMuie lorsque cette dernière s'appuie sur l'application distribuée Kademlia (marque déposée).
Selon un deuxième aspect, la présente invention vise un dispositif de transmission de contenu qui comporte :
un moyen de réception, par ledit fournisseur, d'une requête de transmission du contenu i en provenance d'un demandeur,
un moyen d'obtention, par ledit fournisseur, d'une estimation Ni du nombre de fournisseurs dudit contenu et
un moyen de transmission du contenu i adapté à transmettre au demandeur au moins une partie du contenu i en attribuant au demandeur une proportion moyenne de la bande passante allouée par ce fournisseur à la diffusion de contenus calculée comme sous forme d'un coefficient, fonction du nombre Ni de fournisseurs du contenu i et d'une valeur réelle A, commune à tous les contenus à transmettre, servant à ajuster l'impact sur ledit coefficient du nombre Ni de fournisseurs du contenu i.
Selon un troisième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions
permettant la mise en œuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus.
Selon un quatrième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovibfe ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus.
Les avantages, buts et caractéristiques de ce dispositif, de ce programme d'ordinateur et de ce support d'information étant similaires à ceux du procédé objet de la présente invention, tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici.
D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif en regard des dessins annexés, dans lesquels :
- la figure 1 représente, schématiquement, des utilisateurs d'une application de partage de contenus,
- ta figure 2 représente, schématiquement, des fichiers disponibles auprès d'utilisateurs de l'application de partage de contenus,
- la figure 3 représente, schématiquement, un mode de réalisation particulier d'un dispositif objet de la présente invention,
- la figure 4 représente, sous forme de logigramme, des étapes mises en œuvre dans un premier mode de réalisation particulier du procédé objet de la présente invention et
- la figure 5 représente, sous forme de logigramme, des étapes mises en œuvre dans un deuxième mode de réalisation particulier du procédé objet de la présente invention.
Dans toute la description, on appelle « utilisateur » ou « pair », un terminal disposant des moyens d'implémenter une application de partage de contenus, notamment pour télécharger un contenu sur un réseau. Par exemple, il s'agit d'ordinateurs personnels munis d'un modem ou d'un boîtier de connexion à Internet et de programmes adéquats dont plusieurs sont cités ci-dessus.
On observe, en figure 1, reliés à un réseau de communication 05, cinq utilisateurs ou « pairs » 115 à 130 utilisant une application de partage de fichiers. Le réseau de communication 105 est, par exemple, Internet. Au moins un utilisateur met en œuvre un programme d'ordinateur (non représenté) chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en œuvre du procédé objet de la présente invention, tel que décrit ci-dessous. Ce programme est stocké sur un support d'informations (non représenté) lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions de ce programme, par exemple, un disque dur, une clé amovible ou un disque compact.
On retrouve, en figure 2, les utilisateurs 115 à 130. On observe aussi, en figure 2, des fichiers disponibles auprès des utilisateurs 115, fichiers 116, 120, fichiers 121, 125, fichiers 126 et 130, fichiers 131. Dans la figure 2 l'utilisateur 1 0 et l'utilisateur 130 demandent à
l'utilisateur 120 de leur envoyer des blocs de données composant le fichier F1 et l'utilisateur 115 demande à l'utilisateur 120 de lui envoyer des blocs de données composant le fichier F2.
En figure 3 est représenté le système de files d'attente à l'émission dans l'utilisateur 120. Comme dans la figure 2, les utilisateurs 0 et 130 ont demandé le fichier F1 à l'utilisateur 120, tandis que l'utilisateur 115 a demandé le fichier F2 à l'utilisateur 120.
Dans ce mode de réalisation il y a une file par fichier. La première file 140 concerne le fichier F1 et la deuxième file 145 concerne le fichier F2. La première file 140 comporte donc des blocs du fichier F1 à transmettre à l'utilisateur 1 0 et des blocs du fichier F1 à transmettre à l'utilisateur 130. La deuxième file 145 comporte des blocs du fichier F2 à transmettre à l'utilisateur 115. Un gestionnaire d'émission de blocs de données 150 sert les files d'attente, c'est-à-dire y puise des blocs de données des fichiers à transmettre, et transmet ces données sur le réseau 105, par l'intermédiaire d'une interface d'émission 155. Par exemple, le gestionnaire d'émission 150 est un serveur de type « Weighed Fair Queueing » (attente ajustée) ou « Weighted Round Robin ».
Préférentiellement, les files sont servies, par le gestionnaire d'émission de blocs
150, à proportion moyenne calculée comme produit du ratio 1/NiA par un coefficient de pondération Wi affecté au contenu i, A prenant sa valeur dans l'ensemble des nombres réels, et Ni étant une estimation du nombre de fournisseurs du contenu i.
Selon un mode de réalisation, le coefficient de normalisation Wi est égal à est égal à Ki * Ei / S, où
- S représente un coefficient de normalisation de la bande passante totale allouée par ce fournisseur à la diffusion aux contenus attendant d'être servis par ledit fournisseur,
- Ki est un coefficient, fonction d'une catégorie de contenus à laquelle appartient le contenu i,
- Ei est coefficient de modulation affecté au contenu i, choisi tel que le rapport entre deux valeurs de coefficients de modulation Ei et Ej affectés à deux contenus i et j à transmettre est compris dans l'intervalle [0,1 ; 10].
La somme S vise à normaliser les coefficients calculés. Compte tenu des notations adoptées, cette somme est égale à la somme:
K1*E1*X1/N1A + ... + (Kj*Ej*Xj/NjA) + ...
Le coefficient Ki permet de moduler la bande passante allouée à un contenu i, afin par exemple de favoriser / défavoriser délibérément certains contenus, quelle que soit leur popularité. Les contenus de coefficient Ki les plus élevés pourront être ainsi favorisés: il peut s'agit de contenus ayant une tmportance particulière, pour lesquels une transmission rapide est souhaitée. Lorsqu'on ne souhaite pas favoriser certains contenus, le coefficient Ki sera choisi égal à 1 pour tous les contenus i.
Préférentiellement, les coefficients de modulation Ei sont tels que le rapport entre deux valeurs quelconques de coefficients de modulation Ei et Ej affectés à deux contenus i et j est compris entre 0,1 et 10, préférentiellement entre 0,2 et 5. Plus préférentiellement, ce rapport
prend ses valeurs entre 0,3 et 3. Encore plus préférentiellement, ce rapport prend ses valeurs entre 0,5 et 2.
Par exemple, le coefficient Ei affecté à un contenu i est une fonction de Xi et/ou de
Ni.
Une valeur de Ei et Ki égale à 1 pour tous les contenus donnent des résultats optimaux du point de vue de l'équité.
Ainsi, l'utilisateur 120, qui agit ici comme fournisseur de contenus, transmet au moins une partie du contenu demandé par chaque utilisateur demandeur en lui attribuant une bande passante fonction du nombre estimé de fournisseurs pour ce contenu. Préférentiellement, la bande passante attribuée à chaque contenu est une fonction décroissante du nombre estimé de fournisseurs de ce contenu.
Dans le mode de réalisation décrit en figure 3, la file 1 0 est servie avec un poids de deux fois (parce qu'il y a deux demandeurs) le nombre de fournisseurs du fichier F1 et la file 145 est servie avec un poids d'une fois (il n'y a qu'un seul demandeur) le nombre de fournisseurs du fichier F2.
Dans des modes de réalisation particuliers de la présente invention, les coefficients Ki et Ei sont choisis égaux à 1 , au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante en proportion moyenne de (1/NiA)/(X1/N1A + ...+ Xj/NjA + ...) de la bande passante allouée par ce fournisseur à la diffusion de contenus de pair à pair.
Dans des modes de réalisation particuliers de la présente invention, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante fonction, en outre, du contenu à transmettre.
Les principales étapes d'un premier mode de réalisation particulier du procédé objet de l'invention sont représentées en figure 4.
Au cours d'une étape 205, chaque utilisateur participant à l'échange de contenu lance une application de partage de contenus et alloue une bande passante à cette application.
Au cours d'une étape 210, un demandeur émet une requête de déclaration de disponibilité d'un contenu i en identifiant ce contenu i, à destination d'au moins un serveur qui centralise l'information du nombre d'exemplaires de chaque contenu, à destinations d'autres utilisateurs qui relaient cette requête de proche en proche ou, notamment dans le cas des petits réseaux, à destination des autres utilisateurs. Cette requête sert à connaître des identifiants d'utilisateurs tenant à disposition le contenu i, aussi appelés « fournisseurs potentiels ». Une fois les réponses obtenues, au cours d'une étape 215, le demandeur envoie une requête de transmission d'au moins une partie du contenu i à destination de fournisseurs potentiels. Parallèlement, le fournisseur qui implémente les étapes 225 à 245, reçoit cette requête et en extrait l'identifiant du contenu i au cours d'une étape 220.
Au cours d'une étape 225, cet utilisateur détermine s'il a déjà obtenu une estimation Ni du nombre de fournisseurs potentiels du contenu i au cours d'une période de
temps prédéterminée écoulée, par exemple au cours de la dernière minute écoulée. L'intérêt de cette étape 225 est exposé à la fin de la description de la figure 4. S'il a déjà déterminé cette estimation Ni, cet utilisateur passe à l'étape 245.
Sinon, cet utilisateur émet, au cours d'une étape 230, une requête de déclaration de disponibilité du contenu i en identifiant ce contenu i, similairement à l'étape 210. Cette requête est, en fait, fictive car cet utilisateur ne cherche pas à obtenir la transmission du contenu i mais seulement à estimer ou connaître le nombre d'autres fournisseurs du contenu i.
Selon les applications de partage de contenus, au cours de chaque étape 210 et 230 de requête du contenu i, la requête est transmise :
- aux fournisseurs potentiels,
- à un serveur qui centralise les contenus disponibles auprès des fournisseurs potentiels et/ou
à d'autres utilisateurs, qui retransmettent ladite requête.
Au cours d'une étape 235, les utilisateurs qui disposent du contenu i répondent aux requêtes émises au cours de l'étape 230 en s'identif iant comme fournisseurs potentiels du contenu i. Notamment, le fournisseur implémentant les étapes 220 à 245 reçoit ces réponses.
Au cours d'une étape 240, cet utilisateur, qui sera fournisseur du contenu i vis-à-vis du demandeur ayant émis une requête au cours de l'étape 210, traite les réponses obtenues à sa requête et détermine une estimation Ni du nombre de fournisseurs potentiels du contenu i, y compris lui-même, Préférentiellement, cette estimation est le nombre exact de fournisseurs du contenu i.
Le lecteur pourra, pour cette estimation, se reporter à l'article de Patrick Brown et Sanja Petrovic « A New Statistical Approach to Estimate Global File Populations in the eDonkey P2P File Sharing System », in ITC21 , 21rst International Teletraffic Congress, 2009.
Au cours d'une étape 245, le fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante fonction de l'estimation Ni du nombre de fournisseurs.
Préférentiellement, au cours de l'étape 245, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante fonction décroissante de l'estimation Ni du nombre de fournisseurs.
Comme on ie comprend aisément, l'étape 225 permet d'éviter que les requêtes se multiplient car, sans cette étape 225, chaque requête reçue par un fournisseur provoquerait l'émission d'une requête qui, à son tour, en provoquerait d'autres, ce qui mènerait à une congestion du réseau.
Dans des modes de réalisation, au cours de l'étape 245, au moins un fournisseur transmet au moins une partie du contenu i en lui .attribuant une bande passante en proportion moyenne calculée comme produit du ratio 1/NiA par un coefficient de pondération Wi affecté au contenu i, A prenant sa valeur dans l'ensemble des nombres réels, et Ni étant une estimation du nombre de fournisseurs du contenu i.
Dans des modes de réalisation, au cours de l'étape 245, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante en proportion moyenne de {1/NiA)/(X1/N1A + ...+ Xj/N]A + ...) de la bande passante allouée par ce fournisseur à la diffusion de contenus de pair à pair, A prenant sa valeur dans l'ensemble des nombres réels, Xj représentant le nombre de demandeurs du contenu j attendant d'être servis par ledit fournisseur.
Dans des modes de réalisation, au cours de l'étape 245, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante fonction, en outre, du contenu i. Ces modes de réalisation se combinent ainsi aux procédés permettant de favoriser certains fichiers par rapport à d'autre en fonction de leur contenu. Pour cela on peut multiplier les poids 1/NiA par les coefficients de pondération Wi liés à la préférence que l'on souhaite attribuer à tel ou tel contenu.
Une première variante consiste à ce que l'utilisateur fournisseur serve un demandeur d'un fichier i en sa possession en proportion (1/Ni)/(X1/N1 + ...+ Xj/Nj + ...) de la bande passante qu'il alloue à la diffusion de fichiers. La mise en œuvre dans une réalisation particulière peut faire appel aux disciplines de service « Weighed Fair Queueing » ou « Weighted Round Robin ». Dans la mesure où cette proportion doit être obtenue en moyenne d'autres disciplines peuvent être utilisées. On peut par exemple tirer au hasard la demande à servir avec un poids transférer un bloc correspondant à la demande tirée puis refaire un tirage, etc.
Une analyse numérique montre que lorsque tous les utilisateurs participants appliquent une telle procédure, les performances en terme de délai de transmission de contenu de mêmes dimensions sont quasiment identiques quelle que soit la popularité, c'est-à-dire le nombre d'exemplaires, de ce contenu.
La mise en œuvre du mode de réalisation de l'invention illustré en figure 4 ne nécessite aucune modification du mécanisme de diffusion de fichier dans son ensemble. Seuls sont utilisés des échanges de messages existants dans toute application de ce type. De plus, chaque utilisateur peut mettre en œuvre !e procédé objet de la présente invention indépendamment des autres utilisateurs. Il n'est pas nécessaire que soit mise en œuvre une mise à jour logicielle de toutes les applications de partage et un basculement synchrone sur l'ensemble des utilisateurs vers cette mise à jour.
En particulier l'invention peut être mise en œuvre même si les utilisateurs appartiennent à des entités administratives différentes et non coordonnées.
L'invention permet aussi de moduler arbitrairement les temps de réponses en fonction de la popularité.
Si on s'intéresse à la fonction (1/NiA)/(X1/N1A + ...+ Xj/NjA + ...), dans les modes de réalisation du procédé objet de la présente invention dans lesquels l'utilisateur fournisseur sert un demandeur d'un fichier i en sa possession en proportion de cette fonction de la bande passante qu'il alloue à la diffusion de fichiers :
- si A était nui, les performances seraient les mêmes que s'il n'y avait pas de prise en compte du nombre de fournisseur du contenu, ce qui est exclu ici,
- si A est positif, les fichiers peu populaires voient leurs temps de réponses diminuer et ceci d'autant plus que A augmente,
si A>1, on obtient des temps de réponses pour les fichiers peu populaires qui sont inférieurs aux temps de réponse des fichiers populaires. Les inégalités de performances basculent dans ce cas en faveur des fichiers peu populaires, et si A est négatif, ce sont les fichiers populaires qui voient leurs temps de réponses diminuer (au détriment des fichiers peu populaires) et ceci d'autant plus que la valeur absolue de A augmente.
On note que le cas particulier A=1, produisant des temps de réponses quasiment indépendants de la popularité, est illustré en figure 3.
Les principales étapes d'un deuxième mode de réalisation particulier du procédé objet de l'invention sont représentées en figure 5.
Au cours d'une étape 305, chaque utilisateur participant à l'échange de contenu lance une application de partage de contenus et alloue une bande passante à cette application.
Au cours d'une étape 310, un demandeur émet une requête de déclaration de disponibilité d'un contenu i en identifiant ce contenu i, à destination d'au moins un serveur qui centralise l'information du nombre d'exemplaires de chaque contenu, à destinations d'autres utilisateurs qui relaient cette requête de proche en proche ou, notamment dans le cas des petits réseaux, à destination des autres utilisateurs. Cette requête sert à connaître des identifiants d'utilisateurs tenant à disposition le contenu i, aussi appelés « fournisseurs potentiels ».
Au cours d'une étape 315, les utilisateurs qui disposent du contenu i répondent à la requête en s'identifiant comme fournisseurs potentiels du contenu i.
Au cours d'une étape 320, l'utilisateur demandeur traite les réponses obtenues de la part des utilisateurs fournisseurs pour déterminer une estimation Ni du nombre de fournisseurs du contenu i.
Au cours d'une étape 325, l'utilisateur demandeur transmet, à certains des fournisseurs potentiels, une requête de transmission du contenu i. Au cours d'une étape 330, le demandeur transmet, au moins à chaque fournisseur choisi implémentant la présente invention, l'estimation Ni du nombre de fournisseurs du contenu i. On note que, dans le cas illustré en figure 5, cette estimation Ni est préférentiellement le nombre exact de fournisseurs auxquels la requête de l'étape 325 est adressée.
Au cours d'une étape 335, au moins un fournisseur transmet au moins une partie du contenu i en lui attribuant une bande passante fonction de l'estimation Ni du nombre de fournisseurs, de manière similaire à ce qui est décrit en regard de l'étape 245.