Brevet FR2991124A1 — publié le 20131129

La présente invention concerne la mise en oeuvre d'échanges selon la norme UPnP dans un cadre d'interconnexion de premier et second sous-réseaux, le premier sous-réseau étant un réseau local auquel est connectée une passerelle reliant le premier sous-réseau à un troisième sous-réseau, tel que l'Internet. Dans le monde de la téléphonie mobile, une femtocell (pour femto-cellule) est une cellule d'un système cellulaire de téléphonie mobile, offrant une couverture radio limitée et généralement dédiée à un usage domestique. La station de base, appelée femto, en charge de gérer la femtocell se connecte au réseau de l'opérateur de téléphonie mobile via une passerelle Internet (« Internet gateway » en anglais). Considérons des dispositifs conformes à la norme UPnP (« Universal Plug n' Play » en anglais), telle que définie dans le document « UPnP Device Architecture 1.1 » de l'UPnP Forum en date du 15 Octobre 2008 ou une de ses évolutions. Etant donné que la passerelle Internet n'a pas connaissance de la femtocell, masquée par la femto, il n'existe pas de règle de routage permettant à un dispositif UPnP du réseau local et à un terminal mobile UPnP de la femtocell de se connaître et d'entrer en contact. En outre, comme les domaines d'adressage sont distincts entre le réseau local et la femtocell, si un dispositif UPnP du réseau local venait à adresser des trames à une adresse IP (« Internet Protocol » en anglais, tel que défini dans le document normatif RFC 791) routable sur la femtocell, cela amènerait la passerelle Internet à transférer ces trames sur l'Internet, ce qui n'est pas le comportement désiré. Il convient de noter que la norme UPnP définit des échanges de données au format HTTP (« HyperText Transfer Protocol » en anglais, tel que défini dans le document normatif RFC 2616) qui peuvent être transportés via UDP (« User Datagram Protocol » en anglais, tel que décrit dans le document normatif RFC 768) ou via TCP (« Transmission Control Protocol » en anglais, tel que défini dans le document normatif RFC 793). Cette problématique se pose dans le cas de deux sous-réseaux interconnectés par un dispositif d'interconnexion, lorsque que l'un de ces sous-réseaux est connecté à une passerelle n'ayant pas connaissance de l'autre sous-réseau. Cela pourrait être le cas lorsque le dispositif d'interconnexion est un pont IP et que les deux sous-réseaux sont de type LAN (« Local Area Network » en anglais). Cette problématique se pose aussi lorsque la passerelle permet l'interconnexion d'un réseau local à encore un autre sous-réseau, que ce soit l'Internet ou une autre technologie supportant les transmissions IP. Il est souhaitable de pallier ces différents inconvénients de l'état de la technique. Il est plus particulièrement souhaitable de fournir une solution qui permette la découverte de services et l'échange de données entre dispositifs UPnP situés de part et d'autre d'une femto. Il est aussi souhaitable de fournir une solution qui permette de ne pas modifier le protocole UPnP pour ces besoins, et qui permette de conserver le comportement actuel des passerelles, telles que les passerelles Internet. L'invention concerne un procédé d'interconnexion de premier et second sous- réseaux, ledit premier sous-réseau étant un réseau local sur lequel est connectée une passerelle reliant ledit premier sous-réseau à un troisième sous-réseau, lesdits premier et second sous-réseaux étant adaptés pour permettre d'y connecter des dispositifs UPnP, chaque dispositif UPnP comportant au moins un serveur associé à une adresse IP et un numéro de port. Le procédé est tel qu'un dispositif d'interconnexion interconnectant lesdits premier et second sous-réseaux effectue les étapes suivantes : déterminer, pour lesdits premier et second sous-réseaux, des adresses IP et numéros de port effectifs de serveurs de dispositifs UPnP ; attribuer un numéro de port à chacun desdits serveurs ; établir, sur réception d'une requête de connexion correspondant à un numéro de port attribué par le dispositif d'interconnexion à un dit serveur, une connexion entre le dispositif d'interconnexion et ledit serveur, et une connexion entre le dispositif d'interconnexion et le dispositif UPnP ayant émis ladite requête ; et dans au moins une trame, reçue par le dispositif d'interconnexion via une desdites connexions : remplacer dans ladite trame chaque adresse IP et numéro de port effectifs de serveur appartenant au sous réseau d'émission de la dite trame par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous-réseaux, et le numéro de port attribué par le dispositif d'interconnexion audit serveur ; et remplacer dans ladite trame chaque adresse IP du dispositif d'interconnexion utilisable sur le sous réseau d'émission de la trame et numéro de port attribué par le dispositif d'interconnexion à un serveur par l'adresse IP et le numéro de port du serveur correspondant. La mise en oeuvre de cette double connexion dans laquelle le dispositif d'interconnexion joue le rôle de relais, et de ces remplacements de couples adresses IP et numéros de ports, permet la découverte de services et l'échange de données entre dispositifs UPnP situés de part et d'autre du dispositif d'interconnexion. En outre, le protocole UPnP n'a pas à être modifié et le comportement actuel des passerelles, telles que les passerelles Internet, est conservé. Selon un mode de réalisation particulier, le dispositif d'interconnexion détermine les adresses IP et numéros de port effectifs de serveurs, à partir de datagrammes UDP transmis par des dits serveurs lors d'une phase de découverte UPnP, et, pour chaque dit datagramme UDP, le dispositif d'interconnexion effectue les étapes suivantes : remplacer chaque adresse IP et numéro de port effectifs de serveur appartenant au sous réseau d'émission dudit datagramme UDP par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous- réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous-réseaux, et le numéro de port attribué par le dispositif d'interconnexion audit serveur ; et remplacer chaque adresse IP du dispositif d'interconnexion utilisable sur le sous réseau d'émission dudit datagramme UDP et numéro de port attribué par le dispositif d'interconnexion à un serveur par l'adresse IP et le numéro de port du serveur correspondant. Selon un mode de réalisation particulier, le dispositif d'interconnexion s'abonne au préalable, sur chacun des premier et second sous-réseaux, à une adresse IP et un numéro de port prédéfinis auxquels sont adressés les datagrammes UDP multicast transmis lors de la phase de découverte UPnP, et se met à l'écoute de datagrammes UDP transmis à destination de ladite adresse IP du dispositif d'interconnexion et du numéro de port attribué par le dispositif d'interconnexion audit serveur. Sont alors concernés les datagrammes UDP multicast ainsi que les datagrammes UDP unicast qui constituent les réponses à ces datagrammes UDP multicast. Selon un mode de réalisation particulier, le second sous-réseau étant une femto- cellule, le dispositif d'interconnexion s'abonne, sur chacun des premier et second sous-réseaux, à ladite adresse IP et audit numéro de port prédéfinis, lorsque le dispositif d'interconnexion détecte la présence d'un terminal mobile UPnP dans la femto-cellule. Selon un mode de réalisation particulier, le dispositif d'interconnexion détermine les adresses IP et numéros de port effectifs de serveurs, à partir de trames HTTP transportées par des trames TCP reçues par le dispositif d'interconnexion via lesdites connexions. Selon un mode de réalisation particulier, le dispositif d'interconnexion effectue les étapes suivantes : vérifier si le numéro de port effectif d'un serveur est déjà attribué par le dispositif d'interconnexion à un autre serveur ; attribuer au serveur le même numéro de port que ledit numéro de port effectif, en cas de vérification positive ; attribuer au serveur un autre numéro de port, sinon. Selon un mode de réalisation particulier, le dispositif d'interconnexion analyse un en-tête HTTP dans les trames reçues par le dispositif d'interconnexion via une desdites connexions, et le dispositif d'interconnexion n'effectue de modification de trame que si le champ CONTENT-TYPE de l'en-tête HTTP est de type texte. Selon un mode de réalisation particulier, le dispositif d'interconnexion analyse un en-tête HTTP dans les trames reçues par le dispositif d'interconnexion via une desdites connexions, et, si le champ HOST est présent dans l'en-tête HTTP, le dispositif d'interconnexion effectue les étapes suivantes : si l'adresse IP contenue dans le champ HOST est une adresse de serveur, remplacer ladite adresse IP par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous-réseaux ; et si l'adresse IP contenue dans le champ HOST est une adresse IP du dispositif d'interconnexion, remplacer ladite adresse IP par l'adresse IP du serveur avec lequel une dite connexion est établie et qui est connecté sur l'autre sous-réseau que celui duquel lesdites trames sont reçues parmi lesdits premier et second sous-réseaux. Selon un mode de réalisation particulier, le second sous-réseau est une femto- cellule et la passerelle est une passerelle Internet. L'invention concerne également un dispositif d'interconnexion destiné à interconnecter des premier et second sous-réseaux, ledit premier sous-réseau étant un réseau local sur lequel est connectée une passerelle reliant ledit premier sous-réseau et un troisième sous-réseau, lesdits premier et second sous-réseaux étant adaptés pour permettre d'y connecter des dispositifs UPnP, chaque dispositif UPnP comportant au moins un serveur associé à une adresse IP et un numéro de port. Le dispositif d'interconnexion est tel qu'il comporte : des moyens pour déterminer, pour lesdits premier et second sous-réseaux, des adresses IP et numéros de port effectifs de serveurs de dispositifs UPnP ; des moyens pour attribuer un numéro de port à chacun desdits serveurs ; des moyens pour établir, sur réception d'une requête de connexion correspondant à un numéro de port attribué par le dispositif d'interconnexion à un dit serveur, une connexion entre le dispositif d'interconnexion et ledit serveur, et une connexion entre le dispositif d'interconnexion et le dispositif UPnP ayant émis ladite requête ; des moyens pour recevoir au moins une trame via une desdites connexions ; des moyens pour remplacer dans ladite trame chaque adresse IP et numéro de port effectifs de serveur appartenant au sous réseau d'émission de la dite trame par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous-réseaux, et le numéro de port attribué par le dispositif d'interconnexion audit serveur ; et des moyens pour remplacer dans ladite trame chaque adresse IP du dispositif d'interconnexion utilisable sur le sous réseau d'émission de la trame et numéro de port attribué par le dispositif d'interconnexion à un serveur par l'adresse IP et le numéro de port du serveur correspondant. Selon un mode de réalisation particulier, le dispositif d'interconnexion comporte : un module assistant de découverte adapté pour analyser et modifier des datagrammes UDP transmis par des serveurs lors d'une phase de découverte UPnP ; un module de translation d'adresses adapté pour analyser et modifier des trames HTTP transmises par des serveurs via lesdites connexions. Selon un mode de réalisation particulier, le second sous-réseau est une femtocellule et la passerelle est une passerelle Internet. L'invention concerne également un programme d'ordinateur, qui peut être stocké sur un support et/ou téléchargé d'un réseau de communication, afin d'être lu par un processeur. Ce programme d'ordinateur comprend des instructions pour implémenter le procédé mentionné ci-dessus, lorsque ledit programme est exécuté par le processeur. L'invention concerne également des moyens de stockage comprenant un tel programme d'ordinateur. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : - la Fig. 1 illustre schématiquement un réseau de communication dans lequel l'invention peut être mise en oeuvre ; - la Fig. 2 illustre schématiquement un exemple d'architecture d'une femto du réseau de communication ; - la Fig. 3 illustre schématiquement un algorithme, mis en oeuvre par la femto, de découverte de serveurs HTTP ; - la Fig. 4 illustre schématiquement un algorithme, mis en oeuvre par la femto, de modification de trames HTTP transmises via des connexions TCP ; - la Fig. 5 illustre schématiquement un algorithme, mis en oeuvre par la femto, pour obtenir un numéro de port attribué par la femto à partir d'une adresse IP et un 5 numéro de port qui correspondent à un serveur HTTP ; - la Fig. 6 illustre schématiquement un algorithme, mis en oeuvre par la femto, pour obtenir une adresse IP et un numéro de port qui correspondent à un serveur HTTP, à partir d'un numéro de port attribué par la femto. Par la suite, une mise en oeuvre de l'invention est présentée dans le cadre d'une 10 interconnexion entre un premier sous-réseau de type LAN et un second sous-réseau 102 de type femto-cellule ou femtocell, une passerelle Internet étant connectée au premier sous-réseau. Comme déjà mentionné, l'invention peut également être mise en oeuvre dans le cadre d'une interconnexion entre des premier et second sous-réseaux, par exemple tout deux de type LAN, une passerelle reliant un des sous-réseau à un 15 troisième sous-réseau assurant le routage de paquets au niveau IP et n'ayant pas connaissance de l'autre sous-réseau parmi les premier et second sous-réseaux. La Fig. 1 illustre schématiquement un réseau de communication 100 dans lequel l'invention peut être mise en oeuvre. Le réseau de communication 100 comporte un premier sous-réseau 101 de type LAN et un second sous-réseau 102 de type femtocell. 20 Les premier 101 et second 102 sous-réseaux sont interconnectés par une station de base 111, en charge de gérer le second sous-réseau 102. La station de base 111 est donc un dispositif d'interconnexion entre les premier 101 et second 102 sous-réseaux. La station de base 111 est appelée par la suite femto, le premier sous-réseau est appelé LAN et le second sous-réseau femtocell. 25 Le LAN 101 est par exemple un réseau conforme à la norme Ethernet, telle que définie par le standard IEEE 802.3, ou à la norme WiFi, telle que définie par le standard IEEE 802.11. Une passerelle Internet 110 est connectée au LAN 101 et permet l'interconnexion du LAN 101 avec l'Internet 103. La passerelle Internet 110 assure le 30 routage des paquets IP entre le LAN 101 et l'Internet 103. Elle assure en outre de préférence la fonction de configuration dynamique des hôtes IP par le biais du protocole DHCP (« Dynamic Host Configuration Protocol » en anglais, tel que défini dans le document normatif RFC 1531 et ses évolutions). Au LAN 101 est en outre connecté au moins un dispositif 140, 141 mettant en oeuvre la norme UPnP. Préférentiellement, le dispositif 140 est un point de contrôle UPnP (« UPnP control point » en anglais). A la femtocell 102 est connecté au moins un terminal mobile 130, 131 mettant 5 aussi en oeuvre la norme UPnP. La femto 111 comporte un premier module 121, appelé assistant de découverte, permettant aux dispositifs UPnP connectés au LAN 101 de découvrir les terminaux mobiles UPnP connectés à la femtocell 102 et leurs services UPnP, et vice versa. La femto 111 comporte un second module 122, appelé NAT HTTP (où NAT signifie 10 « Network Address Translator » en anglais ou « Traducteur d'Adresse Réseau » en français), permettant d'assurer la communication entre les dispositifs UPnP connectés au LAN 101 et les terminaux mobiles UPnP connectés à la femtocell 102, et vice versa. Le terme NAT HTTP vient du fait que la translation d'adresse s'effectue au niveau transport, mais aussi au niveau HTTP. Le comportement de l'assistant de 15 découverte 121 et du NAT HTTP 122 est détaillé ci-après en relation avec les Figs. 3 à 6. La Fig. 2 illustre schématiquement un exemple d'architecture de la femto 111. La femto 111 comprend alors, reliés par un bus de communication 210: un processeur ou CPU (« Central Processing Unit » en anglais) 200 ; une mémoire vive RAM 20 (« Random Access Memory » en anglais) 201 ; une mémoire morte ROM (« Read Only Memory » en anglais) 202 ; une unité de stockage ou un lecteur de support de stockage, tel qu'un disque dur HDD (« Hard Disk Drive » en anglais) 203 ; une interface de communication 204 permettant de créer la femtocell 102 et de communiquer avec les terminaux mobiles 130, 131 ; et une interface de 25 communication 205 permettant la connexion avec le LAN 101 et de communiquer avec les dispositifs 140, 141. Le processeur 200 est capable d'exécuter des instructions chargées dans la RAM 201 à partir de la ROM 202, d'une mémoire externe (non représentée), d'un support de stockage, tel que le disque dur HDD 203, ou d'un réseau de communication. 30 Lorsque la femto 111 est mise sous tension, le processeur 200 est capable de lire de la RAM 201 des instructions et de les exécuter. Ces instructions forment un programme d'ordinateur causant la mise en oeuvre, par le processeur 200, de tout ou partie des algorithmes décrits ci-après. Tout ou partie des algorithmes décrits ci-après peut être implémenté sous forme logicielle par exécution d'un ensemble d'instructions par une machine programmable, tel qu'un DSP (« Digital Signal Processor » en anglais) ou un microcontrôleur, ou être implémenté sous forme matérielle par une machine ou un composant dédié, tel qu'un FPGA (« Field-Programmable Gate Array » en anglais) ou un ASIC (« Application-Specific Integrated Circuit » en anglais). La Fig. 3 illustre schématiquement un algorithme, mis en oeuvre par la femto 111, de découverte de serveurs HTTP. Dans le cadre de la Fig. 1, l'algorithme est plus particulièrement mis en oeuvre par l'assistant de découverte 121. Dans une étape 301, l'assistant de découverte 121 s'abonne, à la fois sur femtocell 102 et le LAN 101, à l'adresse multicast IP et au port à destination desquels les dispositifs UPnP envoient des messages de découverte. Selon la norme UPnP, cette adresse IP est 239.255.255.250 et le numéro de port est 1900. Ainsi, lorsqu'un dispositif UPnP connecté à la femtocell 102 ou au LAN 101 initie une phase de découverte, l'assistant de découverte 121 reçoit chaque trame UDP correspondante. En effet, selon la norme UPnP, les trames relatives à la découverte sont transmises grâce au protocole SSDP (« Simple Service Discovery Protocol » en anglais), c'est-à- dire au format HTTP encapsulé dans des datagrammes UDP. Dans un mode de réalisation particulier, l'assistant de découverte 121 effectue ces abonnements, à la fois sur femtocell 102 et le LAN 101, lorsque la femto 111 détecte la présence d'un terminal mobile UPnP dans la femtocell 102. Dans une étape 302 suivante, l'assistant de découverte 121 reçoit une trame UDP multicast destinée à l'adresse IP 239.255.255.250 et au port de numéro 1900. Dans une étape 303 suivante, l'assistant de découverte 121 effectue une recherche de serveur HTTP dans la trame reçue. L'assistant de découverte 121 scanne alors la trame UDP reçue pour détecter des adresses IP de dispositifs appartenant au sous-réseau, femtocell 102 ou LAN 101, à partir duquel elle a été émise. L'assistant de découverte 121 analyse en particulier le champ LOCATION. Si l'adresse IP est accompagnée d'un port, un serveur HTTP est détecté et l'ensemble formé par cette adresse IP et ce numéro de port est fourni au NAT HTTP 122. Le NAT HTTP 122 retourne alors un numéro de port, que l'assistant de découverte 121 obtient dans une étape 304 suivante. L'attribution d'un numéro de port par le NAT HTTP 122 est décrite ci-après en relation avec la Fig. 5. Dans une étape 305 suivante, l'assistant de découverte 121 modifie la trame UDP reçue en remplaçant l'adresse IP et le numéro de port du serveur HTTP détecté par respectivement une adresse IP de la femto et le numéro de port fourni par le NAT HTTP 122. Cette adresse IP de la femto est celle attribuée à la femto sur l'autre sous-réseau, femtocell 102 ou LAN 101, que celui où est connecté le serveur HTTP détecté. En effet, la femto 11 possède deux adresses IP, l'une utilisée pour le routage des trames IP dans la femtocell 102 et l'autre utilisée pour le routage des trames IP dans le LAN 101. Les étapes 303 à 305 sont réitérées jusqu'à ce que la trame reçue soit complètement parcourue. Dans une étape 306 suivante, l'assistant de découverte 121 émet la trame UDP modifiée sur l'autre sous-réseau, femtocell 102 ou LAN 101, c'est-à-dire le sous-réseau qui n'est pas celui à partir duquel elle a été reçue à l'étape 302. Dans une étape 307 suivante, l'assistant de découverte 121 détermine si la trame UDP reçue à l'étape 305 nécessite une réponse. Tel est le cas des messages de recherche (« search messages » en anglais selon la norme UPnP, aussi appelés messages M-SEARCH). Si tel est le cas, une étape 308 est effectuée, sinon l'assistant de découverte 121 se met en attente d'une nouvelle trame UDP multicast et l'étape 302 est réitérée. Dans l'étape 308, l'assistant de découverte 121 se met à l'écoute de datagrammes UDP transmis à destination de l'adresse IP de la femto 111 et du numéro de port attribué au serveur HTTP, et reçoit la réponse attendue. L'assistant de découverte 121 effectue alors, dans une étape 309 suivante, une recherche de serveur HTTP dans la réponse reçue. L'assistant de découverte 121 scanne la réponse reçue pour détecter des adresses IP de dispositifs. Si l'adresse IP n'est pas une adresse IP de la femto 111 et est accompagnée d'un port, un serveur HTTP est détecté et l'ensemble formé par cette adresse IP et ce numéro de port est fourni au NAT HTTP 122. Le NAT HTTP 122 retourne alors un numéro de port, que l'assistant de découverte 121 obtient dans une étape 310 suivante. Si l'adresse IP est une adresse IP de la femto 111, cette adresse IP et le numéro de port qui lui est associé dans la réponse sont fournis au NAT HTTP 122. Le NAT HTTP 122 fournit en retour l'ensemble formé par l'adresse IP et le numéro de port effectifs du serveur HTTP. Dans une étape 311 suivante, l'assistant de découverte 121 modifie la réponse reçue en remplaçant l'adresse IP et le numéro de port du serveur HTTP détecté par respectivement l'adresse IP de la femto 111, qui est utilisée pour le routage des trames IP sur l'autre sous-réseau que celui auquel est connecté le serveur HTTP détecté, et le numéro de port fourni par le NAT HTTP 122, ou en remplaçant l'adresse IP de la femto 111 et le numéro de port associé par respectivement l'adresse IP et le numéro de port effectifs du serveur HTTP. Les étapes 309 à 311 sont réitérées jusqu'à ce que la réponse reçue soit complètement parcourue. Dans une étape 312 suivante, l'assistant de découverte 121 émet la réponse modifiée sur l'autre sous-réseau, femtocell 102 ou LAN 101, c'est-à-dire le sous- réseau qui n'est pas celui à partir duquel elle a été reçue à l'étape 308. L'assistant de découverte 121 se met alors en attente d'une nouvelle trame UDP multicast et l'étape 302 est réitérée. De cette manière une phase de découverte initiée sur un des sous-réseaux, femtocell 102 ou LAN 101, est étendue par la femto 111 à l'autre sous-réseau. En remplaçant les ensembles formés par les adresses IP et les numéros de port des dispositifs d'un sous-réseau par l'adresse IP adéquate de la femto 111 et des numéros de port attribués par la femto 111, chaque service UPnP est vu de l'autre côté de la femto 111 comme s'il était mis en oeuvre par la femto 111. La Fig. 4 illustre schématiquement un algorithme, mis en oeuvre par la femto 111, de modification de trames HTTP échangées dans le cadre de la norme UPnP via des connexions TCP. Dans le cadre de la Fig. 1, l'algorithme est plus particulièrement mis en oeuvre par le NAT HTTP 122. Dans une étape 401, le NAT HTTP 122 reçoit une demande de connexion TCP depuis un dispositif ou point de contrôle UPnP présent sur l'un des sous-réseaux, femtocell 102 ou LAN 101. En effet, en dehors de la phase de découverte, les messages échangés dans le cadre de la norme UPnP utilisent le protocole TCP/IP. Cette demande de connexion est adressée à la femto et précise un numéro de port. Le NAT HTTP 122 retrouve alors le serveur HTTP auquel ce numéro de port a été précédemment affecté, ce qui lui indique le serveur HTTP effectivement adressé. Dans une étape 402 suivante, le NAT HTTP 122 établit des connexions avec les dispositifs UPnP de chaque côté de la femto. En d'autres termes, une première connexion TCP est établie entre le dispositif UPnP requérant et la femto 111, et une seconde connexion TCP est établie entre la femto 111 et le serveur HTTP effectivement adressé, la femto 111 effectuant un relais entre ces connexions TCP. Pour le NAT HTTP 122 ces connexions sont associées l'une à l'autre. Dans une étape 403 suivante, le NAT HTTP 122 reçoit une trame TCP du dispositif UPnP 140 ou du terminal mobile UPnP 130, et dans une étape 404 suivante, le NAT HTTP 122 analyse cette trame TCP pour savoir s'il s'agit de la première trame TCP d'une trame HTTP. Si c'est le cas, le NAT HTTP 122 reçoit des trames TCP jusqu'à avoir récupéré l'intégralité de l'en-tête HTTP. Le NAT HTTP 122 analyse cet en-tête pour déterminer si le champ CONTENT-TYPE indique une extension MIME (« Multipurpose Internet Mail Extensions » en anglais) de type « text » (« texte » en français). En effet, le champ CONTENT-TYPE des messages échangés dans le cadre de la norme UPnP indique une extension MIME de type « text ». Cela permet de ne pas scruter, dans le cadre de la modification des adresses IP et ports associés, des trames non concernées par la norme UPnP, et donc de préserver les ressources du NAT HTTP 122. Si le champ CONTENT-TYPE indique une extension MIME de type « text », une étape 407 est effectuée, sinon une étape 406 est effectuée. Dans l'étape 406, le NAT HTTP 122 retransmet les données des trame TCP reçue sur l'autre sous-réseau sans lui apporter de modification. La trame HTTP pouvant être reçue sur plusieurs trames TCP, l'ensemble des données de ces trames est retransmis sans modification sur l'autre réseau. Le NAT HTTP 122 se met ensuite en attente de nouvelles données et l'étape 403 est réitérée. Dans l'étape 407, le NAT HTTP 122 récupère l'intégralité de la trame HTTP, qui peut être reçue via plusieurs trames TCP. Le champ CONTENT-LENGTH permet au NAT HTTP 122 de déterminer la taille de la trame HTTP. Le NAT HTTP 122 effectue une recherche de serveur HTTP dans la trame HTTP récupérée. Le NAT HTTP 122 scanne la trame HTTP reçue pour détecter des adresses IP de dispositifs. Si l'adresse IP est une adresse IP de la femto 111, cette adresse IP et le numéro de port qui lui est associé dans la trame HTTP reçue permet au NAT HTTP 122 de retrouver l'ensemble formé par l'adresse IP et le numéro de port effectifs du serveur HTTP. Si l'adresse IP n'est pas une adresse IP de la femto 111 et est accompagnée d'un port, un serveur HTTP est détecté. Le NAT HTTP 122 détermine alors, dans une étape 408 suivante, si ce serveur HTTP est déjà connu, c'est-à-dire s'il a par exemple été préalablement détecté par l'assistant de découverte 121. Si le serveur HTTP est déjà connu du NAT HTTP 122, une étape 411 est effectuée, sinon une étape 409 est effectuée. Dans l'étape 409, le NAT HTTP 122 attribue un numéro de port au serveur HTTP détecté et l'ajoute, dans une étape 410, à une liste de serveurs HTTP connus, en correspondance avec le numéro de port attribué et avec l'adresse IP de la femto 111 utilisable sur l'autre sous-réseau que celui auquel le serveur HTTP est connecté. Cela permet de faire la découverte des dispositifs UPnP directement lors des échanges de données via le protocole HTTP transporté dans les trames TCP. L'étape 411 est ensuite effectuée. Dans l'étape 411, le NAT HTTP 122 modifie la trame HTTP reçue en remplaçant l'adresse IP et le numéro de port du serveur HTTP détecté par respectivement l'adresse IP de la femto 111, utilisable sur l'autre sous-réseau que celui auquel le serveur HTTP est connecté, et le numéro de port fourni par le NAT HTTP 122, ou en remplaçant l'adresse IP de la femto 111 et le numéro de port associé par respectivement l'adresse IP et le numéro de port effectifs du serveur HTTP. Les étapes 407 à 411 sont réitérées jusqu'à ce que la trame HTTP reçue soit complètement parcourue. Un cas particulier concerne le champ HOST de l'en-tête HTTP, car celui-ci contient une adresse IP mais pas de port. Le NAT HTTP 122 le traite alors de la façon suivante. S'il s'agit d'une adresse IP d'un dispositif UPnP ou d'un terminal mobile UPnP sur l'un des sous-réseaux, elle est remplacée par l'adresse IP de la femto 111 routable sur l'autre sous-réseau. S'il s'agit d'une adresse IP de la femto, elle est remplacée par celle du serveur HTTP concerné. Le NAT HTTP 122 n'a dans ce cas pas besoin du numéro de port, car le champ HOST ne peut que représenter l'un des dispositifs des connexions TCP associées. Si l'adresse IP contenue dans le champ HOST est une adresse de serveur HTTP, le NAT HTTP 122 la remplace par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur HTTP est connecté. Et, si l'adresse IP contenue dans le champ HOST est une adresse IP de la femto 111, le NAT HTTP 122 la remplace par l'adresse IP du serveur avec lequel une connexion est établie et qui est connecté sur l'autre sous-réseau que celui duquel la trame HTTP est reçue. Suite aux modifications apportées à la trame HTTP, le champ CONTENT- LENGTH peut devoir être modifié pour être représentatif de la nouvelle taille de la trame HTTP. Dans une étape 412 suivante, le NAT HTTP 122 émet la trame HTTP modifiée sur l'autre sous-réseau, femtocell 102 ou LAN 101, c'est-à-dire le sous-réseau qui n'est pas celui à partir duquel elle a été reçue à l'étape 403. La trame HTTP est transportée via le protocole TCP, grâce à la connexion existante entre la femto 111 et le dispositif UPnP ou le terminal mobile UPnP sur l'autre sous-réseau. Le NAT HTTP 122 se met alors en attente de nouvelles données et l'étape 403 est réitérée. La Fig. 5 illustre schématiquement un algorithme, mis en oeuvre par la femto 111, pour obtenir un numéro de port attribué par la femto 111 à partir d'une adresse IP et un numéro de port effectifs d'un serveur HTTP. Dans le cadre de la Fig. 1, l'algorithme est plus particulièrement mis en oeuvre par le NAT HTTP 122. Dans une étape 501, le NAT HTTP 122 obtient un ensemble formé d'une adresse IP et un numéro de port effectifs d'un serveur HTTP. Ces informations sont fournies par l'assistant de découverte 121 à l'étape 303 ou à l'étape 309, ou obtenues par le NAT HTTP 122 à l'étape 407. Dans une étape 502 suivante, le NAT HTTP 122 recherche si ce serveur HTTP est répertorié dans une liste de serveurs HTTP connus du NAT HTTP 102. Cette liste comporte les couples d'adresses IP et numéros de port des serveurs HTTP connus du NAT HTTP 102, en correspondance avec un numéro de port que le NAT HTTP 102 leur a attribué et l'adresse IP de la femto 111 utilisable sur l'autre sous-réseau que celui sur lequel le serveur HTTP est connecté. Dans une étape 502 suivante, le NAT HTTP 122 détermine si le serveur HTTP est connu. Si ce n'est pas le cas, une étape 504 est effectuée ; sinon, une étape 506 est effectuée. Dans l'étape 504, le NAT HTTP 122 attribue un numéro de port au serveur HTTP. Par exemple, le NAT HTTP 122 conserve le numéro de port du serveur HTTP si celui-ci n'est pas déjà attribué à un autre serveur HTTP qui est sur le même sous- réseau et qui est présent dans la liste des serveurs HTTP connus du NAT HTTP 122 ; sinon, le NAT HTTP 122 attribue un autre numéro de port, qui n'est pas déjà attribué à un serveur HTTP qui est sur le même sous-réseau et qui est présent dans la liste. Dans une étape 505 suivante, le NAT HTTP 122 ajoute le serveur HTTP à la 25 liste des serveurs HTTP connus du NAT HTTP 122, c'est-à-dire que le NAT HTTP 122 stocke l'adresse IP et le numéro de port effectifs du serveur HTTP, en correspondance avec le numéro de port attribué par le NAT HTTP 122 et l'adresse IP de la femto 111 utilisable sur l'autre sous-réseau que celui sur lequel le serveur HTTP est connecté. L'étape 506 est ensuite effectuée. 30 Dans l'étape 506, le NAT HTTP 122 retourne au moins le numéro de port que le NAT HTTP 122 a attribué au serveur HTTP. La Fig. 6 illustre schématiquement un algorithme, mis en oeuvre par la femto 111, pour obtenir une adresse IP et un numéro de port effectifs d'un serveur HTTP, à partir d'un numéro de port attribué par la femto 111 et d'une adresse IP de la femto 111. Dans le cadre de la Fig. 1, l'algorithme est plus particulièrement mis en oeuvre par le NAT HTTP 122. Dans une étape 601, le NAT HTTP 122 obtient un numéro de port que le NAT HTTP 122 a précédemment attribué à un serveur HTTP, ainsi que l'adresse IP de la femto 111 à laquelle ce port est associé. Ces informations sont fournies par l'assistant de découverte 121 à l'étape 309, ou obtenues par le NAT HTTP 122 à l'étape 407. Dans une étape 602 suivante, le NAT HTTP 122 recherche quel serveur HTTP est répertorié dans la liste des serveurs HTTP connus du NAT HTTP 122 en correspondance avec cette adresse IP de la femto 111 et ce numéro de port attribué par 10 le NAT HTTP 122. Dans une étape 603 suivante, le NAT HTTP 122 retourne l'ensemble formé de l'adresse IP et du numéro de port effectifs du serveur HTTP, tel que répertorié dans la liste des serveurs HTTP connus du NAT HTTP 122. REVENDICATIONS1) Procédé d'interconnexion de premier et second sous-réseaux, ledit premier sous-réseau étant un réseau local (101) sur lequel est connectée une passerelle reliant ledit premier sous-réseau à un troisième sous-réseau (110), lesdits premier et second sous-réseaux étant adaptés pour permettre d'y connecter des dispositifs UPnP (130 ; 140), chaque dispositif UPnP comportant au moins un serveur associé à une adresse IP et un numéro de port, caractérisé en ce qu'un dispositif d'interconnexion (111) interconnectant lesdits premier et second sous-réseaux effectue les étapes suivantes : - déterminer (303 ; 309 ; 407), pour lesdits premier et second sous-réseaux, des adresses IP et numéros de port effectifs de serveurs de dispositifs UPnP ; - attribuer (504) un numéro de port à chacun desdits serveurs ; - établir (402), sur réception d'une requête de connexion correspondant à un numéro de port attribué par le dispositif d'interconnexion à un dit serveur, une connexion entre le dispositif d'interconnexion et ledit serveur, et une connexion entre le dispositif d'interconnexion et le dispositif UPnP ayant émis ladite requête ; et dans au moins une trame, reçue par le dispositif d'interconnexion via une desdites connexions : - remplacer (411) dans ladite trame chaque adresse IP et numéro de port effectifs de serveur appartenant au sous-réseau d'émission de ladite trame par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous-réseaux, et le numéro de port attribué par le dispositif d'interconnexion audit serveur, et - remplacer (411) dans ladite trame chaque adresse IP du dispositif d'interconnexion utilisable sur le sous réseau d'émission de ladite trame et numéro de port attribué par le dispositif d'interconnexion à un serveur par l'adresse IP et le numéro de port du serveur correspondant. 2) Procédé d'interconnexion selon la revendication 1, caractérisé en ce que le dispositif d'interconnexion détermine les adresses IP et numéros de port effectifs de serveurs, à partir de datagrammes UDP transmis par des dits serveurs lors d'une phase de découverte UPnP, et en ce que, pour chaque dit datagramme UDP, le dispositif d'interconnexion effectue les étapes suivantes :- remplacer (305 ; 311) chaque adresse IP et numéro de port effectifs de serveur appartenant au sous réseau d'émission dudit datagramme UDP par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous- réseaux, et le numéro de port attribué par le dispositif d'interconnexion audit serveur, et - remplacer (305 ; 311) chaque adresse IP du dispositif d'interconnexion utilisable sur le sous réseau d'émission dudit datagramme UDP et numéro de port attribué par le dispositif d'interconnexion à un serveur par l'adresse IP et le numéro de port du serveur correspondant. 3) Procédé d'interconnexion selon la revendication 2, caractérisé en ce que le dispositif d'interconnexion s'abonne (301) au préalable, sur chacun des premier et second sous-réseaux, à une adresse IP et un numéro de port prédéfinis auxquels sont adressés les datagrammes UDP multicast transmis lors de la phase de découverte UPnP, et se met à l'écoute de datagrammes UDP transmis à destination de ladite adresse IP du dispositif d'interconnexion et du numéro de port attribué par le dispositif d'interconnexion audit serveur. 4) Procédé d'interconnexion selon la revendication 3, caractérisé en ce que, le second sous-réseau étant une femto-cellule (102), le dispositif d'interconnexion s'abonne, sur chacun des premier et second sous-réseaux, à ladite adresse IP et audit numéro de port prédéfinis, lorsque le dispositif d'interconnexion détecte la présence d'un terminal mobile UPnP dans la femto-cellule. 5) Procédé d'interconnexion selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le dispositif d'interconnexion détermine (407) les adresses IP et numéros de port effectifs de serveurs, à partir de trames HTTP transportées par des trames TCP reçues par le dispositif d'interconnexion via lesdites connexions. 6) Procédé d'interconnexion selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le dispositif d'interconnexion effectue les étapes suivantes : - vérifier si le numéro de port effectif d'un serveur est déjà attribué par le dispositif d'interconnexion à un autre serveur ;- attribuer au serveur le même numéro de port que ledit numéro de port effectif, en cas de vérification positive ; - attribuer au serveur un autre numéro de port, sinon. 7) Procédé d'interconnexion selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le dispositif d'interconnexion analyse (404) un en-tête HTTP dans les trames reçues par le dispositif d'interconnexion via une desdites connexions, et en ce que le dispositif d'interconnexion n'effectue de modification de trame que si le champ CONTENT-TYPE de l'en-tête HTTP est de type texte. 8) Procédé d'interconnexion selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le dispositif d'interconnexion analyse un en-tête HTTP dans les trames reçues par le dispositif d'interconnexion via une desdites connexions, et en ce que, si le champ HOST est présent dans l'en-tête HTTP, le dispositif d'interconnexion effectue les étapes suivantes : - si l'adresse IP contenue dans le champ HOST est une adresse de serveur, remplacer ladite adresse IP par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous-réseaux, et - si l'adresse IP contenue dans le champ HOST est une adresse IP du dispositif d'interconnexion, remplacer ladite adresse IP par l'adresse IP du serveur avec lequel une dite connexion est établie et qui est connecté sur l'autre sous-réseau que celui duquel lesdites trames sont reçues parmi lesdits premier et second sous-réseaux. 9) Procédé d'interconnexion selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ledit second sous-réseau est une femto-cellule (102) et ladite passerelle est une passerelle Internet. 10) Dispositif d'interconnexion (111) destiné à interconnecter des premier et second sous-réseaux, ledit premier sous-réseau étant un réseau local (101) sur lequel est connectée une passerelle reliant ledit premier sous-réseau à un troisième sous-réseau (110), lesdits premier et second sous-réseaux étant adaptés pour permettre d'y connecter des dispositifs UPnP (130 ; 140), chaque dispositif UPnP comportant aumoins un serveur associé à une adresse IP et un numéro de port, caractérisé en ce que le dispositif d'interconnexion comporte : - des moyens pour déterminer, pour lesdits premier et second sous-réseaux, des adresses IP et numéros de port effectifs de serveurs de dispositifs UPnP ; - des moyens pour attribuer un numéro de port à chacun desdits serveurs ; - des moyens pour établir, sur réception d'une requête de connexion correspondant à un numéro de port attribué par le dispositif d'interconnexion à un dit serveur, une connexion entre le dispositif d'interconnexion et ledit serveur, et une connexion entre le dispositif d'interconnexion et le dispositif UPnP ayant émis ladite requête ; - des moyens pour recevoir au moins une trame via une desdites connexions ; - des moyens pour remplacer dans ladite trame chaque adresse IP et numéro de port effectifs de serveur appartenant au sous réseau d'émission de la dite trame par une adresse IP du dispositif d'interconnexion, utilisable pour router les données sur l'autre sous-réseau que celui auquel ledit serveur est connecté parmi lesdits premier et second sous-réseaux, et le numéro de port attribué par le dispositif d'interconnexion audit serveur, et - des moyens pour remplacer dans ladite trame chaque adresse IP du dispositif d'interconnexion utilisable sur le sous réseau d'émission de ladite trame et numéro de port attribué par le dispositif d'interconnexion à un serveur par l'adresse IP et le numéro de port du serveur correspondant. 11) Dispositif d'interconnexion selon la revendication 10, caractérisé en ce qu'il comporte : - un module assistant de découverte (121) adapté pour analyser et modifier des datagrammes UDP transmis par des serveurs lors d'une phase de découverte UPnP ; - un module de translation d'adresses (122) adapté pour analyser et modifier des trames HTTP transmises par des serveurs via lesdites connexions. 12) Dispositif d'interconnexion selon l'un quelconque des revendications 10 et 11, caractérisé en ce que ledit second sous-réseau est une femto-cellule (102) et ladite passerelle est une passerelle Internet. 13) Programme d'ordinateur, caractérisé en ce qu'il comprend des instructions pour mettre en oeuvre, par un dispositif d'interconnexion, le procédé selon l'une quelconque des revendications 1 à 9, lorsque ledit programme est exécuté par un processeur du dispositif d'interconnexion. 14) Moyens de stockage, caractérisés en ce qu'ils stockent un programme d'ordinateur comprenant des instructions pour mettre en oeuvre, par un dispositif d'interconnexion, le procédé selon l'une quelconque des revendications 1 à 9, lorsque ledit programme est exécuté par un processeur du dispositif d'interconnexion. 10