Freemobile, roaming Orange et HTTP

Mise à jour 1 : 01/05/2014 Mise à jour 2 : 27/08/2014 Le problème

Après moults tests, j'ai constaté un problème au niveau du chargement des pages web avec un abonnement Freemobile en itinérance sur le réseau d'Orange.

Grace à son accord d'itinérance, les abonnés Free peuvent utiliser le réseau 2G et 3G d'Orange. J'ai développé une application qui vous permettra de voir sur quel réseau vous êtes. (MNC : 01 Orange, 10 SFR, 15 Freemobile, 20 Bouygues).

Le test

Le problème est assez étrange et cela peut venir de plusieurs sources différentes.

Ayant des antennes Free et Orange, j'ai pu changer de réseau. Le menu sous Android est : Paramètres > Sans fils et réseaux > Réseaux mobiles > Opérateurs réseaux. Deux "Free" vont s'afficher si vous êtes couvert par Orange et Free (en rom de base, j'avais bien Orange F sous Cyanogen). Pour choisir Free, cliquer sur le premier Free (pour cause : classement par ordre alphabêtique ou bien priorité dans la SIM, qui sait ?). Une fois sur le réseau Free (20815), plus de problèmes.

Est-ce qu'il s'agit de tous les protocoles ? Je bascule sur Orange, je teste en HTTPS, les pages se chargent. J'ai aussi changé de navigateur, le problème reste le même.

Je lance alors tcpdump sur mon serveur et mon téléphone et je charge une page de mon site.

J'obtiens cela dans Wireshark : Trames réseaux échangées entre un téléphone et un serveur J'ai indiqué d'une croix rouge (x) les trames non-reçues par le téléphone, et d'un point d'interrogation vert (?) les trames non-envoyées par le téléphone.

Je met à disposition les fichiers de capture serveur et téléphone. Notez que j'ai volontairement obfusqué les adresses MAC.

Edit du 01/05/2014 : HTTP qui marche sur le réseau Orange

J'ai retenté le matin, les paquets sont similaires mais cette fois, le téléphone reçoit aussi les pages web. Je songe à un problème de surcharge de la passerelle. Les nouveaux fichiers de captures sont là : serveur et téléphone.

Edit du 27/08/2014 :

Appel de Freemobile à 9h, le problème est remonté. J'ai trouvé un problème similaire il y a quelques semaines en cherchant récemment pourquoi l'icône de réseau (H+/H/3G) changeait très rapidement. Symptômes similaires sur le forum de Freenews. Bien qu'ayant désactivé la fast-dormancy et passé en 3G uniquement, le problème continue. Que remarque-t-on ici ?

Le téléphone arrive parfaitement à ouvrir une connexion TCP (SYN, SYN ACK, ACK). Jusque là le serveur reçoit les paquets. L'adresse IP et le port ont été translatés 10.148.149.102:59460 → 37.162.71.138:21073. On observe des changements notamment le MSS qui passe de 1460 à 1300 au travers du réseau (encapsulation ? Je n'ai pas encore testé les valeurs sur le réseau Free en propre), la taille de fenêtre change aussi. Le serveur recevra bien la requête HTTP et y répondra. Il recevra même un ACK. Le téléphone, quant-à-lui ne verra plus rien après sa requête. La relance qu'il tente n'aboutira pas non-plus.

Pour conclure, je suis assez perplexe. Je ne sais pas si d'autres parmi vous ont ce problème. J'aurais tendance à imaginer un proxy (peut-être surchargé ?), car j'ai cru constater que le problème dépendait des horaires.