iOS 7 : le multipath TCP permet à Siri de jongler avec connexions 3G et Wi-Fi
Bon, il n'y a plus qu'à le répandre dans le reste du système maintenant
Le 30 septembre 2013 à 15h17
5 min
Société numérique
Société
iOS 7 dispose d’un mécanisme de communication qu’il est le premier à utiliser sous forme commerciale : le multipath TCP. Cette technique permet d’utiliser plusieurs connexions en même temps pour accroître la fiabilité d’une transmission. Même si Apple ne l’utilise pas tout à fait de cette manière, il s’agit d’une étape importante qui pourrait signifier une exploitation plus large de cette technologie issue du monde open source.
L'iPhone 5c, livré avec iOS 7
Une nouveauté absente de la présentation
La présentation d’iOS 7 et les retours des utilisateurs se focalisent pour la plupart sur l’aspect du système mobile. Un style beaucoup plus plat, la suppression des effets de reliefs et des textures ainsi que globalement un design plus aéré. Pour autant, iOS 7 contient également bon nombre de nouveautés fonctionnelles que nous avions d’ailleurs résumées au sein d’un dossier. En outre, iOS 7 est le premier produit commercial à disposer du multipath TCP.
Pour comprendre l’intérêt de cette solution venue du monde open source, il faut comprendre de quoi il retourne avec le TCP. Car ce protocole particulier est au cœur de la grande majorité des communications internet. Il a pour rôle de transporter l’information, aiguillé en cela par des protocoles spécifiques de routage, et gère le degré de congestion sur une liaison de communication.
Contourner les limitations de TCP
Le problème de TCP est qu’il fait souvent face aux limites de l’infrastructure habituelle. Les grands axes de communication proposent de très nombreux canaux pour transmettre des données. TCP envoie normalement les données sur la meilleure route possible, information transmise par d'autres protocoles. Mais s’il arrive en cours de route que le trafic devienne congestionné, ce qui arrive régulièrement, il peut y avoir perte de performances.
C’est ici qu’intervient le multipath TCP : le protocole sélectionne plusieurs routes et communique de manière égale avec toutes en créant spécifiquement une session pour chaque connexion disponible. Ce fonctionnement est très différent d’autres techniques qui consistent à séparer les paquets et à les envoyer via plusieurs routes. En effet, si l’une des canaux devient obstrué, la reconstitution de la trame à l’autre bout peut échouer, TCP considérant alors qu’une partie des paquets a été perdue.
Comme l'explique Ars Technica, le multipath TCP, ou MPTCP, dispose pour réussir dans sa mission d’une capacité bien spécifique : tous les chemins sont testés pour connaître leur viabilité. Si en cours de route l’un des chemins rencontre des problèmes, le protocole peut le détecter et renvoyer les paquets considérés comme perdus par un autre chemin. Il ne s’agit pas évidemment de saturer toutes les connexions disponibles mais de profiter de ressources qui sinon seraient inutilisées.
Permettre la continuité d'une transmission entre plusieurs connexions
Mais en quoi cela pourrait-il intéresser Apple ? En fait, la firme de Cupertino s’est suffisamment intéressée à la technologie pour l’intégrer dans iOS 7, sans pour autant s’en servir comme on pouvait s’y attendre. Une seule fonctionnalité est concernée par MPTCP : Siri. L’assistant vocal se sert bien du protocole, mais d’une autre manière : pour jongler avec les connexions 3G/4G et Wi-Fi.
Les performances de Siri sont très dépendantes de celles de la connexion active sur l’appareil. Et pour cause : les réponses ne sont pas stockées dans le système mais sur les serveurs d’Apple. Chaque fois qu’un utilisateur fait une demande, elle est expédiée vers ces serveurs qui renvoient alors la solution la plus adaptée. Et puisque Siri est considéré par Apple comme un aspect essentiel, il ne faut pas dans l’idéal que la connexion se coupe.
Or, la connexion peut se couper pour d’autres motifs qu’une panne ou une indisponibilité. Par exemple, quand un utilisateur rentre chez lui et qu’une connexion Wi-Fi est disponible, l’iPhone réagit comme n’importe quel smartphone : il bascule automatiquement. Mais si une tâche était en cours, il y a coupure et redémarrage de la transmission via le nouveau canal. MPTCP, qui crée une session pour chaque connexion, permet dans ce cas de simplement « mettre en pause » la transmission pour continuer sur la nouvelle connexion. Ce qui permet donc la continuité de l’expérience et l’impression de performances lors des réponses données par le service.
Après Siri, le reste des applications internes ?
Si Apple utilise MPTCP, elle n’en a pour autant parlé à aucun moment durant sa présentation, alors qu’il s’agit potentiellement d’une étape importante. Le premier à percevoir cet apport est Olivier Bonaventure, professeur de l’Université Catholique de Louvain (Belgique). Il souligne lui-même qu’Apple réalise avec MPTCP la première implémentation du protocole, l’université ayant d’ailleurs participé à sa création.
Le professeur note, à la fin de son billet, ce que l’on peut pressentir : qu’Apple teste sans doute avec Siri une première implémentation qui ne demande qu’à être étendue. Par exemple, iMessage profiterait sans conteste de cette amélioration car si une interruption est détectée, le message part sous la forme d’un SMS classique. Reste à voir maintenant si Apple souhaite transformer cet essai, et surtout si les concurrents comptent eux aussi se pencher sur cet intéressant protocole.
iOS 7 : le multipath TCP permet à Siri de jongler avec connexions 3G et Wi-Fi
-
Une nouveauté absente de la présentation
-
Contourner les limitations de TCP
-
Permettre la continuité d'une transmission entre plusieurs connexions
-
Après Siri, le reste des applications internes ?
Commentaires (55)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 30/09/2013 à 15h41
Le 30/09/2013 à 15h43
Le 30/09/2013 à 15h44
C’était le sujet de mon stage dans le laboratoire de recherche de Motorola, avec des démonstrations dans le cadre de projets européens ! =D
À part que j’avais mis en œuvre le protocole SCTP, prévu pour ! ;)
Le 30/09/2013 à 15h44
Le 30/09/2013 à 15h47
Très intéressant l’article en effet, mais il était temps j’ai envie de dire..
Les constructeurs ont toujours tendances à penser qu’on dispose d’une couverture 3G+ tout le temps, mais la vérité c’est que dans le métro, trains, à la campagne, en voiture ce n’est pas vrai…
Le 30/09/2013 à 15h48
Le 30/09/2013 à 15h50
Le 30/09/2013 à 15h52
Le 30/09/2013 à 15h54
Le 30/09/2013 à 15h57
Le 30/09/2013 à 16h01
Le 30/09/2013 à 16h07
Le 30/09/2013 à 16h11
Le 30/09/2013 à 16h18
Le 30/09/2013 à 16h18
Le 30/09/2013 à 16h21
Le 30/09/2013 à 16h24
Le 30/09/2013 à 16h27
Le 30/09/2013 à 16h30
Le 30/09/2013 à 16h31
Le 30/09/2013 à 17h45
Bon article, par contre il y a vraiment une ambiguité. TCP n’est pas un protocole de routage. C’est un protocole, mais pas de “routage”. Il permet de retransmettre des packet IP contrairement à UDP, mais ne choisi en aucune façon le meilleur chemin dans une infrastructure.
Corriger si vous pouvez ^^, à moins que je me trompe.
Le 30/09/2013 à 18h21
Bon, j’ai un peu de temps à perdre en attendant que ma pizza cuise, donc je vais relever les erreurs sur TCP (je dois admettre que j’en avais encore jamais vu des si grosses) " />
Pour comprendre l’intérêt de cette solution venue du monde open source, il faut comprendre de quoi il retourne avec le TCP. Ce protocole particulier est au cœur de la grande majorité des communications internet. Il a pour rôle de contrôler le transport de l’information, et non de transporter l’information elle-même. Il cherche notamment à savoir quelles sont les meilleures routes pour transmettre les données.
C’est faux, TCP transporte l’information.
De plus, il ne s’occupe absolument pas de routage.
TCP, avec d’autres protocoles de routage, cherchent à établir la meilleure route possible.
TCP n’est pas un protocole de routage. Il ne s’occupe pas des routes empruntés par les paquets. TCP fonctionne entre machines terminales (les PC, smartphones, tablettes, les serveurs), pas sur les routeurs. Les protocoles de routages, eux, fonctionnent à l’intérieur du réseau. Sur Internet, c’est BGP qui est utilisés entre les opérateurs par exemple.
Les protocoles de routage dynamique automatisent la construction des tables de routages empruntés par les paquets IP, y compris ceux contenant du TCP.
Mais quand il arrive que plusieurs canaux soient équivalents, un seul va quand même être utilisé.
C’est ici qu’intervient le multipath TCP : le protocole sélectionne plusieurs routes et communique de manière égale avec toutes.
Une machine terminale peut disposer de plusieurs connexion vers le réseau (par exemple un smartphone avec le Wi-Fi de la maison et la 3G, un PC avec une connexion filaire par ADSL et une connexion satellite, etc.). Dans ce cas, effectivement, une seule des deux liaisons va être utilisés pour une même session TCP. Le boulot de MPTCP est d’établir plusieurs sessions, une via chaque connexion réseau.
Cela n’a rien à voir avec les multiples routes présentent dans le cœur de réseau des opérateurs, des différents liens d’interconnexions (transit & peering) vers la même destination. Et ces multiples routes peuvent être utilisés simultanément elles aussi, mais c’est plus loin dans le réseau, pas chez madame michu, et ce n’est pas là où MPTCP intervient.
Faudrait peut-être lire 2 ou 3 tutos de base sur le réseau avant d’écrire des articles orienté réseau. Sans méchanceté hein ! PCi est réputé pour pas ne pas écrire de pipo, ça serait bien de continuer " />
J’espère que ma pizza n’a pas cramé " />
Le 30/09/2013 à 18h22
Le 30/09/2013 à 18h23
Le 30/09/2013 à 18h30
C’est aussi exploité sur Safari. En effet, quand je n’avais pas de loopback sur mon réseau local et connecté en WiFi, l’iPhone passait par la 3G.
Le 30/09/2013 à 18h55
Le 30/09/2013 à 19h10
au dela de l’enculage de mouches habituel quand des gens n’ont rien a dire mais cherchent a critiquer Apple quand meme (je ne vise pas les mecs qui relevent les approximations plus ou moins justifiées de l’article en disant ca), ca montre quand meme que cette boite est une vraie entreprise technologique qui PRODUIT de la techno et pas seulement des campagnes de pubs comme pleins de neuneux s’amusent a le repeter comme des anes batés a longueur de thread.
Et on pourra dire ce qu’on veut mais ils ne cherchent pas a s’en vanter quand ils integrent des technos de ce genre qu’on a encore jamais vu auparavant dans un produit grand public (ni meme accessible dans un environnement “pro” moyen) : ils n’en ont parlé a AUCUN moment dans leurs presentations. Meme pour les devs. Rien.
Le 30/09/2013 à 19h13
Le 30/09/2013 à 19h36
Pour clarifier les choses il existe bien une implémentation open source Linux de MPTCP:
http://mptcp.info.ucl.ac.be/
Des fichiers .deb sont même disponibles. Je l’ai installé sur mon Linux et cela fonctionne très bien.
Pour la petite histoire les chercheurs de l’Université Catholique de Louvain (Belgique) ont réussi à battre le record de la connexion TCP la plus rapide au monde:
http://multipath-tcp.org/pmwiki.php?n=Main.50Gbps
Il faut savoir qu’Apple n’intègre pas de code open-source dans ses produits, c’est pourquoi ils ont leur propre implémentation dans iOS7. Bien entendu la version open source Linux existait bien avant.
Le 30/09/2013 à 19h50
Le 30/09/2013 à 20h01
Le 30/09/2013 à 20h04
Le 30/09/2013 à 15h25
Merci pour cet article détaillé et très intéressant !
Le 30/09/2013 à 15h27
Si cela vient du monde de l’open source, pourquoi parle-t-on à la fin de l’article de “première implémentation” ? " />
Le 30/09/2013 à 15h30
Tant que la “G” ne sera pas illimitée, ça va devenir compliquer de jongler sur les paramètres si des applications choisissent cette techno.
Le 30/09/2013 à 15h31
Le 30/09/2013 à 15h32
Le 30/09/2013 à 15h33
Le 30/09/2013 à 15h35
Le 30/09/2013 à 15h37
Ça me fait penser à cette appli. C’est le même principe ?
Le 30/09/2013 à 15h37
Le 30/09/2013 à 15h38
Le 30/09/2013 à 15h39
Le 30/09/2013 à 20h12
Le 30/09/2013 à 20h18
Le 30/09/2013 à 20h20
Le 30/09/2013 à 20h24
Le 30/09/2013 à 20h24
Le 30/09/2013 à 20h25
Le 30/09/2013 à 20h26
Le 30/09/2013 à 20h27
Le 01/10/2013 à 07h07
Le 01/10/2013 à 10h24
Le 01/10/2013 à 13h25
Le 01/10/2013 à 14h10
+1 je suis d’accord avec toi. Pour UDP, je voulais dire que n’était pas un protocole fiable au sens réseau.