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

Buku Putih Lag Game › L8 Socket dan protokol

HOL blocking pada TCP Head-of-line blocking

ID penyebab sk-hol · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Pengembangan klien (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Untuk menjaga urutan, TCP tidak menyerahkan paket yang datang belakangan ke game sampai satu paket yang hilang diterima ulang.

Mengapa Satu paket hilang → Akibatnya Paket-paket sesudahnya sudah tiba, tetapi menunggu di buffer terima → Di layar Berhenti, lalu semuanya dilepas sekaligus sehingga terjadi fast forward

Gejala
Freeze, Fast forward
Faktor
Packet loss, Stall
Siapa yang mengalami
Hanya saya
Kapan
Sesekali secara acak
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Server: kirim posisi real-time lewat UDP, gunakan pengiriman reliable hanya untuk data yang benar-benar perlu, pecah menjadi beberapa stream. Klien: ubah pemrosesan jaringan ke cara yang sama dengan server (UDP, pemisahan channel).
Kisaran angka
Jika satu paket hilang, game berhenti minimal selama RTT + α; jika paket retransmisinya juga hilang, berhentinya bisa ratusan ms hingga beberapa detik.
Di grafik
Kosong lalu datang sekaligus · Jumlah data diterima per koneksi, jumlah retransmisi
Yang diperiksa
Periksa paket retransmisi dan jeda kosong sebelum dan sesudahnya pada koneksi pemain tersebut lewat packet capture di sisi server (tcpdump, Wireshark); untuk seluruh server, periksa kenaikan TcpRetransSegs di nstat -az
Cocok jika
Bagian yang berhenti dimulai dengan retransmisi satu paket, dan tepat setelah paket retransmisi tiba, data yang tertahan diproses sekaligus (data diterima 0 lalu datang bertumpuk)
Tidak cocok jika
Game berkomunikasi lewat UDP: tidak berlaku. Tidak ada retransmisi tetapi tetap berhenti: periksa sisi tick server (“Tick melewati budget (tick overrun)”)
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)

Sumber

  1. RFC 9293: Transmission Control Protocol (TCP) IETF
    TCP adalah layanan byte stream yang reliable dan menjaga urutan
  2. RFC 5681: TCP Congestion Control IETF
    Packet loss dideteksi dari 3 duplicate ACK lalu dilakukan fast retransmit; jika tidak, TCP menunggu timer retransmisi
  3. RFC 6298: Computing TCP's Retransmission Timer IETF
    Backoff yang menggandakan timer retransmisi setiap kali timer habis
  4. net/ipv4/proc.c (Linux v6.12) Linux kernel
    Nama counter yang ditampilkan nstat: RetransSegs di grup Tcp (jumlah segmen yang dikirim ulang)

Lihat juga

Lapisan yang sama: L8 Socket dan protokol

Penyebab di lapisan lain dengan gejala yang sama (Freeze)

Lihat kartu interaktif dengan gambar dan simulasi