Je partage le clavier et la souris entre mon bureau Linux et mon Macbook Air en utilisant Synergy. Il y a un décalage très perceptible chaque fois que je commence à déplacer ma souris (ou à taper), mais tout devient fluide tant que je n'arrête pas de déplacer la souris (ou de taper).
Après avoir examiné le vidage des paquets des deux côtés, il semble que le serveur synergy commence à envoyer des paquets TCP presque immédiatement, mais que le client synergy ne commence à les recevoir que beaucoup plus tard (par exemple, 288 ms dans un cas).
Mon routeur sans fil pourrait-il mettre en mémoire tampon les paquets initiaux (un peu comme l'algorithme de Nagle dans TCP) ?
Mon installation
- Routeur sans fil : NetGear WNDR3300
- Un bureau Linux exécutant le serveur synergy pour partager son clavier et sa souris
- Connexion Ethernet au routeur (192.168.1.13)
- Ordinateur portable Macbook Air exécutant le client de synergie
- Connexion sans fil au routeur (192.168.1.16)
- Temps de ping : 1ms à 3ms
- Synergy version 1.4.10
Détails
En regardant les vidages de paquets ci-dessous, nous pouvons voir que le serveur commence à signaler les mouvements de la souris à 09:58:02.782 (paquets #69135-69144) mais reçoit le premier ack seulement 288ms plus tard à 09:58:03.070 (paquet #69146). En fait, le serveur retransmet même ses mises à jour dans le paquet #69145 avant de recevoir le premier ack.
D'autre part, le client ne commence à recevoir des mises à jour qu'à 09:58:03.069. Cela implique une latence de 288 ms, mais la latence diminue de manière significative au fur et à mesure que des paquets sont échangés.
Dump de paquets du serveur
No. Time Source Destination Protocol Length Info
69135 09:58:02.782930 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235851 Ack=159785 Win=114 Len=12 TSval=22033564 TSecr=1176772351
69136 09:58:02.790841 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235863 Ack=159785 Win=114 Len=12 TSval=22033566 TSecr=1176772351
69137 09:58:02.799139 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235875 Ack=159785 Win=114 Len=12 TSval=22033568 TSecr=1176772351
69138 09:58:02.806898 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235887 Ack=159785 Win=114 Len=12 TSval=22033570 TSecr=1176772351
69139 09:58:02.815360 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235899 Ack=159785 Win=114 Len=12 TSval=22033572 TSecr=1176772351
69140 09:58:02.823324 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235911 Ack=159785 Win=114 Len=12 TSval=22033574 TSecr=1176772351
69141 09:58:02.831131 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235923 Ack=159785 Win=114 Len=12 TSval=22033576 TSecr=1176772351
69142 09:58:02.839354 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235935 Ack=159785 Win=114 Len=12 TSval=22033578 TSecr=1176772351
69143 09:58:02.846889 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235947 Ack=159785 Win=114 Len=12 TSval=22033580 TSecr=1176772351
69144 09:58:02.855029 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=235959 Ack=159785 Win=114 Len=12 TSval=22033582 TSecr=1176772351
69145 09:58:03.025003 192.168.1.13 192.168.1.16 synergy 186 [TCP Retransmission] 24800 > 60966 [PSH, ACK] Seq=235851 Ack=159785 Win=114 Len=120 TSval=22033625 TSecr=1176772351
69146 09:58:03.070263 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159785 Ack=235863 Win=8191 Len=0 TSval=1176774186 TSecr=22033564
69147 09:58:03.070519 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159785 Ack=235875 Win=8190 Len=0 TSval=1176774186 TSecr=22033566
69148 09:58:03.070530 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159785 Ack=235887 Win=8191 Len=0 TSval=1176774186 TSecr=22033568
69149 09:58:03.071303 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=159785 Ack=235887 Win=8192 Len=8 TSval=1176774186 TSecr=22033568
69150 09:58:03.071322 192.168.1.13 192.168.1.16 TCP 66 24800 > 60966 [ACK] Seq=235971 Ack=159793 Win=114 Len=0 TSval=22033636 TSecr=1176774186
69151 09:58:03.073834 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159793 Ack=235899 Win=8191 Len=0 TSval=1176774187 TSecr=22033570
69152 09:58:03.073854 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159793 Ack=235911 Win=8190 Len=0 TSval=1176774187 TSecr=22033572
69153 09:58:03.074433 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159793 Ack=235923 Win=8189 Len=0 TSval=1176774187 TSecr=22033574
69154 09:58:03.074452 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159793 Ack=235935 Win=8189 Len=0 TSval=1176774187 TSecr=22033576
69155 09:58:03.074459 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159793 Ack=235947 Win=8188 Len=0 TSval=1176774187 TSecr=22033578
69156 09:58:03.074464 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159793 Ack=235959 Win=8187 Len=0 TSval=1176774187 TSecr=22033580
69157 09:58:03.074468 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=159793 Ack=235971 Win=8186 Len=0 TSval=1176774187 TSecr=22033582
69158 09:58:03.074483 192.168.1.13 192.168.1.16 synergy 150 24800 > 60966 [PSH, ACK] Seq=235971 Ack=159793 Win=114 Len=84 TSval=22033637 TSecr=1176774187
69159 09:58:03.074490 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=159793 Ack=235971 Win=8192 Len=8 TSval=1176774187 TSecr=22033582
69160 09:58:03.074499 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=159801 Ack=235971 Win=8192 Len=8 TSval=1176774187 TSecr=22033582
69161 09:58:03.074550 192.168.1.13 192.168.1.16 TCP 66 24800 > 60966 [ACK] Seq=236055 Ack=159809 Win=114 Len=0 TSval=22033637 TSecr=1176774187
69162 09:58:03.075162 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=159809 Ack=235971 Win=8192 Len=8 TSval=1176774189 TSecr=22033582
69163 09:58:03.075177 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=159817 Ack=235971 Win=8192 Len=8 TSval=1176774189 TSecr=22033582
69164 09:58:03.075188 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=159825 Ack=235971 Win=8192 Len=8 TSval=1176774189 TSecr=22033582
69165 09:58:03.075191 192.168.1.16 192.168.1.13 TCP 66 [TCP Dup ACK 69164#1] 60966 > 24800 [ACK] Seq=159833 Ack=235971 Win=8192 Len=0 TSval=1176774189 TSecr=22033625
Dump de paquets du client
No. Time Source Destination Protocol Length Info
5020 09:58:03.069606000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17603 Ack=11921 Win=114 Len=12 TSval=22033564 TSecr=1176772351
5021 09:58:03.069662000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17615 Ack=11921 Win=114 Len=12 TSval=22033566 TSecr=1176772351
5022 09:58:03.069753000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17627 Ack=11921 Win=114 Len=12 TSval=22033568 TSecr=1176772351
5023 09:58:03.069791000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11921 Ack=17615 Win=8191 Len=0 TSval=1176774186 TSecr=22033564
5024 09:58:03.069792000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11921 Ack=17627 Win=8190 Len=0 TSval=1176774186 TSecr=22033566
5025 09:58:03.069849000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11921 Ack=17639 Win=8191 Len=0 TSval=1176774186 TSecr=22033568
5026 09:58:03.070526000 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=11921 Ack=17639 Win=8192 Len=8 TSval=1176774186 TSecr=22033568
5027 09:58:03.070674000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17639 Ack=11921 Win=114 Len=12 TSval=22033570 TSecr=1176772351
5028 09:58:03.070678000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17651 Ack=11921 Win=114 Len=12 TSval=22033572 TSecr=1176772351
5029 09:58:03.070679000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17663 Ack=11921 Win=114 Len=12 TSval=22033574 TSecr=1176772351
5030 09:58:03.070680000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17675 Ack=11921 Win=114 Len=12 TSval=22033576 TSecr=1176772351
5031 09:58:03.070681000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17687 Ack=11921 Win=114 Len=12 TSval=22033578 TSecr=1176772351
5032 09:58:03.070682000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17699 Ack=11921 Win=114 Len=12 TSval=22033580 TSecr=1176772351
5033 09:58:03.070682000 192.168.1.13 192.168.1.16 synergy 78 24800 > 60966 [PSH, ACK] Seq=17711 Ack=11921 Win=114 Len=12 TSval=22033582 TSecr=1176772351
5034 09:58:03.070799000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11929 Ack=17651 Win=8191 Len=0 TSval=1176774187 TSecr=22033570
5035 09:58:03.070799000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11929 Ack=17663 Win=8190 Len=0 TSval=1176774187 TSecr=22033572
5036 09:58:03.070800000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11929 Ack=17675 Win=8189 Len=0 TSval=1176774187 TSecr=22033574
5037 09:58:03.070800000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11929 Ack=17687 Win=8189 Len=0 TSval=1176774187 TSecr=22033576
5038 09:58:03.070801000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11929 Ack=17699 Win=8188 Len=0 TSval=1176774187 TSecr=22033578
5039 09:58:03.070834000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11929 Ack=17711 Win=8187 Len=0 TSval=1176774187 TSecr=22033580
5040 09:58:03.070835000 192.168.1.16 192.168.1.13 TCP 66 60966 > 24800 [ACK] Seq=11929 Ack=17723 Win=8186 Len=0 TSval=1176774187 TSecr=22033582
5041 09:58:03.070944000 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=11929 Ack=17723 Win=8192 Len=8 TSval=1176774187 TSecr=22033582
5042 09:58:03.071374000 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=11937 Ack=17723 Win=8192 Len=8 TSval=1176774187 TSecr=22033582
5043 09:58:03.072831000 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=11945 Ack=17723 Win=8192 Len=8 TSval=1176774189 TSecr=22033582
5044 09:58:03.073123000 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=11953 Ack=17723 Win=8192 Len=8 TSval=1176774189 TSecr=22033582
5045 09:58:03.073432000 192.168.1.16 192.168.1.13 synergy 74 60966 > 24800 [PSH, ACK] Seq=11961 Ack=17723 Win=8192 Len=8 TSval=1176774189 TSecr=22033582
5046 09:58:03.073561000 192.168.1.13 192.168.1.16 synergy 186 [TCP Retransmission] 24800 > 60966 [PSH, ACK] Seq=17603 Ack=11921 Win=114 Len=120 TSval=22033625 TSecr=1176772351
5047 09:58:03.073599000 192.168.1.16 192.168.1.13 TCP 66 [TCP Dup ACK 5045#1] 60966 > 24800 [ACK] Seq=11969 Ack=17723 Win=8192 Len=0 TSval=1176774189 TSecr=22033625
0 votes
Le TCP est nul en Wi-Fi, il faut faire avec.
0 votes
@BatchyX : Si vous lisez ma question, il ne semble pas s'agir d'un problème de TCP. Le serveur transmet les paquets mais le client ne les reçoit pas tout de suite. Je ne vois pas comment TCP vs UDP vs ICMP pourrait faire une différence.
0 votes
Comment les horloges du client et du serveur sont-elles synchronisées ? via NTP ? L'ordinateur portable fonctionne-t-il sur batteries (ou plus précisément, l'économie d'énergie est-elle activée sur l'interface wifi ?) Le canal est-il encombré par d'autres stations ?
0 votes
@BatchyX : Oui, les horloges sont synchronisées via NTP. Vous pouvez également voir que le décalage diminue au fur et à mesure que des paquets sont échangés, ce qui ne peut pas être expliqué par un décalage d'horloge. L'ordinateur portable était sous tension pendant le test ci-dessus (l'économie d'énergie peut-elle encore être activée pour le wifi lorsqu'il est sur l'adaptateur secteur ?) Il n'y a pas d'autres machines connectées au routeur et aucun téléchargement lourd n'est en cours.
0 votes
L'économie d'énergie peut toujours être activée sur l'adaptateur secteur, cela dépend vraiment du pilote et/ou du système d'exploitation. L'économie d'énergie signifie que l'AP va mettre en mémoire tampon les trames pendant que la carte de l'ordinateur portable dort, et quand la carte se réveille, elle va demander les trames en attente. Selon le schéma d'économie d'énergie utilisé, la carte de l'ordinateur portable peut devoir se réveiller tous les intervalles DTIM, qui est un multiple de l'intervalle de balise, et 100ms est un intervalle de balise commun. Et quand je parle de "canal encombré", je veux dire encombré par d'autres réseaux wifi utilisant le même canal.
0 votes
@BatchyX : Merci pour votre réponse. J'utilise OS X 10.8.2 sur l'ordinateur portable. Avez-vous des indications sur la façon de vérifier les paramètres wifi tels que le mode d'économie d'énergie ou l'intervalle DTIM ? De plus, en ce qui concerne la congestion, je peux voir qu'il est connecté à un canal 5 GHz 802.11n, le RSSI est de -61 et l'indice MCS est de 13. Avez-vous des idées sur la façon de vérifier la congestion ?
0 votes
De plus, je dois noter que l'effet de décalage se manifeste après seulement 1-2 secondes d'inactivité. Par exemple, si j'arrête de bouger la souris pendant 1 ou 2 secondes, elle "saute" dès que je recommence à la bouger. L'économie d'énergie pourrait-elle se manifester aussi rapidement ?
0 votes
@BatchyX : Je pense que vous avez tout à fait raison ! Lorsque je fais un ping du Macbook Air vers le PC, j'obtiens systématiquement des temps de ping de 1 à 3 ms, mais du PC vers le Mac, j'obtiens 50 à 250 ms. Dès que je commence à déplacer la souris du PC sur l'écran du Mac, le temps de ping tombe à quelques millisecondes (en raison de la communication constante due au mouvement de la souris) !
0 votes
Je ne connais pas du tout mac osx, donc je ne peux pas donner une bonne réponse. Mais de toute façon, l'intervalle dtim est un paramètre de l'AP, donc je suggère de regarder l'AP pour cela. Il y a peut-être aussi un paramètre pour désactiver les tampons d'économie d'énergie, si vous ne pouvez pas le désactiver sur l'ordinateur portable.
0 votes
Mon NetGear WNDR3300 a très peu de paramètres sans fil. Pour l'instant, j'ai "résolu" le problème en laissant un ping en cours avec un intervalle de 200 ms ! Merci pour votre aide.