한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Buku Putih Lag Game › Akar penyebab retransmisi TCP

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)

Buka kartu interaktif dengan gambar dan simulasi →

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

Gejala
Freeze, Fast forward, Teleport
Faktor
Packet loss, Jitter
Siapa yang mengalami
Hanya saya, Satu rumah
Kapan
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.
Kasus nyata
Square Enix 2021: Kepadatan server saat rilis ekspansi FINAL FANTASY XIV dan error antrean login

Sumber

  1. net/wireless/core.c Linux kernel
    Batas percobaan ulang default di stack nirkabel Linux: 7 kali untuk frame pendek, 4 kali untuk frame panjang (dot11ShortRetryLimit, dot11LongRetryLimit)
  2. RFC 3481: TCP over Second (2.5G) and Third (3G) Generation Wireless Networks IETF
    Berkat retransmisi di lapisan link, packet loss IP di jaringan seluler kecil, tetapi pemulihan itu muncul sebagai jitter dan lonjakan latensi
  3. Wi-Fi roaming support in Apple devices Apple
    Saat berpindah AP, data tidak bisa dikirim sampai autentikasi ke AP baru selesai, dan di lingkungan 802.1X prosesnya bisa memakan beberapa detik
  4. RFC 8985: The RACK-TLP Loss Detection Algorithm for TCP IETF
    Definisi RACK (deteksi packet loss berbasis waktu) dan TLP (retransmisi paket terakhir)
  5. IP Sysctl Linux 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
  6. tcp(7) — Linux manual page Linux man-pages
    TCP_NODELAY mematikan algoritma Nagle sehingga data kecil pun langsung dikirim
  7. include/net/tcp.h Linux kernel
    Nilai minimum RTO: TCP_RTO_MIN = 200 ms
  8. misc/ss.c iproute2
    ss -ti menampilkan retrans:jumlah yang sedang dikirim ulang/jumlah retransmisi kumulatif dan rtt:RTT/deviasi RTT (rttvar)

Lihat juga

Lapisan yang sama: Akar penyebab retransmisi TCP

Penyebab di lapisan lain dengan gejala yang sama (Freeze)

Lihat kartu interaktif dengan gambar dan simulasi