iOS 7 : le multipath TCP permet à Siri de jongler avec connexions 3G et Wi-Fi

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

Avatar de l'auteur
Vincent Hermann

Publié dans

Société numérique

30/09/2013 5 minutes
55

iOS 7 : le multipath TCP permet à Siri de jongler avec connexions 3G et Wi-Fi

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.

iPhone 5C

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.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

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 ? 

Fermer

Commentaires (55)


Merci pour cet article détaillé et très intéressant !


Si cela vient du monde de l’open source, pourquoi parle-t-on à la fin de l’article de “première implémentation” ? <img data-src=" />


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.








zogG a écrit :



Si cela vient du monde de l’open source, pourquoi parle-t-on à la fin de l’article de “première implémentation” ? <img data-src=" />





Le protocole a été édité en OpenSource et testé pour fins de recherche, mais son utilisation «industrielle» vient juste d’être réalisée. Du moins, c’est comme ça que je le comprends.









zogG a écrit :



Si cela vient du monde de l’open source, pourquoi parle-t-on à la fin de l’article de “première implémentation” ? <img data-src=" />







La technologie existe mais n’est peut-être pas implémenté ? Mais ce serait étrange en effet.



Technologie intéressante en tout cas, étrange qu’elle n’ai pas implémenté directement dans la couche réseau d’iOS, ça aurait été une avancé technique plaisante.









zogG a écrit :



Si cela vient du monde de l’open source, pourquoi parle-t-on à la fin de l’article de “première implémentation” ? <img data-src=" />





parce que c’est peut être la première implémentation tout simplement.



pleins de technos existent sans pour autant être intégré.









DorianMonnier a écrit :



La technologie existe mais n’est peut-être pas implémenté ? Mais ce serait étrange en effet.



Technologie intéressante en tout cas, étrange qu’elle n’ai pas implémenté directement dans la couche réseau d’iOS, ça aurait été une avancé technique plaisante.





sans doute pour éviter d’exploser tes datas si ton tel en wifi te bouffe via la 3 ou 4G <img data-src=" />



Siri ça reste léger, YT ou autre ça pourrait faire mal <img data-src=" />



Ça me fait penser à cette appli. C’est le même principe ?








misterB a écrit :



sans doute pour éviter d’exploser tes datas si ton tel en wifi te bouffe via la 3 ou 4G <img data-src=" />



Siri ça reste léger, YT ou autre ça pourrait faire mal <img data-src=" />







L’activation du wifi désactive le data, donc quant tu es connecté en wifi, plus rien n’est censé passé en data ? Je dis peut-être une bêtise…









DorianMonnier a écrit :



L’activation du wifi désactive le data, donc quant tu es connecté en wifi, plus rien n’est censé passé en data ? Je dis peut-être une bêtise…





lis la news <img data-src=" />



L’assistant vocal se sert bien du protocole, mais d’une autre manière : pour jongler avec les connexions 3G/4G et Wi-Fi.









JohnCaffey a écrit :



Ça me fait penser à cette appli. C’est le même principe ?





oui c’est la version bourrin qui va récupérer de tout côté sans se soucier de choisir le mieux, juste en activant tout en même temps <img data-src=" />









DorianMonnier a écrit :



L’activation du wifi désactive le data, donc quant tu es connecté en wifi, plus rien n’est censé passé en data ? Je dis peut-être une bêtise…





Tu décris le fonctionnement sans cette technologie surtout <img data-src=" /><img data-src=" />



Edit : bbq par MB …









zogG a écrit :



Si cela vient du monde de l’open source, pourquoi parle-t-on à la fin de l’article de “première implémentation” ? <img data-src=" />





Parce que la théorisation du protocole a sans doute été publiée sous license libre, mais aucune implémentation (grand) publique n’a encore été développée.









DorianMonnier a écrit :



L’activation du wifi désactive le data, donc quant tu es connecté en wifi, plus rien n’est censé passé en data ? Je dis peut-être une bêtise…





Non, les 2 sont utilisé pour éviter justement les décrochage<img data-src=" />



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 ! ;)


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…








misterB a écrit :



parce que c’est peut être la première implémentation tout simplement.



pleins de technos existent sans pour autant être intégré.







Si y’a pas d’implémentation, y’a pas de source, donc pas d’open source non? D’où ma question.



à moins qu’un spec puisse être “open source”, mais ça n’a pas de sens pour moi. Enfin je suis pas expert alors <img data-src=" />



edit: ok avec maxxyme plus haut, open source ça marche aussi avec licence libre, pourquoi c’était un peu différent donc <img data-src=" />









zogG a écrit :



Si y’a pas d’implémentation, y’a pas de source, donc pas d’open source non? D’où ma question.



à moins qu’un spec puisse être “open source”, mais ça n’a pas de sens pour moi. Enfin je suis pas expert alors <img data-src=" />





<img data-src=" /> tu peux développer un truc complet et donc avec des sources, mais sans application autre que les tests pour montrer que ça marche <img data-src=" />









jb18v a écrit :



<img data-src=" /> tu peux développer un truc complet et donc avec des sources, mais sans application autre que les tests pour montrer que ça marche <img data-src=" />







Et ouais ça s’appelle une implémentation…



Enfin je voulais pas lancer une expertise de la brigade de la mouche donc oublions la question <img data-src=" />









zogG a écrit :



Et ouais ça s’appelle une implémentation…



Enfin je voulais pas lancer une expertise de la brigade de la mouche donc oublions la question <img data-src=" />





Sans application c’est sympa mais ça sert a rien, ok ça marche ils ont testé mais si personne ne s’en sert……










misterB a écrit :



lis la news <img data-src=" />



L’assistant vocal se sert bien du protocole, mais d’une autre manière : pour jongler avec les connexions 3G/4G et Wi-Fi.









yvan a écrit :



Tu décris le fonctionnement sans cette technologie surtout <img data-src=" /><img data-src=" />



Edit : bbq par MB …









Alkore a écrit :



Non, les 2 sont utilisé pour éviter justement les décrochage<img data-src=" />







Bon, faut que j’arrête de lire les news en diagonale… <img data-src=" />



Mais ok, j’ai mal compris, je pensais que la technologie permet des transitions plus souples entre différentes connexions, mais quand dans ce cas il était pas utilisé pour permettre à Siri d’utiliser les connexions “en parallèle”.









zogG a écrit :



Si cela vient du monde de l’open source, pourquoi parle-t-on à la fin de l’article de “première implémentation” ? <img data-src=" />





C’est juste faux.



NetScaler de Citrix l’utilise déjà.



Mais bon, quand c’est Apple, c’est une révolution ; quand c’est les autres, personne ne relève

(<img data-src=" /> … ou même pas tant que ça, en fait)









misterB a écrit :



Sans application c’est sympa mais ça sert a rien, ok ça marche ils ont testé mais si personne ne s’en sert……







Et alors ? s’il existe une implémentation open source, alors celle d’Apple n’est pas la première. Et si celle d’Apple est la première, alors elle ne vient pas de l’open source, c’est soit l’un soit l’autre, pas les deux.



Bon brazomyna a un début d’explication <img data-src=" />



Et c’est juste pour comprendre, je suis client et dev Apple, alors loin de moi l’idée de venir troller sur la marque…









brazomyna a écrit :



C’est juste faux.



NetScaler de Citrix l’utilise déjà.



Mais bon, quand c’est Apple, c’est une révolution ; quand c’est les autres, personne ne relève

(<img data-src=" /> … ou même pas tant que ça, en fait)





Mais c’est bien beau, mais sans OS te laissant le faire ça ne sert a rien



MPTCP has been adopted by at least one major mobile manufacturer and is expected to be broadly adopted by end of this year.



Ils sont prêt mais il faut que les constructeurs authorise à l’app de le faire en implémentant la fonction dans l’OS il me semble<img data-src=" />









misterB a écrit :



Mais c’est bien beau, mais sans OS te laissant le faire ça ne sert a rien



MPTCP has been adopted by at least one major mobile manufacturer and is expected to be broadly adopted by end of this year.



Ils sont prêt mais il faut que les constructeurs authorise à l’app de le faire en implémentant la fonction dans l’OS il me semble<img data-src=" />







Alors il suffit de parler de “première utilisation sur un produit grand public”, simple.









brazomyna a écrit :



C’est juste faux.



NetScaler de Citrix l’utilise déjà.



Mais bon, quand c’est Apple, c’est une révolution ; quand c’est les autres, personne ne relève

(<img data-src=" /> … ou même pas tant que ça, en fait)







Première exploitation commerciale à large échelle. Autant que je sache, le péquin moyen, Citrix il connaît pas des masses. Et personne n’a parlé de révolution.









misterB a écrit :



Mais c’est bien beau, mais sans OS te laissant le faire ça ne sert a rien





Linux le propose déjà et des portages ont déjà été faits pour plusieurs smartphones sous Android.

http://www.uclouvain.be/en-437743.html







Vincent_H a écrit :



le péquin moyen, Citrix il connaît pas des masses





Citrix compte plus de 260 000 entreprises clientes.. Une paille.







Vincent_H a écrit :



Et personne n’a parlé de révolution.





J’ai pas dit que tu avais parlé de révolution, c’était évidemment une formulation.



Reste quand même le fait intéressant de voir que des articles émergent quand ça arrive dans un device Apple, mais pas avant. Suffit de faire une recherche google pour le constater.










brazomyna a écrit :



Linux le propose déjà et des portages ont déjà été faits pour plusieurs smartphones sous Android.

http://www.uclouvain.be/en-437743.html







Ton lien montre que ça a été fait des fins de démo là







brazomyna a écrit :



Citrix compte plus de 260 000 entreprises clientes.. Une paille.





Et ça change la perception par le péquin moyen en quoi ?









misterB a écrit :



Et ça change la perception par le péquin moyen en quoi ?





Je te retourne la question: le fait qu’Apple utilise du MPTCP change la perception du pékin moyen en quoi ?



Il faut savoir: soit on considère comme base la vue du pékin moyen et on parle pas du tout du MPTCP qui reste un truc éminement technique, soit on parle d’une truc technique et on va au bout de la logique.









brazomyna a écrit :



Je te retourne la question: le fait qu’Apple utilise du MPTCP change la perception du pékin moyen en quoi ?



Il faut savoir: soit on considère comme base la vue du pékin moyen et on parle pas du tout du MPTCP qui reste un truc éminement technique, soit on parle d’une truc technique et on va au bout de la logique.





C’est appliqué, après le péquin il s’en cogne du MPTCP, mais c’est mis dans un OS grand publique d’origine, pas en bidouillant la machine <img data-src=" />










misterB a écrit :



Ton lien montre que ça a été fait des fins de démo là





Et ça change la perception par le péquin moyen en quoi ?





En même temps, le péquin moyen, il sait ce que sait du TCP et pourquoi le faire en multipath ?

J’ai l’impression qu’on reprend la dissectomie de mouche là <img data-src=" />



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.


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) <img data-src=" />





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 <img data-src=" />



J’espère que ma pizza n’a pas cramé <img data-src=" />








Latios a écrit :



J’espère que ma pizza n’a pas cramé <img data-src=" />





Ta pizza, je ne sais pas, mais moi en tout cas…







Alderaaan a écrit :



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.







Tout à fait, ce paragraphe est faux :



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, avec d’autres protocoles de routage, cherchent à établir la meilleure route possible. Mais quand il arrive que plusieurs canaux soient équivalents, un seul va quand même être utilisé. 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.





TCP est un protocole de transport au concept basique : il crée une connexion entre deux piles IP et fait en sorte que tout soit transmis dans un sens et dans l’autre. Il se fout du chemin pris, il ne cherche pas le meilleur. Toute cette partie, c’est le réseau qui s’en charge et un PC terminal ne peut de toute façon pas s’en occuper.



Par contre, TCP gère en effet la congestion : s’il perçoit des pertes de paquet, il réduit sa vitesse de transfert pour éviter de saturer le réseau.



Ce que fait Multipath TCP, de ce que je comprends, c’est qu’au lieu de faire confiance au système qui choisit l’interface de sortie par défaut (qui se voit via route print sur Windows), il peut tester d’envoyer par plusieurs interfaces des flux complémentaires.









Alderaaan a écrit :



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.





+1 avec ta première phrase, par contre UDP transporte aussi de l’IP (La principale différence est que TCP fiabilise le transfert).



Sinon oui MPTCP existe depuis un moment, c’est sans doute peu utilisé car les cas où il est avantageux de faire du multipath sont assez rare. J’avais vu une expérimentation du CERN qui l’utilisait pour augmenter ses débits, mais ça le péquin moyen verra pas la différence même si il a la fibre.

Et aussi je suppose que le protocole doit être implémenté côté client et côté serveur : du coup pour Apple c’est facile de le faire pour Siri car ils maitrisent tout, mais pour un développeur lambda à mon avis c’est une autre histoire.



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.








Helmeted_Leo a écrit :



+1 avec ta première phrase, par contre UDP transporte aussi de l’IP (La principale différence est que TCP fiabilise le transfert).





En l’occurrence, c’est plutôt IP qui transporte de l’UDP ou du TCP <img data-src=" />



D’accord pour tout le reste: le routage n’est pas au niveau de TCP, il est au niveau inférieur, du côté de l’IP (cf. le modèle OSI). Le seul bout de TCP qu’on pourrait vaguement relier à la notion de “routage” (avec de très gros guillemets) concerne la notion de port qui permet de router les paquets vers une application ou une autre au niveau de chaque endpoint du réseau. Et encore, c’est plus proche du démultiplexage qu’autre chose.




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.








KP2 a écrit :



au dela de l’enculage de mouches





Moi, j’aime. La preuve:





cette boite est une vraie entreprise technologique qui PRODUIT de la techno



Elle n’a ici rien PRODUIT. Elle a UTILISE une techno produite par d’autres.



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.








swax a écrit :



Il faut savoir qu’Apple n’intègre pas de code open-source dans ses produits





Ca me paraît étrange comme affirmation.

Un webkit par exemple n’est-il pas open-source ?









swax a écrit :



Il faut savoir qu’Apple n’intègre pas de code open-source dans ses produits









http://opensource.apple.com/



Il est possible que cette implémentation soit un dev interne à Apple qui n’est pas ouvert, mais dire qu’Apple n’intègre pas d’open source est erroné.









brazomyna a écrit :



Ca me paraît étrange comme affirmation.

Un webkit par exemple n’est-il pas open-source ?







Apple fait parfois du code et le rend open-source (ce qui est le cas pour webkit si j’ai bien compris ce que j’ai lu) mais apple n’intègre pas directement du code open source d’une autre entité dans ses produits, c’est ce que je veux dire.



Je n’ai pas de sources, c’est simplement ce qu’un des chercheurs derrière MPTCP m’a dit quand j’ai demandé pourquoi Apple n’utilisait pas l’implémentation open source déjà existante. Maintenant peut-être que j’ai mal compris ce qu’on m’a dit. Si cela se trouve ils ont juste copié la version open source en l’adaptant au kernel iOS, et vu que leur implémentation à eux n’est pas open source on ne peut pas vérifier.









swax a écrit :



Apple fait parfois du code et le rend open-source (ce qui est le cas pour webkit si j’ai bien compris ce que j’ai lu) mais apple n’intègre pas directement du code open source d’une autre entité dans ses produits, c’est ce que je veux dire.





Le noyau de l’OS (osx ou ios) est opensource

http://fr.wikipedia.org/wiki/Mach_(informatique)

http://en.wikipedia.org/wiki/Darwin_(operating_system)



Webkit est un fork de KHTML donc open depuis l’origine

http://fr.wikipedia.org/wiki/KHTML



Apple utilise bcp d’open source dans ses produits venant de partout









swax a écrit :



apple n’intègre pas directement du code open source d’une autre entité dans ses produits, c’est ce que je veux dire.





Si on lit l’article de FreeBSD sur wikipédia, on a:



Apple a utilisé une grande partie du système version 5, et a participé en retour à l’ajout de fonctionnalités11. Il y a donc une communauté de développeurs FreeBSD - au sens large - très importante.









swax a écrit :



Je n’ai pas de sources, c’est simplement ce qu’un des chercheurs derrière MPTCP m’a dit quand j’ai demandé pourquoi Apple n’utilisait pas l’implémentation open source déjà existante. Maintenant peut-être que j’ai mal compris ce qu’on m’a dit. Si cela se trouve ils ont juste copié la version open source en l’adaptant au kernel iOS, et vu que leur implémentation à eux n’est pas open source on ne peut pas vérifier.





L’implémentation MPTCP pour Linux est sous licence GPL. Cette licence stipule que si tu distribues un produit utilisant le code (tel quel ou avec des modifications), tu dois redistribuer les sources sous la même licence. Donc Apple ne peut pas pas légalement l’utiliser dans iOS.

Mais comme tu le dis, quand on a pas les sources c’est pas facile de vérifier…









misterB a écrit :



Le noyau de l’OS (osx ou ios) est opensource

http://fr.wikipedia.org/wiki/Mach_(informatique)



Webkit est un fork de KHTML donc open depuis l’origine



Apple utilise bcp d’open source dans ses produits venant de partout







Je sais bien pour le noyau. Je parlais de leur éventuelle politique actuelle. Bref ca serait quand même pas le cas, autant pour moi. Maintenant peut-être que le “n’intègre pas” est à remplacer par “intègre rarement”, ou sous certaines conditions qui ne sont pas remplies par l’implémentation open source de MPTCP. Ou alors on m’a simplement donné une information erronée.









Latios a écrit :



si tu distribues un produit utilisant le code (tel quel ou avec des modifications), tu dois redistribuer les sources sous la même licence. Donc Apple ne peut pas pas légalement l’utiliser dans iOS.





Apple pourrait parfaitement ne re-publier que le module modifié à leur sauce (si tant est qu’il l’ont modifié) sans le reste autour.



Au passage, il me semble qu’il existe par ailleurs masse de modules qui ne sont pas open source (nVidia le premier ?). La notion de module permettant de considérer que le code n’est pas une modification du kernel lui-même, mais une entité à part, où la viralité de la GPL ne s’applique pas.










swax a écrit :



Je sais bien pour le noyau. Je parlais de leur éventuelle politique actuelle. Bref ca serait quand même pas le cas, autant pour moi. Maintenant peut-être que le “n’intègre pas” est à remplacer par “intègre rarement”, ou sous certaines conditions qui ne sont pas remplies par l’implémentation open source de MPTCP. Ou alors on m’a simplement donné une information erronée.





ils ont pas encore publié les sources open de iOS7, laisse leur le temps <img data-src=" />









Latios a écrit :



L’implémentation MPTCP pour Linux est sous licence GPL. Cette licence stipule que si tu distribues un produit utilisant le code (tel quel ou avec des modifications), tu dois redistribuer les sources sous la même licence. Donc Apple ne peut pas pas légalement l’utiliser dans iOS.

Mais comme tu le dis, quand on a pas les sources c’est pas facile de vérifier…







Cela est surement ce qu’on a voulu me dire et donc l’explication de pourquoi ils ont leur propre implémentation.









brazomyna a écrit :



Apple pourrait parfaitement ne re-publier que le module modifié à leur sauce (si tant est qu’il l’ont modifié) sans le reste autour.



Au passage, il me semble qu’il existe par ailleurs masse de modules qui ne sont pas open source (nVidia le premier ?). La notion de module permettant de considérer que le code n’est pas une modification du kernel lui-même, mais une entité à part, où la viralité de la GPL ne s’applique pas.





Tout à fait. Avec la petite subtilité en plus des fonctions du noyau en EXPORT_GPL, qui interdit au module proprio de les utiliser (au grand dam de nvidia).









swax a écrit :



Je sais bien pour le noyau. Je parlais de leur éventuelle politique actuelle. Bref ca serait quand même pas le cas, autant pour moi. Maintenant peut-être que le “n’intègre pas” est à remplacer par “intègre rarement”, ou sous certaines conditions qui ne sont pas remplies par l’implémentation open source de MPTCP. Ou alors on m’a simplement donné une information erronée.



Il semblerait, oui… Mais peu importe.

Il suffit aussi de voir dans le détail des MAJ d’OS ce qu’Apple rectifie ou pas, que ce la concerne sécurité ou simple upgrade logiciel de fonctionalités. Ce détail te montre une foultitude de codes libres et/ou open source aussi; ça se voit moins si tu n’y fourres pas ton nez mais c’est kle cas même en dehors des CUPS, emacs et cie…https://www.apple.com/opensource/ pour un détail…









KP2 a écrit :



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.







Pour l’heure, ils ne risquent pas, puisque l’usage du MPTCP est restreint à Siri. Peut-être qu’à l’avenir, il sera dispo dans une API, mais pour le moment, les développeurs ne peuvent pas en faire grand-chose.









le podoclaste a écrit :



Pour l’heure, ils ne risquent pas, puisque l’usage du MPTCP est restreint à Siri. Peut-être qu’à l’avenir, il sera dispo dans une API, mais pour le moment, les développeurs ne peuvent pas en faire grand-chose.







Dans une configuration MPTCP normale (sur Linux pas sur iOS7 où seul Siri l’utilise) il n’est pas nécessaire d’avoir recours à une API pour utiliser MPTCP.



MPTCP fonctionne de manière transparente entre la couche transport TCP et la couche application. Cela permet à toutes les applications utilisant TCP d’utiliser MPTCP sans aucune modification du code.



En somme, si on patch le kernel Linux avec MPTCP, toutes les applications Linux vont utiliser MPTCP. Bien sur il faut que l’hôte distant soit aussi compatible avec MPTCP, cela est négocié à l’aide de l’option tcp “mp_capable” du three-way-handshake TCP.



Donc si Apple décide à terme d’intégrer entièrement MPTCP dans iOS, toutes les applications utiliseront MPTCP sans que le développeur n’ait à faire quoique ce soit.



+1 je suis d’accord avec toi. Pour UDP, je voulais dire que n’était pas un protocole fiable au sens réseau.









Helmeted_Leo a écrit :



+1 avec ta première phrase, par contre UDP transporte aussi de l’IP (La principale différence est que TCP fiabilise le transfert).



Sinon oui MPTCP existe depuis un moment, c’est sans doute peu utilisé car les cas où il est avantageux de faire du multipath sont assez rare. J’avais vu une expérimentation du CERN qui l’utilisait pour augmenter ses débits, mais ça le péquin moyen verra pas la différence même si il a la fibre.

Et aussi je suppose que le protocole doit être implémenté côté client et côté serveur : du coup pour Apple c’est facile de le faire pour Siri car ils maitrisent tout, mais pour un développeur lambda à mon avis c’est une autre histoire.