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

Buku Putih Lag Game › L8 Socket dan protokol

Kebijakan penanganan klien lambat (slow consumer) Slow-consumer policy

ID penyebab sk-slow-client · Penanggung jawab utama Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Untuk klien yang data kirimannya terus menumpuk, server membuang update lama atau memutus koneksinya.

Mengapa Koneksi klien tidak sanggup mengimbangi jumlah data yang dikirim server → Akibatnya Server membuang update lama atau memutus koneksi saat batas terlampaui → Di layar Hanya pemain itu yang mengalami teleport atau disconnect

Gejala
Teleport, Disconnect
Faktor
Packet loss
Siapa yang mengalami
Hanya saya
Kapan
Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Kurangi jumlah data yang dikirim (frekuensi update berdasarkan jarak), turunkan kualitas tetapi tetap kirim, kurangi data yang ditumpuk di kernel (TCP_NOTSENT_LOWAT di Linux).
Kisaran angka
Jika buffer kirim 256 KB, pada koneksi 30 KB/s data yang tertunda lebih dari 8 detik bisa menumpuk. Linux bahkan bisa membesarkan buffer ini secara otomatis hingga beberapa MB.
Di grafik
Hanya sebagian yang tinggi · Send-Q per koneksi, jumlah update yang dibuang per klien
Yang diperiksa
Periksa panjang antrean kirim per klien, jumlah update yang dibuang, dan alasan putus yang dicatat server game, lalu di server periksa Send-Q dan cwnd koneksi itu dengan ss -tni
Cocok jika
Hanya koneksi pemain yang melonjak atau putus yang Send-Q-nya terus penuh, dan log game mencatat update pemain itu dibuang atau koneksinya diputus karena antrean kirim melewati batas
Tidak cocok jika
Send-Q kosong tetapi pemain teleport: masalahnya ada di luar sisi kirim server. Lebih mungkin packet loss pada koneksi pemain itu (“Packet loss di jalur nirkabel”) atau interpolasi di layar
Sarana pemeriksaan
Log dan metrik server atau klien game

Sumber

  1. IP Sysctl Linux kernel
    tcp_wmem: batas maksimum buffer kirim yang diatur otomatis default 64 KB–4 MB (tergantung memori); jumlah data yang belum terkirim dibatasi dengan tcp_notsent_lowat dan TCP_NOTSENT_LOWAT
  2. net/ipv4/tcp_diag.c (Linux v6.12) Linux kernel
    Nilai Recv-Q dan Send-Q di ss: pada socket listen berarti jumlah koneksi yang menunggu accept dan batas backlog; pada socket yang terhubung berarti byte yang belum dibaca aplikasi dan byte terkirim yang belum mendapat ACK

Lihat juga

Lapisan yang sama: L8 Socket dan protokol

Penyebab di lapisan lain dengan gejala yang sama (Teleport)

Lihat kartu interaktif dengan gambar dan simulasi