Zero window (jeda yang terlihat seperti retransmisi) Zero window, often mistaken for retransmission
ID penyebab rt-zero-window · Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game), Infrastruktur server (Tim Infrastruktur)
Jika program penerima tidak membaca socket tepat waktu sehingga buffer penuh, pengirim menghentikan pengiriman dan hanya mengirim zero window probe. Koneksinya sendiri baik-baik saja.
Mengapa Frame di klien berhenti atau thread server tertahan sehingga socket tidak terbaca → Akibatnya Receive window menjadi 0 sehingga pengirim berhenti mengirim dan hanya mengirim probe (intervalnya makin panjang) → Di layar Freeze lalu fast forward. Packet capture menunjukkan “ZeroWindow” dan tidak ada packet loss
Saat banyak pemain berkumpul, Sesekali secara acak
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game), Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Periksa dulu sisi yang mengirim ZeroWindow di packet capture (sisi yang tidak sempat membaca socket), terus baca data jaringan di thread terpisah, atur ukuran buffer terima yang sesuai. Klien: atasi penyebab frame berhenti seperti loading dan GC. Server: atasi penyebab thread pembaca socket tertahan.
Tugas Tim Infrastruktur
Tambahkan TcpExtTCPToZeroWindowAdv di nstat server (berapa kali server memberi tahu receive window 0) ke monitoring (jika naik, masalahnya di sisi server, jadi teruskan ke Pengembangan server), sediakan packet capture sisi server.
Di grafik
Kosong lalu datang sekaligus · Volume terima per koneksi, jumlah zero window
Yang diperiksa
Di packet capture, cari sisi yang memberi tahu window 0 dengan filter Wireshark tcp.analysis.zero_window. Di nstat server, periksa terpisah TcpExtTCPToZeroWindowAdv (server memberi tahu window 0) dan TcpExtTCPWinProbe (server mengirim probe karena window pihak lawan 0), lalu periksa Recv-Q socket server (byte di ss yang belum dibaca program)
Cocok jika
Selama koneksi berhenti, tidak ada retransmisi, hanya paket zero window dan probe yang lalu-lalang. TcpExtTCPToZeroWindowAdv di server atau Recv-Q socket server naik: server tidak membaca tepat waktu. TcpExtTCPWinProbe naik: klien tidak membaca tepat waktu
Tidak cocok jika
Tidak ada zero window di capture dan data yang sama dikirim ulang: lebih mungkin packet loss atau retransmisi yang tidak perlu