Packet loss di jalur nirkabel Wi-Fi / cellular link loss
ID penyebab rt-wireless · Penanggung jawab utama Pihak Eksternal (Pihak Eksternal) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Pengembangan server (Tim Pengembang Game), Pengembangan klien (Tim Pengembang Game)
Wi-Fi dan jaringan seluler mengirim ulang paket beberapa kali di jalur nirkabel, dan jika tetap gagal, paket dibuang. Paket yang dibuang itu baru dikirim ulang oleh TCP jauh kemudian.
Mengapa Sinyal lemah atau interferensi berat membuat pengiriman di jalur nirkabel gagal berturut-turut → Akibatnya Paket dibuang setelah melewati batas percobaan ulang perangkat nirkabel (biasanya beberapa hingga belasan kali) → Di layar Freeze selama menunggu retransmisi TCP, lalu fast forward karena paket berikutnya yang tertahan di buffer terima diteruskan sekaligus
Sesekali secara acak, Saat bergerak atau pindah area
Penanggung jawab
Penanggung jawab utama Pihak Eksternal (Pihak Eksternal) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Pengembangan server (Tim Pengembang Game), Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Server: aktifkan TCP_NODELAY (jika Nagle aktif, RACK tidak punya paket susulan untuk mendeteksi packet loss), kirim hanya update state terbaru selama koneksi tertahan oleh retransmisi (batasi jumlah yang menumpuk di kernel dengan TCP_NOTSENT_LOWAT). Klien: aktifkan TCP_NODELAY (packet loss di arah input pemain dipulihkan oleh OS klien), tampilkan status jaringan di layar saat packet loss menumpuk atau ping melonjak.
Tugas Tim Infrastruktur
Percepat pemulihan packet loss dengan RACK-TLP (server tidak bisa mencegah packet loss nirkabel dan paling jauh hanya bisa mempercepat pemulihan), pastikan nilai default Linux terbaru net.ipv4.tcp_recovery=1 (RACK) dan net.ipv4.tcp_early_retrans=3 (TLP) tidak diubah.
Tugas Pihak Eksternal
Imbau pemain untuk memakai koneksi kabel atau Wi-Fi 5 GHz/6 GHz, serta memindahkan router atau mengganti channel-nya.
Kisaran angka
Dengan packet loss nirkabel 1%, 1 dari 100 paket game hilang. Jika menerima 10 paket per detik, game tersendat sesaat kira-kira sekali setiap 10 detik. Tanpa RACK-TLP, setiap kejadian membuat game berhenti selama RTO (ping + 200 ms atau lebih).
Di grafik
Hanya sebagian yang tinggi · Tingkat retransmisi per koneksi, RTT (ping) per koneksi
Yang diperiksa
Dari PC pemain, kirim ping ratusan kali ke alamat router (gateway) dan ke server game, bandingkan packet loss dan rentang latensinya, lalu ukur lagi setelah beralih ke kabel atau data seluler. Di server, periksa retrans dan rtt (rata-rata/deviasi) pada koneksi pemain itu dengan ss -ti
Cocok jika
Ping ke router saja sudah menunjukkan packet loss atau latensi yang naik turun, dan masalah hilang setelah beralih ke kabel. Dari sisi server, hanya koneksi pemain itu yang retrans dan deviasi RTT-nya besar
Tidak cocok jika
Bersih sampai router, packet loss baru mulai setelahnya: mengarah ke ISP atau rute (“Antrean bottleneck meluap”, “Perubahan rute dan jalur ECMP bermasalah”). Beberapa pemain di ISP yang sama memburuk bersamaan: periksa jalur ISP lebih dulu
Sarana pemeriksaan
Lingkungan pemain sendiri
Pelajari lebih lanjut
Percobaan ulang di perangkat nirkabel menimbulkan jitter (beberapa ms setiap percobaan), dan hanya paket yang melewati batas percobaan ulang yang menjadi packet loss. Karena itu, makin buruk kualitas nirkabel, gejalanya makin berat dengan urutan “jitter → sesekali freeze → sering freeze”. Saat roaming, yaitu berpindah dari satu router (AP) ke AP lain, paket bisa hilang berturut-turut selama puluhan ms hingga beberapa detik. Jaringan seluler banyak melakukan retransmisi di jalur ke BTS, sehingga masalahnya lebih sering muncul sebagai lonjakan latensi ratusan ms daripada sebagai packet loss.
net/wireless/core.cLinux kernel Batas percobaan ulang default di stack nirkabel Linux: 7 kali untuk frame pendek, 4 kali untuk frame panjang (dot11ShortRetryLimit, dot11LongRetryLimit)
Wi-Fi roaming support in Apple devicesApple Saat berpindah AP, data tidak bisa dikirim sampai autentikasi ke AP baru selesai, dan di lingkungan 802.1X prosesnya bisa memakan beberapa detik
IP SysctlLinux kernel Default tcp_recovery 0x1 (RACK), default tcp_early_retrans 3 (TLP aktif), TCP_NOTSENT_LOWAT dan tcp_notsent_lowat membatasi jumlah data yang belum dikirim
tcp(7) — Linux manual pageLinux man-pages TCP_NODELAY mematikan algoritma Nagle sehingga data kecil pun langsung dikirim
include/net/tcp.hLinux kernel Nilai minimum RTO: TCP_RTO_MIN = 200 ms
misc/ss.ciproute2 ss -ti menampilkan retrans:jumlah yang sedang dikirim ulang/jumlah retransmisi kumulatif dan rtt:RTT/deviasi RTT (rttvar)