4 votes

La synergie du hachage : Mon routeur sans fil retarde-t-il les paquets après une période de silence ?

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 ?

2voto

martian Points 21

J'ai découvert hier que le réglage d'un intervalle de balise très faible sur votre routeur sans fil peut résoudre le problème.

Pour moi, les paquets arrivaient dans un ordre confus, ce qui faisait que les voyelles accentuées en tchèque (peut-être dans les paquets plus longs) arrivaient plus tôt ou plus tard que les consonnes environnantes.

J'ai changé le réglage de la balise de 100 ms à juste 5ms bien que 10ms devrait être suffisant (vous devez garder vos cartes sans fil sur les machines Synergyied occupées pour les empêcher de dormir).

Je tiens à mettre en garde tout le monde contre les inconvénients de cette solution :

  • Je n'ai pas fait de recherches sur le répercussions sur la sécurité d'envoyer une balise sans fil beaucoup plus souvent (même si la mienne est une situation WPA2). Peut-être qu'un tel PA peut être cassé plus rapidement.
  • Empêcher les clients sans fil de dormir peut consommer plus d'énergie de leurs batteries (ex. : téléphones).
  • L'envoi trop fréquent de la balise peut diminuer le débit utile du réseau sans fil (doit être testé davantage).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X