« Tethered Caching » : quand Apple connecte l’iPhone en Ethernet

Avec la dernière mise à jour de macOS Sierra (10.12.4), Apple a intégré une fonction – encore perfectible – de cache pour les applications iOS. Effet de bord du truc : les appareils iOS peuvent utiliser la connexion du Mac à la place du Wi-Fi. En clair, un Mac devient un adaptateur Ethernet de luxe.

La fonction de cache

La nouvelle fonction de cache ne remplace pas celle de macOS Server – très efficace au demeurant – mais vise plus l’éducation et ceux qui veulent configurer des tas d’appareils iOS. L’idée est de brancher les appareils en USB sur un Mac, et de cacher les données sur le Mac. Ca fonctionne avec macOS 10.12.4 et iOS 10.3. Il y a actuellement quelques contraintes matérielles, d’abord : le Mac doit être connecté en Ethernet et le programme empêche la mise en veille. Au niveau logiciel, c’est encore largement perfectible, une simple commande lance le truc, sans interface : sudo tethered-caching. Pour le moment, ça cache les mises à jour d’iOS, les applications, les livres et le contenu iCloud. Comme le serveur de cache de macOS Server, donc, mais sans les données liées aux Mac.

Le serveur de cache, lancé

Un partage de connexion caché

Le fonctionnement est intéressant : une fois le serveur activé et l’appareil iOS connecté physiquement (en Lightning), ce dernier coupe le Wi-Fi et tout le trafic passe par le Mac, en partage de connexion. En clair, le Mac devient une sorte d’adaptateur Lightning vers Ethernet pour iOS. J’avais noté que l’iPhone apparaissait dans les interfaces réseaux avec une adresse IP non assignée depuis la mise à jour (auparavant, l’interface ne s’activait qu’en partage de connexion) et j’ai donc trouvé la raison. C’est très visible avec Wireshark : tout le trafic IP de mon iPhone passe par l’interface réseau du Mac et pas par le Wi-Fi.

L’interface réseau de l’iPhone


Le trafic IP passe dessus

Pour ceux qui n’aiment pas les ondes (ou captent mal le Wi-Fi), c’est une solution intéressante pour de gros téléchargements. Après, c’est quand même encore très perfectible à causse de l’absence d’interface graphique et des contraintes matérielles sur le Mac. De plus, l’iPhone ne coupe pas toujours son interface Wi-Fi (ça dépend un peu de l’ordre de lancement/branchement). A noter que les données sont cachées dans /Library/Caches/com.apple.AssetCache. je suppose que les prochaines versions de Sierra (ou de son successeur) proposeront quelque chose d’un peu plus abouti.

Par ailleurs, le partage de connexion est juste un effet de bord de l’activation du cache. Techniquement, le script active un simple partage de connexion classique. Depuis macOS 10.12.4, le partage de connexion de macOS permet le partage vers iOS. Au passage, si l’iPhone continue a couper le Wi-Fi après la désactivation du serveur de cache, il suffit de désactiver le partage dans les options de partage de macOS.