协同不连贯:我的无线路由器是否会在静默期后延迟数据包?

协同不连贯:我的无线路由器是否会在静默期后延迟数据包?

我使用 Synergy 在 Linux 桌面和 MacBook Air 之间共享键盘和鼠标。每次我开始移动鼠标(或开始输入)时,都会出现非常明显的延迟,但只要我不停止移动鼠标(或输入),一切都会变得顺畅。

查看了两端的数据包转储后,似乎 synergy 服务器几乎立即开始发送 TCP 数据包,但 synergy 客户端直到很晚才开始接收它们(例如,在一种情况下是 288 毫秒)。

我的无线路由器可以缓冲初始数据包吗(有点类似于 TCP 中的 Nagle 算法)?

我的设置

  • 无线路由器:NetGear WNDR3300
  • 运行 synergy 服务器的 Linux 桌面共享其键盘和鼠标
    • 以太网连接到路由器(192.168.1.13)
  • MacBook Air 笔记本电脑运行协同客户端
    • 无线连接路由器(192.168.1.16)
  • Ping 时间:1ms 至 3ms
  • Synergy 版本 1.4.10

细节

查看下面的数据包转储,我们可以看到服务器在 09:58:02.782 开始报告鼠标移动(数据包 #69135-69144),但仅在 288ms 后于 09:58:03.070 收到第一个确认(数据包 #69146)。事实上,服务器甚至在收到第一个确认之前就重传了数据包 #69145 中的更新。

另一方面,客户端仅在 09:58:03.069 开始接收更新。这意味着延迟为 288ms,但随着交换的数据包增多,延迟会显著降低。

服务器数据包转储

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

客户端数据包转储

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

答案1

我昨天才发现,在无线路由器上设置非常低的信标间隔可以解决信号不连贯的问题。

对于我来说,数据包到达的顺序是混乱的,导致捷克重音元音(可能在较长的数据包中)比周围的辅音更早或更晚到达。

我已经将信标设置从100毫秒只是5毫秒尽管 10ms 应该足够了(您需要让 Synergyied 机器上的无线网卡保持忙碌状态,以防止它们进入睡眠状态)。

我想警告大家这个解决方案有以下缺点:

  • 我没有研究安全影响更频繁地发送无线信标(即使我的是 WPA2 情况)。也许这样的 AP 可以被更快地破解。
  • 防止无线客户端进入睡眠状态可以从其电池中消耗更多电量(例如:手机)。
  • 过于频繁地发送信标可能会降低无线网络的有用吞吐量(需要更多测试)。

相关内容