FR 3060920 A1 20180622 FR 1601806 A 20161220 1 SYSTEME ET PROCEDE POUR LA TRANSMISSION DE DONNEES DANS UN SYSTEME SATELLITAIRE L'invention concerne un système et un procédé utilisés 5 notamment pour le transport de données vidéo dans des systèmes de télécommunication multi-spot par satellite. Elle peut être utilisée dans toutes les installations utilisant un système satellitaire pour optimiser la transmission de données de type vidéo ou des données de taille équivalente. 10 Les services vidéo représentent une large majorité des contenus transportés par les infrastructures de type Internet, de l'ordre de 70 à 80%. En particulier, les services à la demande, notamment dans les architectures de service « Infra-service » plus connues sous l'abréviation anglo-saxonne OTT (over-the-top service) pour la vidéo à la demande ou sous l'abréviation 15 VoD (Video on Demand), nécessitent à la fois des débits importants et une qualité de service garantie. Leur transmission dans le cas de satellite de diffusion multi-spot (broadcast services) pose donc le problème, d'une part de gâchis de la ressource qui est utilisée de nombreuses fois pour le même contenu, et d'autre part de limiter l'impact de la latence introduite par le 20 satellite du fait des temps de transmission et des protocoles de communications mis en oeuvre avec ces architectures de service OTT. L'art antérieur décrit différents systèmes et méthodes pour optimiser le transport de ces données vidéo. Une première famille de solution repose sur des architectures de 25 cache mises en oeuvre dans le segment sol utilisateurs. Ces architectures permettent d'améliorer grandement le transport et la qualité de service offerte pour ces contenus. Cependant, dans cette solution la présence de cache dans les terminaux satellites implique un surcoût important du segment sol utilisateur et des problématiques de maintenance et d'opérations. De plus, 30 les caches installés du côté gateway, ne permettent pas de limiter le gâchis de ressources sur le segment satellite. 3060920 2 Une seconde famille est basée sur une architecture qui va traiter au niveau du satellite les données sur la voie aller (gateway vers utilisateur) et sur la voie retour (utilisateur vers gateway). Les données vont être démodulées/décodées et les flux de données résultants pris en charge par un processeur embarqué au niveau du satellite. Dans ce cadre, un cache est utilisé au niveau du satellite pour le stockage des données. La décision de cache, ainsi que l'accès à ces données, sont réalisés directement par le processeur bord, comme il est décrit par exemple dans le brevet US 6,697,850. Cette solution présente l'inconvénient de nécessiter la régénération de la voie retour, ce qui complexifie la charge utile du satellite et accroît notamment sa masse et donc son coût. Une solution alternative est décrite dans la demande de brevet US20030033355. Le principe décrit consiste à démoduler et décoder uniquement la voie aller pour réaliser une opération de décalage temporel. Cette solution ne convient donc pas au besoin de cache par objet relatif à l'accélération de la VoD. Dans ce cas, il n'y a pas d'accès à la demande, le flux vidéo (live) est monté une fois au satellite et redistribué vers tous les utilisateurs à un créneau horaire donné ; il n'y a pas de demande d'accès des utilisateurs, ni de contrôle de congestion et de reprise sur erreur. Le système et le procédé selon l'invention reposent sur une nouvelle approche consistant notamment à utiliser de façon particulière, un cache au niveau du satellite associé à des proxies disposés au niveau des gateways au sol, la voie aller étant traitée au niveau du processeur du satellite, ce dernier étant considéré comme « transparent » pour la voie retour (i.e. le signal RF est simplement réamplifié, sans être traité numériquement) . Le mot contenu est utilisé pour désigner les services, les données demandées par un utilisateur, etc. Les utilisateurs accèdent à un contenu de la façon suivante. Un premier flux concerne l'envoi du contenu vidéo d'une gateway vers le satellite pour stockage au niveau du satellite. Lorsque les utilisateurs désirent 3060920 3 accéder au contenu, ils envoient un flux de requête, jusqu'à la gateway, qui est ensuite redirigé vers le bord (satellite) pour être ensuite traité. Enfin, le satellite peut délivrer le contenu aux terminaux qui en ont fait la demande, voire à d'autres terminaux dans le même spot s'ils peuvent le stocker. 5 L'invention concerne un procédé pour la transmission de données dans un système satellitaire comprenant au moins un satellite comprenant des capacités de démodulation, de décodage, une « gateway », ledit satellite étant adapté à traiter et à stocker dans un cache des données utilisateurs, le système satellitaire comprenant au moins un terminal utilisateur. Le procédé 10 est caractérisé en ce qu'il comporte au moins les étapes suivantes : - Transmettre une requête Rq de contenu de données émise par un ou plusieurs utilisateurs finaux vers la « gateway » par l'intermédiaire du terminal utilisateur et du satellite, - Sur réception du contenu de la requête Rq, la « gateway » émet un 15 ordre vers le satellite, ledit ordre comprenant tout ou partie des informations contenues dans la requête Rq, afin que ledit satellite transmette le contenu associé à la requête Rq vers le ou les utilisateurs, - Le terminal utilisateur acquitte réception d'au moins une partie ou de 20 la totalité de ce contenu à la gateway. Le procédé comporte, par exemple, les étapes suivantes : - Après ouverture de la session de communication, la requête Rq est reçue par la gateway qui vérifie que le contenu demandé par un utilisateur est disponible dans un cache du satellite, 25 - La gateway émet un ordre au satellite indiquant le contenu ou paquets de données devant être délivrés à l'utilisateur, - Le satellite transmet le contenu à l'utilisateur, ce dernier acquitte la réception ou la non réception du contenu directement à la gateway. Selon une variante de réalisation, le contenu de données à 30 transmettre est découpé en plusieurs segments et en cas de perte de 3060920 4 paquets, l'utilisateur indique les paquets non reçus à la gateway et la gateway réémet un ordre au satellite lui demandant de retransmettre le ou les paquets perdus au cours de la séquence suivante de transmission de segments associé au même contenu. 5 La gateway peut utiliser un proxy HTTP& TCP et la signalisation d'acquittement ACK TCP pour indiquer au satellite le contenu des données à transmettre à un utilisateur. Selon un mode de réalisation le satellite distribue le contenu des données de manière unicast. 10 Le satellite peut aussi distribuer le contenu des données avec un protocole de distribution multicast des contenus les plus populaires vers les terminaux utilisateurs. L'invention concerne aussi un système de transmission de données dans un système comprenant au moins un satellite comprenant des 15 moyens de démodulation/décodage et une gateway, au moins un terminal utilisateur caractérisé en ce que : - Le satellite comporte au moins un cache bord adapté à mémoriser des données utilisateurs et un processeur adapté à exécuter les étapes du procédé selon l'invention, 20 - La gateway comporte au moins un proxy adapté à assurer la redirection, le contrôle et la retransmission du contenu demandé par un terminal utilisateur. Un terminal utilisateur comporte, par exemple, un cache mémorisant les contenus les moins populaires. 25 Une gateway peut comporter un proxy de type HTTP &TCP. D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit, donnée à titre illustratif et nullement limitatif, annexée des figures qui représentent : - Figure 1, un exemple de schéma d'architecture système selon 30 l'invention, 3060920 5 - Figure 2, un premier exemple d'enchaînement des étapes, - Figure 3, une variante de la figure 2 avec un proxy HTTP à bord du satellite, et - Figure 4, un exemple d'échanges de flux de données tenant compte 5 de la perte possible de paquets au cours de la transmission. La figure 1 schématise un exemple d'architecture du système permettant la mise en oeuvre du procédé selon l'invention, dans laquelle, pour des raisons de simplification, on a représenté une seule gateway et un seul terminal satellite pour expliciter l'invention, sachant que le système peut 10 comporter plusieurs gateways et plusieurs utilisateurs. Le satellite 1 comporte par exemple plusieurs modems recevant les flux de données transmis par une gateway 2. Les flux de données sont démodulés et décodés par des modems montants 101, 102, 103, 104, avant d'être acheminés à un commutateur 11 qui les redirige vers un processeur 15 12. La signalisation est envoyée au processeur 12 pour traitement, les flux de données à stocker (à bord ou au sol sur les terminaux) sont acheminés vers un cache bord ou mémoire 13, ayant notamment pour fonction de mémoriser les données éligibles, i.e., le proxy va décider les données qui seront stockées à bord du satellite, en général en fonction du type de 20 contenu et de sa popularité. Les flux de données à distribuer sont envoyés à un ensemble de modems descendants 141, 142, 143, 144, via le commutateur 11. La décision de stockage des données à bord du satellite est par exemple prise au niveau d'une gateway ou en amont afin de faciliter le traitement au niveau satellite (processeur et cache bord). La requête contient, par 25 exemple, l'adresse IP source qui désigne soit la gateway elle-même, soit un serveur en amont géré par l'opérateur du système Satcom. Sans sortir du cadre de l'invention, la décision de stockage peut aussi être prise en complément par le cache bord pour décider si le contenu des données reçu doit être stocké. Dans ce cas, une charge accrue de 30 traitement devra être supposée. 3060920 6 Une gateway 2 comporte une entrée recevant les données ou flux de données transmis par voie Internet par un fournisseur 40 par exemple. Les données sont transmises à un commutateur 21 qui va les rediriger d'une part vers un serveur mandataire de cache plus connu sous le terme anglo5 saxon « caching proxy » 22 et d'autre part vers un hub bande de base 23 qui regroupe les données. Le « caching proxy » comprend différentes fonctionnalités, notamment le stockage des objets, le contrôle des flux des données, la retransmission, etc. Les données sont transmises via un modem de transmission 24 vers la voie aller pour être distribuées au niveau des 10 modems montants du satellite. Les données provenant directement d'un utilisateur sur la voie retour sont reçues par un deuxième modem 25 afin d'être démodulées et décodées, et traitées par la gateway. Le caching proxy possède notamment les fonctions principales suivantes : - Décision de cache, 15 - Téléchargement ou Upload des contenus vers le cache bord, - Redirection des flux, - Contrôle de congestion. Le terminal satellite utilisateur 3 comprend au moins un modem 31 démodulant et décodant les données reçues avant de les transmettre à un 20 terminal bande de base 32, avant transmission vers les utilisateurs finaux 35, et un modem 33 qui permet de moduler et de coder les données avant leur transmission sur une voie de retour. La voie de retour permet le transfert des données vers la gateway 2. Dans le cas général, il y a plusieurs utilisateurs derrière le satellite. Lorsque plusieurs utilisateurs émettent une requête pour 25 un même objet, le terminal satellite peut s'en apercevoir et ne pas transmettre à nouveau une copie de la requête. La distribution des données peut être réalisée par une diffusion unicast ou multicast selon des étapes connues de l'homme du métier rappelées brièvement ci-après. 30 Pour la distribution unicast, les contenus sont préalablement envoyés à bord par une gateway sol, via un protocole assurant la fiabilisation 3060920 7 des données, protocole connu de l'homme du métier, et notamment le protocole de transmission TCP (Transmission Control Protocol). Cet envoi est préférentiellement programmé lorsque le système est peu chargé, par exemple au cours de la nuit ou lors de périodes où les utilisateurs actifs sont 5 peu nombreux. Ces contenus sont alors stockés à bord (cache du satellite). Dans un second temps, un terminal utilisateur demande l'accès à cette ressource. L'utilisateur envoie pour cela une requête Rq (contenu souhaité par un utilisateur) vers la gateway qui identifie la présence de ce contenu comme préalablement transmis au satellite. La gateway redirige ensuite cette 10 requête Rq au satellite. Le satellite récupère cette requête, la traite et récupère dans son cache 13 le contenu des données demandé par un utilisateur qui est ensuite envoyé en mode unicast vers le terminal utilisateur. Dans le cas d'une diffusion de type multicast où les terminaux disposent d'un cache, le contenu est envoyé par une gateway au satellite 15 afin que ce dernier le distribue immédiatement ou qu'il le stocke dans son cache en utilisant un protocole fiable connu de l'homme du métier, par exemple TCP. Le contenu est ensuite dupliqué sur chacune des sorties concernées par ce contenu, par exemple l'ensemble des spots d'un pays, d'un même site, d'un même groupe, et le contenu est envoyé aux terminaux 20 utilisateurs correspondants par une diffusion de groupe, par exemple avec le protocole internet IP comprenant une adresse de destination Multicast. Lors d'une demande utilisateur, le terminal utilisateur va vérifier si le contenu demandé n'est pas disponible en local dans son cache (cache du terminal). La requête ne sera envoyée vers la gateway qu'à la condition que le contenu 25 n'ait pas été déjà diffusé et stocké localement. Cette solution multicast permet par exemple de charger préalablement les contenus ou flux de données les plus populaires dans le cache des terminaux utilisateurs équipés de cache. Les figures 2 à 4 font appel à des références identiques qui 30 désignent les mêmes étapes. 3060920 8 La figure 2 illustre le flux des données et des requêtes selon une première variante de réalisation du procédé selon l'invention. En faisant l'hypothèse que l'utilisateur souhaite avoir accès au contenu d'une page web ou obtenir ce contenu, l'utilisateur émet une requête 5 Rq par exemple via un clavier ou tout autre moyen approprié. La requête Rq déclenche les étapes de configuration et de connexion de la communication, notamment une ouverture de session TCP SYN, 201, auprès de la gateway et un accusé réception TCP ACK, 202 de cette requête Rq par la gateway 2 auprès de l'utilisateur 3. 10 Le modem ne fait que récupérer les paquets. L'ouverture de connexion se fera par le proxy de cache. Au préalable, il y a une phase de redirection qui est mise en oeuvre : l'utilisateur demande un contenu à un fournisseur (google par exemple) et le fournisseur ou le proxy va indiquer si le contenu préalablement chargé est disponible par l'intermédiaire du proxy. 15 L'utilisateur va faire sa demande au proxy plutôt qu'au serveur initial. L'ensemble des mécanismes de redirection mis en oeuvre dans les étapes est connu de l'homme du métier (DNS (Domaine Name System) ou HTTP redirect) et déjà mis en oeuvre dans les caches qui se trouvent dans les réseaux terrestres. Le message TCP-SYN n'est pas démodulé/décodé mais 20 transite par le satellite. Le message TCP-ACK transite aussi par le satellite. La connexion étant ouverte, l'utilisateur demande une ressource, 203, GET HTTP, à la gateway. La demande de ressource est reçue par le modem 25 de la gateway qui démodule et décode la requête et la transmet au serveur mandataire de cache 22 de la gateway. Celui-ci vérifie que le 25 contenu est bien disponible dans le cache bord du satellite. La gateway 2 après traitement du contenu de la requête de l'utilisateur Rq, transmet un ordre vers le satellite, 204, REQ({1-3}), lui indiquant les paquets de données contenus dans le cache bord 13 qui doivent être délivrés à l'utilisateur à l'origine de la requête. L'ordre est transmis via la voie aller vers l'un des 30 modems montants du satellite. Il est ensuite orienté via le commutateur 11 vers le processeur 12 pour traitement du contenu. Le satellite 1 transmet les 3060920 9 paquets de données demandés et contenus dans son cache 13 vers les modems descendants et vers l'utilisateur demandeur, 205, TCP seq1 (HTTP RESP), TCP seq2 (HTTP RESP), TCP seq3 (HTTP RESP). L'utilisateur va ensuite transmettre un acquittement de bonne réception des trois paquets 5 dans cet exemple, vers la gateway, 206, TCP ACK. L'acquittement est reçu par une fonction de contrôle de flux de la gateway. Le contenu est en fait découpé en segments TCP et éventuellement en plusieurs objets HTTP. Pour transmettre l'ensemble du contenu il faudra transmettre l'ensemble des objets HTTP (donc à chaque fois demandé par l'utilisateur via un message 10 GET) eux-même découpés en une succession de segments (paquets) TCP. Dans l'exemple donné, la seconde requête REQ({4-9}), 207, va permettre d'envoyer les segments TCP suivants pour ce même objet HTTP, TCP seq4 (HTTP RESP), ....,TCP seq9 (HTTP RESP), 208. Le terminal satellite peut finalement reconstruire le contenu des données HTTP RESP, 209. Si une 15 seconde requête est émise par un autre utilisateur pour un même objet, le HTTP RESP peut lui être envoyé immédiatement avec l'objet. La figure 3 illustre une alternative des échanges de flux de données de la figure 2, qui met en oeuvre un proxy HTTP et TCP dans la gateway pour la redirection des requêtes HTTP et des acquittements TCP 20 assurant le contrôle de congestion et de retransmission. Dans cet exemple, le procédé transmet directement les ACK TCP, en général de l'ordre de 40 octets par segment acquitté. La signalisation REQ est adaptée pour spécifier en peu de place l'ensemble des segments à transmettre afin d'éviter un overhead. 25 Les premières étapes d'ouverture de session sont semblables à celles décrites à la figure 2. La connexion TCP est établie entre l'utilisateur et le satellite avec redirection par la gateway, TCP SYN, 202a, TCP ACK, 202b. La gateway 2 après traitement du contenu de la requête de l'utilisateur Rq, transmet un ordre vers le satellite, 301. Le satellite 1 transmet les paquets de 30 données demandés et contenus dans son cache 13 vers les modems descendants 205 et vers l'utilisateur demandeur, TCP seq1 (HTTP RESP), 3060920 10 TCP seq2 (HTTP RESP), TCP seq3 (HTTP RESP). Le terminal satellite va ensuite transmettre un acquittement de bonne réception des trois paquets, dans cet exemple vers la gateway, 206, TCP ACK. La gateway va ensuite réitérer la transmission des ACK TCP suivants 302 afin de transmettre les 5 segments restants TCP seq4 (HTTP RESP), ....,TCP seq9 (HTTP RESP), 208. Le satellite peut reconstruire le contenu des données HTTP RESP, 209. Le procédé selon l'invention permet aussi de retransmettre les données ou le contenu demandé par un utilisateur dans le cas d'une perte de paquets. La figure 4 illustre l'échange des flux de données et de requêtes. 10 Les premières étapes 201, 202 et 203 pour l'ouverture de session et la configuration du système sont identiques à celles décrites à la figure 2. La gateway transmet un ordre, 204, au satellite indiquant les contenus à transmettre du cache selon la requête de l'utilisateur, REQ({1-3}). L'utilisateur acquitte la réception 406 (TCP AKC1, TCP ACK3) de la 15 transmission d'une partie du contenu reçu, 405, TCP seq1 (HTTP RESP), TCP seq3 (HTTP RESP), mais pas celle du contenu TCP seq2 (HTTP RESP), 405p qui n'a pas été reçu. Cette perte de paquets est détectée par le récepteur TCP de la gateway qui comprend un mécanisme intégré connu de l'homme du métier qui permet de détecter une rupture des numéros de 20 séquence. La gateway va alors retransmettre en même temps que la seconde requête REQ({4-9}), une requête REQ(2) pour le contenu perdu lors de la transmission précédente du satellite vers les terminaux satellite. Le satellite transmettra le contenu, TCP seq4 (HTTP RESP), ....,TCP seq9 (HTTP RESP) 408, et TCP seq2 (HTTP RESP) 408p. Le satellite peut 25 reconstruire le contenu des données HTTP RESP, 209. Sans sortir du cadre de l'invention, le cache du satellite peut être intégré à un système de cache hiérarchique plus global où les autres caches sont présents dans la gateway et/ou dans les terminaux. Le procédé et le système selon l'invention permettent notamment 30 une distribution optimisée de contenus vidéo par exemple à la demande des utilisateurs en minimisant l'utilisation du lien feeder et la distribution des 3060920 11 contenus à l'ensemble des terminaux pour un stockage local complémentaire. L'ajout d'une fonction de cache bord dans un satellite multi-spot permet notamment : 5 1) de diminuer l'utilisation de la bande sur le lien montant gateway- satellite ou lien « feeder », un contenu n'est monté qu'une fois par une seule gateway (cette meilleure utilisation de la bande permet ainsi de diminuer éventuellement le nombre de GW). Par rapport à une solution de cache avec un satellite charge utile transparente, le gain 10 en bande sur cette liaison équivaut au nombre d'accès successifs à ce contenu, 2) dans le cas de terminaux satellite sans cache : a) de diminuer le coût du segment sol, b) de réduire la latence pour ces services (équivalent à un cache 15 localisé dans la gateway), 3) dans le cas de terminaux avec cache : a) d'améliorer le nombre de contenus cachés et/ou de diminuer la taille des caches sols en proposant un système de cache hiérarchique (contenus extrêmement populaires mis en cache 20 dans le ST, très populaires mis en cache à bord du satellite), b) de réduire la latence / améliorer la qualité d'expérience pour l'accès aux contenus cachés localement dans les terminaux, c) de diminuer l'utilisation de la bande voie aller du segment utilisateur pour les contenus devant être stockés dans le 25 terminal. Le gain résultant sera in fine lié au nombre d'accès successifs à ce contenu dans le spot. REVENDICATIONS1 - Procédé pour la transmission de données dans un système satellitaire comprenant au moins un satellite (1) comprenant des capacités de démodulation/décodage, une « gateway » (2), ledit satellite étant adapté à traiter et à stocker dans un cache bord (13) des données utilisateurs, le système satellitaire comprenant au moins un terminal utilisateur (3) caractérisé en ce qu'il comporte au moins les étapes suivantes : - Transmettre (203) une requête Rq de contenu de données émise par un ou des utilisateurs finaux (204) vers la « gateway » (2) par l'intermédiaire du terminal satellite utilisateur (3) et du satellite (1), - Sur réception du contenu de la requête Rq, la « gateway » (2) émet un ordre vers le satellite (1) comprenant tout ou partie des informations contenues dans la requête Rq, afin que le satellite (1) transmette le contenu associé à la requête Rq vers le ou les terminaux utilisateurs demandeurs, - Le ou les terminaux utilisateurs (3) acquittent réception (206) d'au moins une partie ou de la totalité de ce contenu à la gateway. 2 - Procédé selon la revendication 1 caractérisé en ce qu'il comporte au moins les étapes suivantes : - Après ouverture de la session de communication, la requête Rq est reçue par la gateway (2) qui vérifie que le contenu demandé par un utilisateur est disponible dans un cache du satellite, - La gateway (2) émet un ordre au satellite (1) indiquant le contenu ou paquets de données devant être délivrés à l'utilisateur (204), - Le satellite (1) transmet le contenu à l'utilisateur (3), (205), ce dernier acquitte la réception ou la non réception du contenu directement à la gateway (206). 3060920 13 3 - Procédé selon la revendication 2 caractérisé en ce que le contenu de données à transmettre est découpé en plusieurs segments et en cas de perte de paquets, l'utilisateur indique les paquets non reçus à la gateway (405p, 406) et la gateway réémet un ordre au satellite (407) lui demandant 5 de retransmettre le ou les paquets perdus (408p) au cours de la séquence suivante de transmission de segments associé au même contenu (408). 4 - Procédé selon l'une des revendications 1 à 3 caractérisé en ce que la gateway utilise un proxy HTTP&TCP et la signalisation d'acquittement ACK 10 TCP (202a, 202b) pour indiquer au satellite le contenu des données à transmettre à un utilisateur. 5 - Procédé selon l'une des revendications 1 à 4 caractérisé en ce que le satellite distribue le contenu des données de manière unicast. 15 6 - Procédé selon l'une des revendications 1 à 4 caractérisé en ce que le satellite distribue le contenu des données avec un protocole de distribution multicast des contenus les plus populaires vers les terminaux utilisateurs. 20 7 - Système de transmission de données dans un système comprenant au moins un satellite (1) comprenant des moyens de démodulation (10i) et une gateway (2), au moins un terminal utilisateur (3) caractérisé en ce que : - Le satellite (1) comporte au moins un cache bord (13) adapté à mémoriser des données utilisateurs et un processeur (12) adapté à 25 exécuter les étapes du procédé selon l'une des revendications 1 à 6, - La gateway (2) comporte au moins un proxy (22) adapté à assurer la redirection, le contrôle et la retransmission du contenu demandé par un terminal utilisateur (3). 3060920 14 8 - Système de transmission selon la revendication 7 caractérisé en ce qu'un terminal utilisateur (3) comporte un cache mémorisant les contenus les moins populaires. 5 9 - Système de transmission selon l'une des revendications 7 ou 8 caractérisé en ce qu'une gateway (2) comporte un proxy de type HTTP&TCP.