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.