Kepicikan sinergi: Apakah router nirkabel saya menunda paket setelah periode hening?

4

Saya berbagi keyboard dan mouse antara desktop Linux dan MacBook Air menggunakan Synergy. Ada jeda yang sangat mencolok setiap kali saya mulai menggerakkan mouse saya (atau mulai mengetik), tetapi semuanya menjadi lancar selama saya tidak berhenti menggerakkan mouse (atau mengetik).

Setelah melihat dump paket di kedua ujungnya, sepertinya server sinergi mulai mengirimkan paket TCP segera, tetapi klien sinergi tidak mulai menerima mereka sampai kemudian (mis. 288 ms dalam satu kasus).

Bisakah router nirkabel saya buffering paket awal (agak mirip dengan algoritma Nagle di TCP)?

Pengaturan saya

  • Router Nirkabel: NetGear WNDR3300
  • Linux desktop menjalankan server sinergi untuk berbagi keyboard dan mouse
    • Koneksi Ethernet ke router (192.168.1.13)
  • Laptop MacBook Air menjalankan klien sinergi
    • Koneksi nirkabel ke router (192.168.1.16)
  • Waktu ping: 1ms hingga 3ms
  • Sinergi versi 1.4.10

Detail

Melihat paket dump di bawah ini, kita dapat melihat bahwa server mulai melaporkan pergerakan mouse pada 09: 58: 02.782 (paket # 69135-69144) tetapi menerima ack pertama hanya 288 ms kemudian pada 09: 58: 03.070 (paket # 69146) Bahkan, server bahkan mentransmisikan kembali pembaruannya dalam paket # 69145 sebelum mendapatkan ack pertama.

Di sisi lain, klien hanya mulai menerima pembaruan pada 09: 58: 03.069. Ini menyiratkan latensi 288 ms, tetapi latensi turun secara signifikan karena lebih banyak paket yang dipertukarkan.

Paket Server Dump

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

Paket Klien Dump

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
mtoossi
sumber
TCP mengisap melalui Wi-Fi, hadapi itu.
BatchyX
@ BatchyX: Jika Anda membaca pertanyaan saya, ini sepertinya bukan masalah TCP. Server mengirimkan paket tetapi klien tidak segera menerimanya. Saya tidak melihat bagaimana TCP vs UDP vs ICMP akan membuat perbedaan.
mtoossi
Bagaimana jam klien dan server disinkronkan? melalui NTP? Apakah laptop berjalan dengan baterai (atau lebih tepatnya, apakah powersave diaktifkan pada antarmuka wifi?) Apakah salurannya padat oleh stasiun lain?
BatchyX
@ BatchyX: Ya, jam disinkronkan melalui NTP. Anda juga dapat melihat kelambatan menurun karena lebih banyak paket yang dipertukarkan yang tidak dapat dijelaskan dengan kemiringan jam. Laptop menyala saat pengujian di atas (dapatkah penghematan daya masih diaktifkan untuk wifi saat menggunakan adaptor daya?). Tidak ada mesin lain yang terhubung ke router dan tidak ada unduhan berat yang berjalan.
mtoossi
baik, penghematan daya masih bisa diaktifkan ketika pada adaptor daya, itu sangat tergantung pada driver dan / atau OS. Penghematan daya berarti AP akan buffer frame saat kartu laptop tidur, dan ketika kartu bangun, ia akan meminta frame yang tertunda. Tergantung pada skema hemat daya wifi mana yang digunakan, kartu laptop mungkin diperlukan untuk membangunkan setiap interval DTIM, yang merupakan kelipatan dari interval suar, dan 100ms adalah interval suar yang umum. Dan ketika saya maksudkan 'saluran padat', maksud saya padat oleh jaringan wifi lain menggunakan saluran yang sama.
BatchyX

Jawaban:

2

Saya baru saja menemukan kemarin bahwa pengaturan interval suar yang sangat rendah pada router nirkabel Anda dapat menyelesaikan kebuntuan.

Bagi saya paket-paket tiba dalam urutan yang kacau-balau menyebabkan vokal beraksen Ceko (mungkin dalam paket yang lebih panjang) datang lebih awal atau lebih lambat daripada konsonan di sekitarnya.

Saya telah mengubah pengaturan suar dari 100 ms untuk adil 5 ms walaupun 10ms seharusnya sudah cukup (Anda harus menjaga kartu nirkabel Anda pada mesin Sinergi agar tidak tertidur).

Saya ingin memperingatkan semua orang tentang kekurangan ini untuk solusi ini:

  • Saya tidak meneliti implikasi keamanan mengirim suar nirkabel jauh lebih sering (meskipun saya adalah situasi WPA2). Mungkin AP seperti itu dapat dipecah menjadi lebih cepat.
  • Mencegah klien nirkabel dari tidur dapat mengambil lebih banyak daya dari baterai mereka (misalnya telepon:)
  • Mengirim suar terlalu sering dapat mengurangi throughput jaringan nirkabel yang berguna (perlu pengujian lebih lanjut).
martian
sumber