J'ai essayé de résoudre un problème de réseau qui présente un taux très élevé de retransmissions TCP. 36 échantillons (pris avec Wireshark 1.10.8 fonctionnant sous Windows 7 32 bits) totalisant un peu plus de sept heures, entre 2 et 53 minutes chacun, montrent que les retransmissions occupent entre 43 et 61 % de la bande passante totale d'entrée.
Ce qui m'embrouille, c'est que, pour autant que je sache, il n'y a que deux raisons pour ce genre de problème : une liaison instable qui laisse tomber des paquets, et la congestion. Je pense avoir exclu ces deux causes. Permettez-moi d'exposer notre situation et j'aimerais que des personnes plus compétentes que moi me fassent part d'autres pistes de recherche pour résoudre le problème.
Le réseau en question se trouve à bord d'un navire en mer. Il utilise une liaison satellite pour communiquer avec l'Internet. Malheureusement, les coûts de la bande passante pour ce type de liaison sont prodigieux, nous sommes donc coincés avec une connexion de 1Mbps descendant / 512kbps montant. Comme il s'agit d'une liaison par satellite, le temps de ping est d'environ 650 ms. En ce moment, nous avons environ 300 personnes à bord, qui partagent toutes ce tuyau.
Le réseau se compose de deux VLAN (un pour les ordinateurs du navire, l'autre pour les invités). Les deux VLAN sont acheminés vers un SonicWall TZ 215 (exécutant SonicOS Enhanced 5.8.1.2-6o) qui contrôle le tuyau vers Internet. Les deux VLAN ont des clients câblés et sans fil. Le réseau câblé est géré par une série de commutateurs gigabit Cisco 2900. Le réseau sans fil est fourni par de nombreux AP Cisco (la propagation du signal dans un navire en acier en mer est terrible).
J'ai d'abord pensé qu'il s'agissait d'un problème d'encombrement, et j'ai donc cherché diverses solutions (blocage des services à large bande passante comme le chat vidéo et le streaming, pressions sur le siège social pour qu'il paie un tuyau plus gros, etc.) Malheureusement, nous n'avons pas obtenu de tuyau plus gros. Les autres solutions ont aidé un peu, mais pas assez pour faire une réelle différence.
Mais ce week-end, j'ai été renvoyé à la case départ. Le capitaine m'a demandé de désactiver l'accès des invités à Internet pendant un exercice. J'ai profité de cette occasion pour faire une capture Wireshark du réseau lorsqu'il n'était pas congestionné. À ma grande surprise, cet échantillon de 10 minutes a montré que le taux de retransmission TCP était presque identique à toutes les autres captures - 58 %. Pendant la durée de l'échantillon, l'utilisation moyenne de la bande passante était de 98 kbps, donc c'était définitivement pas encombré.
Il ne reste donc que la perte de paquets comme cause probable. Pour tester cela, j'ai lancé 12 heures de pings. A la fin, le programme a rapporté moins de 1% de perte de paquets.
Ce qui laisse... quoi ? Je ne sais pas. Toute idée supplémentaire serait la bienvenue.