Router menghapus koneksi idle yang lama tidak dilewati paket dari tabel NAT. Ini penyebab umum disconnect tepat saat pemain mulai bergerak setelah lama diam.
Mengapa Router mencatat koneksi “perangkat di dalam ↔ server di luar” di tabel NAT (tabel translasi alamat) → Akibatnya Jika lama tidak ada paket, entri dihapus dari tabel (untuk UDP umumnya 30–120 detik) → Di layar Paket dari server tidak bisa masuk ke dalam rumah sehingga terjadi disconnect
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Klien: kirim heartbeat dengan interval maksimal setengah dari idle timeout terpendek (mapping UDP hanya diperbarui dengan pasti oleh paket yang keluar dari dalam rumah, jadi klien yang mengirim), reconnect otomatis jika terputus. Server: balas heartbeat, bersihkan koneksi lebih dulu jika tidak menerima heartbeat dalam waktu tertentu, dan jika mapping terhapus sehingga alamat dan port luar berubah, pastikan pemainnya sama lewat token sesi (nomor konfirmasi yang diterima saat login) lalu lanjutkan sesinya.
Di grafik
Koneksi putus serentak · Jumlah disconnect (timeout heartbeat), waktu idle sebelum terputus
Yang diperiksa
Kumpulkan alasan disconnect di server dan waktu yang berlalu sejak paket terakhir lewat di koneksi itu sebelum terputus (waktu idle), lalu lihat distribusinya. Untuk pengujian, perpanjang interval paket UDP menjadi 30 detik, 60 detik, dan 120 detik, lalu ukur pada interval berapa respons berhenti
Cocok jika
Hanya koneksi yang diam yang terputus, dan waktu idle-nya terkumpul tepat setelah nilai tertentu seperti 30–120 detik. Hilang jika interval heartbeat dibuat lebih pendek dari itu
Tidak cocok jika
Tetap terputus saat sedang bergerak: mengarah ke koneksi atau rute. Terkumpul pada nilai pendek hanya di operator seluler tertentu: lebih mungkin “IP bersama dari ISP (CGNAT)”