# Buku Putih Lag Game (Game Lag White Paper) > Buku putih ini menjelaskan 228 penyebab lag di game online (patah-patah, teleport, rubber banding, fast forward, input lag, freeze, disconnect, dan lainnya), dari layar Anda sampai database server, dalam 13 lapisan dan 3 topik (desain sinkronisasi, masalah yang hanya dialami sebagian pemain, retransmisi TCP). Contoh kasusnya berpusat pada MMO, tetapi sebagian besar isinya berlaku untuk game online secara umum, apa pun genrenya. Setiap penyebab memuat tiga tahap Mengapa → Akibatnya → Di layar, gejala terkait, kisaran angka, penanggung jawab (Tim Pengembang Game, Tim Infrastruktur, Pihak Eksternal) beserta tugas tiap tim, pola grafik dan cara memastikannya, serta sumber tepercaya (RFC, dokumentasi resmi kernel, OS, cloud, engine, dan DB, serta makalah ilmiah). Setiap penyebab dirujuk dengan ID (misalnya mem-gc) dan punya halaman sendiri (misalnya https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-gc.html). Angka-angkanya adalah nilai tipikal untuk lingkungan layanan pada umumnya; nilai default dan versi didukung oleh sumber di halaman masing-masing penyebab. Untuk mengutip, gunakan alamat halaman penyebab. Lisensi MIT. Naskah aslinya berbahasa Korea dan versi ini adalah terjemahan: https://jungrok5.github.io/mmo-lag-anatomy/ ## Dokumen - [Isi lengkap (Markdown)](https://jungrok5.github.io/mmo-lag-anatomy/id/llms-full.txt): Semua penyebab, gejala, penanggung jawab, istilah, dan sumber dalam satu file - [Versi teks](https://jungrok5.github.io/mmo-lag-anatomy/id/text.html): HTML berisi konten yang sama dalam satu halaman, bisa dibaca tanpa JavaScript - [Buku Putih Lag Game](https://jungrok5.github.io/mmo-lag-anatomy/id/): Versi interaktif dengan gambar dan simulasi yang bisa Anda coba sendiri ## Penyebab per gejala - [Patah-patah](https://jungrok5.github.io/mmo-lag-anatomy/id/s/stutter.html): 60 penyebab. Gerakan tidak mulus: berhenti sebentar, bergerak lagi, dan begitu terus berulang. - [Teleport](https://jungrok5.github.io/mmo-lag-anatomy/id/s/teleport.html): 47 penyebab. Karakter langsung berpindah ke posisi yang jauh tanpa terlihat bergerak ke sana. - [Rubber banding](https://jungrok5.github.io/mmo-lag-anatomy/id/s/rubber.html): 14 penyebab. Karakter Anda sedang maju, lalu tertarik kembali ke posisi yang baru saja dilewati. - [Fast forward](https://jungrok5.github.io/mmo-lag-anatomy/id/s/burst.html): 36 penyebab. Layar yang tadinya diam bergerak lagi, lalu gerakan, serangan, dan damage yang tertunda lewat dengan cepat sekaligus. - [Slow motion](https://jungrok5.github.io/mmo-lag-anatomy/id/s/slowmo.html): 24 penyebab. Semuanya bergerak lambat. Cast skill dan gerakan monster terlihat molor. Tergantung desain servernya, gejala ini juga bisa muncul sebagai patah-patah atau teleport dengan kecepatan yang tetap normal. - [Input lag](https://jungrok5.github.io/mmo-lag-anatomy/id/s/delay.html): 76 penyebab. Ada jeda antara saat tombol ditekan dan saat hasilnya muncul. Gambarnya sendiri bisa tetap mulus. - [Freeze](https://jungrok5.github.io/mmo-lag-anatomy/id/s/freeze.html): 67 penyebab. Semua yang ada di layar berhenti sejenak (0,5 detik hingga beberapa detik), lalu bergerak lagi. - [Aksi hilang / rollback](https://jungrok5.github.io/mmo-lag-anatomy/id/s/dropped.html): 36 penyebab. Aksi yang jelas sudah dilakukan dianggap tidak pernah terjadi, atau hasilnya berbalik lama setelahnya. - [Disconnect](https://jungrok5.github.io/mmo-lag-anatomy/id/s/disconnect.html): 51 penyebab. Koneksi terputus di tengah permainan, lalu Anda kembali ke layar login atau jendela reconnect. - [Tidak bisa masuk / loading tanpa henti](https://jungrok5.github.io/mmo-lag-anatomy/id/s/noconnect.html): 45 penyebab. Tidak bisa masuk ke dalam game, atau tertahan di layar loading atau layar masuk. - [Tidak terlihat / objek hantu](https://jungrok5.github.io/mmo-lag-anatomy/id/s/invisible.html): 20 penyebab. NPC, monster, atau pemain yang seharusnya ada tidak muncul hanya di layar Anda, atau objek yang sudah hilang masih tertinggal hanya di layar Anda. ## L1 Proses game di klien - [Lonjakan frame time](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-hitch.html): Perhitungan satu frame memakan waktu beberapa kali lebih lama dari biasanya sehingga layar berhenti sejenak. - [Garbage collection di klien](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-gc.html): Selama memori bekas pakai (garbage) dikumpulkan kembali, seluruh game berhenti. Cirinya adalah patah-patah dengan interval yang teratur. - [Pemuatan sinkron dan kompilasi shader di main thread](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-sync-load.html): Game berhenti karena harus membaca file dan membuat shader tepat sebelum menggambar area, monster, atau efek yang baru pertama kali muncul. - [Streaming aset tertinggal akibat storage lambat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-asset-stream.html): Pada storage lambat seperti HDD, kecepatan membaca tekstur dan model di open world tidak bisa mengimbangi gerakan pemain, sehingga objek terlambat muncul atau game patah-patah karena menunggu pembacaan selesai. - [Beban rendering kerumunan besar](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-crowd.html): Saat ratusan karakter masuk ke satu layar seperti di siege atau world boss, biaya menggambarnya saja sudah tidak sanggup ditangani. - [Bottleneck pemrosesan paket di main thread](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-net-mainthread.html): Jika paket yang diterima hanya diproses dalam jumlah tertentu per frame, paket yang datang bertumpuk terus terdorong ke frame berikutnya. - [Buffer interpolasi tidak ada atau terlalu pendek](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-no-buffer.html): Jika paket server langsung digambar begitu diterima, jitter (variasi selang waktu kedatangan paket) langsung terlihat di layar. - [Ekstrapolasi berlebihan (dead reckoning)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-extrap.html): Selama paket tidak datang, objek terus ditampilkan bergerak dengan kecepatan terakhir, lalu dikembalikan begitu ketahuan salah. - [Prediksi sisi klien meleset](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-predict.html): Klien Anda menampilkan gerakan lebih dulu, tetapi jika server menghitungnya berbeda, karakter Anda tertarik kembali. - [Catch-up fixed timestep yang lepas kendali](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-fixed-step.html): Setelah sekali berhenti, game menghitung kerja yang tertunda sekaligus, dan perhitungan itu membuatnya tertinggal lagi. - [Kesalahan sinkronisasi jam](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-clock.html): Jika waktu server yang diperkirakan klien salah, titik waktu interpolasi dan pengecekan cooldown tidak cocok dengan server. - [Hilangnya presisi waktu bertipe float](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-float-time.html): Jika waktu game disimpan dalam format bilangan desimal berpresisi rendah (float), makin lama game menyala, makin turun resolusi waktunya (selisih waktu terkecil yang bisa dibedakan), sehingga gerakan dan efek bergetar. - [V-Sync dan antrean render](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-vsync.html): Frame yang sudah digambar GPU ditumpuk beberapa buah di antrean, lalu dikirim ke layar mengikuti siklus refresh monitor; selama itu input terlambat. - [Kebocoran memori di klien](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-leak.html): Makin lama game menyala, makin besar memori yang dipakai sehingga game makin lambat dan akhirnya tertutup paksa. - [Crash di klien](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-crash.html): Game tertutup karena error yang tidak tertangani. Bagi pemain ini terlihat seperti disconnect, tetapi server normal. - [Pemindaian oleh modul keamanan game (anti-cheat)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/cg-anticheat.html): Modul keamanan yang berjalan bersama game untuk mencegah cheat melakukan pemeriksaan secara berkala. Jika pemeriksaannya berat atau heartbeat (sinyal berkala yang menandakan klien masih hidup) ke server keamanan terlambat, game menjadi patah-patah atau disconnect. ## L2 OS dan perangkat klien - [Pemakaian CPU oleh proses di latar belakang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-background.html): Saat pemindaian antivirus, Windows Update, program streaming, atau video di browser memakai core CPU, thread game tidak mendapat jatah CPU dan harus menunggu. - [Mode hemat daya dan thermal throttling](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-power.html): Mode baterai laptop, mode hemat daya ponsel, dan panas perangkat menurunkan kecepatan CPU dan GPU. Ciri penurunan karena panas: awalnya normal, lalu baru melambat setelah cukup lama. - [Resolusi timer](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-timer.html): Timer default Windows bekerja dalam satuan 15,6 ms, sehingga “tidur 1 ms saja” sebenarnya memanjang sampai siklus timer berikutnya, paling lama 15,6 ms. - [Aplikasi mobile masuk ke latar belakang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-mobile-bg.html): Jika Anda keluar sebentar dari game untuk melihat notifikasi, OS menangguhkan aplikasi (suspend) beberapa detik kemudian, dan selama itu server memutus koneksi Anda. - [Perpindahan Wi-Fi ↔ LTE/5G](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-netswitch.html): Saat Anda keluar rumah, Wi-Fi terputus dan beralih ke LTE/5G sehingga alamat IP Anda berubah dan koneksi yang ada menjadi tidak berlaku. - [Pemeriksaan paket oleh program keamanan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-security.html): Jika antivirus atau firewall memeriksa semua paket, latensi bertambah, dan jika berlebihan, game salah dikira serangan lalu diblokir. - [Buffer terima meluap](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-rcvbuf.html): Jika game terlalu sibuk sehingga terlambat mengambil paket dari socket (antarmuka kirim-terima jaringan yang disediakan OS), buffer OS meluap. - [Kekurangan memori dan swap di klien](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-swap.html): Jika puluhan tab browser dan game menyala bersamaan, OS memindahkan sebagian memori game ke disk. - [Kekurangan memori grafis (VRAM)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-vram.html): Jika memori yang dibutuhkan opsi grafis lebih besar dari memori kartu grafis, OS memindahkan tekstur ke memori PC lalu mengambilnya kembali sehingga game patah-patah. - [Pemindaian Wi-Fi di latar belakang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-wifi-scan.html): Selama OS berpindah-pindah channel secara berkala untuk mencari Wi-Fi di sekitar, komunikasi berhenti sejenak. - [Mode hemat daya NIC dan masalah driver](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-driver.html): Jika kartu LAN atau chip Wi-Fi masuk ke mode hemat daya di antara paket, butuh waktu untuk aktif kembali. - [Pemakaian bandwidth oleh aplikasi lain di perangkat yang sama](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-other-apps.html): Jika sinkronisasi cloud, unduhan besar, atau patch game berjalan di PC yang sama, paket game harus menunggu di antrean. - [Pemrosesan dibatasi saat jendela diminimalkan atau tidak aktif](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-unfocused.html): Saat Anda melihat jendela lain atau meminimalkan game, game dan Windows menjalankan game lebih lambat untuk menghemat daya. Saat kembali, paket yang tertunda datang sekaligus, atau koneksi sudah terputus. - [Interferensi program overlay](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-overlay.html): Program messenger, launcher, perekam, dan penampil FPS menyusup ke proses rendering game (hooking) untuk menggambar UI mereka di atas layar game. Pekerjaan setiap frame bertambah, dan sesekali program itu bentrok dengan game sehingga game tersendat sesaat atau tertutup paksa. - [Latensi layar, perangkat input, dan frame generation](https://jungrok5.github.io/mmo-lag-anatomy/id/c/co-display-input.html): Jika ping normal tetapi kontrol terasa berat, pemrosesan gambar di TV, controller nirkabel, atau fitur frame generation mungkin menambah latensi antara input dan layar. ## L3 Jaringan rumah - [Interferensi Wi-Fi dan sinyal lemah](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-wifi.html): Jika sinyal lemah atau ada interferensi, paket dikirim ulang beberapa kali di jalur nirkabel sehingga waktu kedatangannya tidak beraturan. - [Channel Wi-Fi padat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-channel.html): Di tempat dengan puluhan router seperti apartemen, router harus berbagi channel yang sama sehingga harus menunggu kesempatan mengirim. - [Bufferbloat (antrean router)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-bufferbloat.html): Saat anggota keluarga mengunggah video atau mengunduh file besar, paket senilai ratusan ms menumpuk di antrean router, dan paket game pun menunggu di belakangnya. - [Mapping NAT kedaluwarsa](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-nat.html): Router menghapus koneksi idle yang lama tidak dilewati paket dari tabel NAT. Ini penyebab umum disconnect tepat saat pemain mulai bergerak setelah lama diam. - [Router kurang bertenaga atau terlalu panas](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-router.html): Jika puluhan perangkat dan ribuan koneksi membebani router murah, router itu sendiri tidak sanggup memprosesnya. - [Handover antar-BTS (saat bergerak)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-handover.html): Saat bepergian dengan bus atau kereta bawah tanah, komunikasi terputus selama BTS berganti. - [Jeda transisi state RRC (hemat daya radio seluler)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-rrc.html): Jika lama tidak ada komunikasi, ponsel menurunkan koneksi radio ke status daya rendah, lalu harus menaikkannya lagi saat paket berikutnya sehingga terlambat. - [Sinyal seluler lemah dan area blank spot](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-weak-cell.html): Di lift, ruang bawah tanah, atau bagian dalam gedung, retransmisi bertambah, kecepatan turun, dan akhirnya terjadi disconnect. - [Perpindahan 5G↔LTE yang sering (di tepi jangkauan 5G)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-5g-flip.html): Di dalam gedung dengan sinyal 5G lemah atau di tepi jangkauan 5G, ponsel sering berpindah antara 5G dan LTE, dan setiap kali berpindah ping melonjak atau komunikasi terputus sejenak. - [Pembatasan di Wi-Fi publik dan jaringan kantor](https://jungrok5.github.io/mmo-lag-anatomy/id/c/hn-captive.html): Halaman login Wi-Fi kafe atau firewall kantor memblokir koneksi game. ## L4 Jalur internet - [Latensi propagasi (jarak fisik)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-distance.html): Di kabel serat optik, cahaya pun hanya menempuh sekitar 200.000 km per detik. Server yang jauh tetap lambat, sebagus apa pun servernya. - [Internet satelit (orbit rendah dan geostasioner)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-satellite.html): Pada internet satelit, sinyal harus bolak-balik ke luar angkasa. Dengan satelit geostasioner, pulang-pergi saja sudah lebih dari 0,5 detik. Satelit orbit rendah seperti Starlink biasanya cepat, tetapi saat rute dialokasikan ulang, latensinya berfluktuasi dan koneksi kadang putus sesaat. - [Routing memutar](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-routing.html): Karena kontrak interkoneksi antar-ISP, rute ke server yang dekat pun bisa memutar lewat tempat yang jauh. - [Kongesti di jalur peering saat jam sibuk](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-peak.html): Sekitar pukul 21.00–23.00, trafik video melonjak sehingga jalur interkoneksi antar-ISP (peering) mudah padat. - [Gangguan kabel bawah laut dan jalur internasional](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-cable.html): Jika kabel bawah laut putus, trafik harus memutar lewat rute yang jauh selama beberapa minggu (jika lama, beberapa bulan) sampai kabel diperbaiki, dan jalur yang tersisa menjadi padat. - [Perubahan rute dan konvergensi BGP](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-bgp.html): Saat informasi rute internet berubah, paket hilang selama beberapa detik hingga puluhan detik (dalam kasus yang jarang, sampai beberapa menit) sampai rute kembali konvergen. - [Satu jalur ECMP bermasalah](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-ecmp.html): ISP dan data center menyiapkan beberapa jalur ke tujuan yang sama dan menetapkan satu jalur untuk setiap koneksi. Jika hanya satu jalur yang rusak, hanya pemain yang mendapat jalur itu yang terus mengalami lag. - [Pembatasan kecepatan dan manajemen trafik oleh ISP](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-shaping.html): Jika kuota data terlampaui atau layanan internet mengelola trafik tertentu, paket ditunda atau dibuang. - [Pembatasan UDP dan inspeksi paket per negara atau ISP](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-udp-block.html): Sebagian jaringan memblokir alamat dan port UDP tertentu atau membatasi kecepatan UDP, dan perangkat inspeksi paket menyaring protokol yang tidak dikenalinya. Game yang berkomunikasi lewat UDP tidak bisa tersambung atau sering terputus di jaringan itu. - [Kualitas koneksi buruk](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-line.html): Konektor yang kontaknya buruk, kabel yang sudah tua, atau modem yang bermasalah menimbulkan packet loss terus-menerus dan koneksi yang putus secara berkala. - [Gangguan dan latensi DNS](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-dns.html): Jika DNS, yang menerjemahkan nama server menjadi alamat, lambat atau gagal, server login dan server patch tidak bisa ditemukan. - [Jalur bersama penuh akibat DDoS](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-ddos-path.html): Serangan besar yang ditujukan ke perusahaan game atau ke pihak lain di jaringan yang sama memenuhi jalur bersama. - [IP bersama dari ISP (CGNAT)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-cgnat.html): Jaringan seluler dan sebagian ISP membuat banyak pelanggan berbagi satu IP, dan mapping koneksi idle dihapus dalam waktu singkat. - [Rute lewat VPN atau game booster](https://jungrok5.github.io/mmo-lag-anatomy/id/c/isp-vpn.html): Jika VPN atau game booster diaktifkan, paket melewati server relay milik perusahaan itu. Jika server relay jauh atau padat, koneksi malah menjadi lebih lambat. ## L5 Perangkat jaringan data center - [Tabel sesi firewall penuh](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-firewall.html): Firewall mencatat dan melacak setiap koneksi yang diloloskannya di tabel sesi. Jika tabelnya penuh, koneksi baru tidak bisa diterima. - [Rute lewat proteksi DDoS dan false positive](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-ddos.html): Saat trafik dialihkan ke scrubbing center untuk menangkal serangan, rutenya menjadi lebih panjang, dan pemain yang normal kadang salah dikira serangan lalu diblokir. - [Idle timeout load balancer](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-lb-idle.html): Load balancer menghapus koneksi idle setelah waktu tertentu. Game masih menganggap koneksinya tersambung, lalu pemain disconnect. - [Connection tracking di security group cloud kedaluwarsa](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-cloud-conntrack.html): Firewall yang terpasang di server cloud (security group) juga melacak koneksi, dan entri pelacakan untuk koneksi idle kedaluwarsa setelah waktu tertentu. Server yang tersambung langsung tanpa load balancer pun bisa membuat pemain yang lama diam terputus. - [Batas koneksi dan port NAT gateway cloud](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-nat-gateway.html): Koneksi dari server di subnet privat ke luar (autentikasi platform, pembayaran, API eksternal) dikirim keluar oleh NAT gateway setelah alamat dan portnya diganti. Jika koneksi bersamaan ke tujuan yang sama melebihi batas port gateway, koneksi baru gagal. - [Distribusi load balancer timpang dan health check keliru](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-lb-imbalance.html): Koneksi menumpuk di satu server saja, atau pemain terus dikirim ke server yang sudah mati. - [Microburst di switch](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-microburst.html): Jika beberapa server sekaligus mengirim paket ke ribuan pemain pada saat yang sama, buffer kecil di port switch tempat trafik itu bertemu meluap dalam waktu kurang dari 1 ms. - [Jalur data center penuh](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-uplink.html): Jika deploy patch, pengiriman log, dan backup memakai jalur yang sama dengan game, jalurnya penuh. - [Failover perangkat jaringan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-failover.html): Saat satu router atau firewall rusak dan dialihkan ke perangkat cadangan (failover), semua pemain mengalami freeze selama beberapa detik. - [Kabel rusak dan error port](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-bad-cable.html): Jika modul optik atau kabel rusak, sebagian paket yang lewat jalur itu rusak dengan persentase tertentu. - [MTU tidak cocok (hanya paket besar yang hilang)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dc-mtu.html): Jika MTU (ukuran yang bisa dikirim sekaligus) di segmen tengah mengecil tetapi notifikasi ukuran terlampaui diblokir, hanya paket besar yang terus hilang. ## L6 Kartu jaringan server - [Interrupt NIC terpusat di satu core](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-irq.html): Jika NIC hanya mengirim interrupt kedatangan paket ke satu core CPU, core itu menjadi bottleneck. - [Ring buffer terlalu kecil](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-ring.html): Jika ring buffer, tempat NIC menampung paket sementara, terlalu kecil, buffer meluap saat paket datang serentak dan paket dibuang. - [Interrupt coalescing berlebihan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-coalesce.html): Jika NIC mengumpulkan paket lalu memberi tahu CPU sekaligus untuk mengurangi beban CPU, paket terlambat selama waktu pengumpulan itu. - [Batas PPS cloud terlampaui](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-cloud-pps.html): Server cloud memiliki batas jumlah paket per detik dan bandwidth per tipe instance, dan jika terlampaui, paket dibuang diam-diam. - [Bandwidth NIC penuh](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-saturate.html): Jika kartu 1 Gbps atau 10 Gbps dipakai sampai batasnya, antrean kirim memanjang dan akhirnya paket dibuang. - [Overhead virtualisasi dan noisy neighbor](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-noisy.html): Jika virtual machine lain di server fisik yang sama banyak memakai jaringan atau CPU, pemrosesan di server Anda tertunda secara tidak beraturan. - [Maintenance host cloud dan live migration](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-host-maintenance.html): Saat penyedia cloud melakukan maintenance pada server fisik (host), virtual machine dipindahkan ke host lain (live migration) atau dihentikan sementara. Selama itu seluruh server terhenti, dan jika jedanya lama, koneksi terputus. - [Masalah driver dan firmware NIC](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-reset.html): Selama kartu berhenti dan dimulai ulang karena bug driver atau fitur yang tidak berfungsi dengan benar, semua pengiriman dan penerimaan terputus. - [Jeda tunggu penggabungan GRO/LRO](https://jungrok5.github.io/mmo-lag-anatomy/id/c/nic-offload.html): Fitur ini menggabungkan beberapa paket menjadi satu untuk mengurangi beban CPU. Tergantung konfigurasinya, paket game yang kecil kadang menunggu sebentar paket berikutnya untuk digabung bersama. ## L7 OS server (kernel) - [Antrean koneksi (backlog) meluap](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-backlog.html): Jika puluhan ribu pemain login bersamaan tepat setelah maintenance, antrean koneksi (backlog) di kernel meluap dan upaya koneksi dibuang. - [Batas file descriptor](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-fd.html): Setiap koneksi membutuhkan satu file descriptor (fd, nomor yang diberikan OS untuk file dan socket yang terbuka), dan jumlah fd yang bisa dibuka oleh satu proses dibatasi. - [Buffer socket kernel terlalu kecil](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-sockbuf.html): Jika buffer kirim dan buffer terima kecil, saat burst trafik datang paket yang diterima lewat UDP dibuang, dan pengiriman TCP tertahan karena buffer tidak punya ruang. - [Thread berlebihan dan context switching](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-context.html): Jika jumlah thread jauh melebihi jumlah core, OS menghabiskan CPU hanya untuk menjalankan thread-thread itu secara bergiliran. - [CPU steal (virtual machine)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-steal.html): Server game berhenti selama server fisik (hypervisor) sementara memberikan waktu CPU milik virtual machine ini ke virtual machine lain (CPU steal). - [CPU throttling di container (kuota CFS)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-cpu-quota.html): Jika container diberi batas CPU, begitu kuota dalam satu periode (biasanya 100 ms) habis, container dipaksa berhenti selama sisa periode itu (throttling). - [Lonjakan latensi akibat manajemen daya server (C-state, pengaturan frekuensi)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-cstate.html): Core CPU yang sedang menganggur masuk ke mode hemat daya yang dalam (C-state) dan menurunkan frekuensinya untuk menghemat listrik. Saat paket atau timer datang, core butuh waktu untuk bangun dan menaikkan frekuensi, sehingga pemrosesan paket kecil mendapat tambahan latensi. - [OOM killer](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-oom.html): Saat memori habis, Linux memilih proses yang memakai memori paling banyak lalu mematikannya secara paksa. Biasanya proses itu adalah server game. - [Jeda akibat reclaim dan compaction memori](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-reclaim.html): Proses berhenti selama OS memadatkan memori (compaction) untuk membuat halaman besar (huge page) atau mengambil kembali memori (reclaim) agar tersedia ruang kosong. - [Lompatan jam sistem (NTP step)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-timejump.html): Jika jam server disesuaikan beberapa detik maju atau mundur sekaligus, timer yang bergantung pada jam sistem terpicu bersamaan atau berhenti. - [Tugas terjadwal](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-cron.html): Kompresi log, backup, dan pemindaian keamanan yang berjalan pada jam yang sama setiap hari menyita CPU dan disk. - [Perubahan performa setelah update OS, kernel, driver, atau firmware](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-os-update.html): Kode game tidak berubah, tetapi server menjadi lambat sejak OS, kernel, driver, atau firmware server diperbarui. Update bisa mengubah nilai default, scheduler, mitigasi kerentanan CPU (mitigations), dan perilaku driver. - [Tabel conntrack server penuh](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-conntrack.html): Jika tabel connection tracking (conntrack), tempat firewall Linux mencatat semua koneksi, mencapai batasnya, paket baru dibuang. - [Port ephemeral habis pada koneksi antarserver](https://jungrok5.github.io/mmo-lag-anatomy/id/c/so-ports.html): Jika server game sering membuka dan menutup koneksi singkat ke DB atau server lain, koneksi yang sudah ditutup tetap menahan port untuk sementara sehingga koneksi baru tidak bisa dibuka. ## L8 Socket dan protokol - [HOL blocking pada TCP](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-hol.html): Untuk menjaga urutan, TCP tidak menyerahkan paket yang datang belakangan ke game sampai satu paket yang hilang diterima ulang. - [RTO TCP dan exponential backoff](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-rto.html): Setiap kali retransmisi gagal lagi, waktu tunggu berlipat dua, sehingga koneksi yang putus sebentar berujung pada jeda yang lama. - [Algoritma Nagle + delayed ACK](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-nagle.html): Algoritma Nagle yang mengumpulkan paket kecil sebelum dikirim dan delayed ACK yang menunda pengiriman ACK saling mengunci, sehingga setiap kali pesan ditulis terpisah-pisah terjadi keterlambatan 40–200 ms. - [Pengiriman blocking akibat klien lambat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-block-send.html): Jika buffer kirim untuk satu pemain dengan koneksi lambat sudah penuh, lalu server mengirim dengan cara blocking (pemanggilan yang tidak kembali sampai buffer punya ruang), thread server ikut menunggu pemain itu. - [Kebijakan penanganan klien lambat (slow consumer)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-slow-client.html): Untuk klien yang data kirimannya terus menumpuk, server membuang update lama atau memutus koneksinya. - [Nilai default keepalive 2 jam](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-keepalive.html): Jika pihak lawan menghilang tanpa sinyal penutupan, TCP baru mendeteksinya lama kemudian. keepalive (fitur TCP untuk memeriksa apakah koneksi idle masih hidup) nonaktif secara default, dan walaupun diaktifkan, pemeriksaan baru dimulai setelah koneksi idle selama 2 jam. - [Fragmentasi IP pada paket UDP](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-fragment.html): Paket UDP yang melebihi MTU (ukuran maksimum yang bisa dikirim sekaligus) difragmentasi di lapisan IP, dan jika satu fragmen saja hilang, seluruh paket dibuang. - [Pengaturan retransmisi reliable UDP](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-reliable-udp.html): Jika aturan retransmisi yang dibuat sendiri di atas UDP terlalu konservatif, pemulihan terlambat; jika terlalu agresif, jalur makin padat. - [Slow start setelah idle](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-slowstart.html): Jika koneksi idle cukup lama, TCP kembali mengecilkan congestion window (jumlah data yang bisa dikirim sekaligus), sehingga data besar yang tiba-tiba dikirim harus dipecah menjadi beberapa kali kirim. - [Laju kirim anjlok akibat congestion control](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-congestion.html): TCP menganggap packet loss sebagai tanda kongesti dan menurunkan kecepatan kirim 30–50%. TCP bereaksi sama terhadap packet loss di Wi-Fi. - [Data terakhir hilang akibat penutupan paksa dengan RST](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-linger.html): Jika server memutus koneksi secara mendadak, pesan pemberitahuan atau sinyal penyimpanan selesai yang dikirim terakhir ikut hilang. - [Arsitektur I/O blocking](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-blocking-io.html): Pada arsitektur yang membuat thread tidak bisa mengerjakan hal lain selama menunggu satu socket, seluruh server makin lambat seiring bertambahnya pemain. - [Distribusi SO_REUSEPORT tidak merata](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-reuseport.html): Jika beberapa proses berbagi satu port, kernel menetapkan proses yang menangani setiap koneksi berdasarkan hash alamat dan tidak mengubahnya. Jika satu proses itu berhenti, hanya pemain yang dialokasikan ke proses tersebut yang menunggu. - [Error WSAECONNRESET pada socket UDP Windows](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sk-udp-connreset.html): Jika server Windows mengirim UDP ke klien yang sudah pergi, notifikasi “port tidak ada” (ICMP) dikirim balik. Notifikasi itu membuat pemanggilan terima berikutnya berakhir dengan error. Jika kode server memperlakukan error ini sebagai kerusakan socket itu sendiri, semua pemain yang memakai socket tersebut ikut terdampak. ## L9 Proses game di server - [Tick melewati budget (tick overrun)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-tick-overrun.html): Jika pekerjaan dalam satu tick melewati tick budget (batas waktu per tick), interval tick server memanjang, dan seluruh area itu berjalan lambat atau patah-patah. - [Lonjakan perhitungan jarak pandang (AOI, N²)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-aoi.html): Jika siapa bisa melihat siapa dihitung dengan membandingkan semua pemain satu sama lain, saat jumlah pemain naik 10 kali, perhitungannya naik 100 kali. - [Lonjakan broadcast](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-broadcast.html): Jika gerakan satu pemain dikirim ke semua yang melihatnya, jumlah update yang harus dikirim menjadi kuadrat dari jumlah pemain yang berkumpul. - [Kelebihan beban di area single-thread (hotspot)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-hotzone.html): Pada arsitektur yang menugaskan satu thread untuk setiap area, jika pemain berkumpul di satu tempat, hanya satu core itu yang mencapai 100%. - [Perebutan lock](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-lock.html): Jika beberapa thread menunggu satu lock untuk menulis data yang sama, walaupun thread ditambah, hanya satu yang berjalan pada satu waktu. - [Deadlock](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-deadlock.html): Jika dua thread saling menunggu lock yang dipegang thread lainnya, keduanya berhenti selamanya. - [Pemanggilan sinkron di thread game](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-sync-call.html): Jika di tengah tick server menunggu respons DB atau penulisan file, seluruh jalannya game di server berhenti selama waktu itu. - [Penumpukan antrean pesan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-queue.html): Jika permintaan masuk lebih cepat daripada kecepatan pemrosesan dan menumpuk di antrean, permintaan di belakang baru diproses beberapa detik kemudian atau dibuang. - [Timer terpicu serentak](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-timer-burst.html): Jika respawn semua monster, berakhirnya semua buff, dan hadiah tepat di pergantian jam menumpuk di tick yang sama, tick itu saja menjadi puluhan kali lebih berat. - [Lonjakan pathfinding](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-pathfinding.html): Jika ratusan monster mengejar pemain secara bersamaan sambil menghitung rute, pemakaian CPU menjadi sangat besar. - [Biaya serialisasi dan kompresi](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-serialize.html): Mengubah data yang akan dikirim menjadi byte dan mengompresinya juga memakan CPU, dan biaya ini melonjak saat pemain banyak. - [Crash di server](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-crash.html): Jika proses server mati karena error yang tidak tertangani, semua pemain di server itu disconnect bersamaan. - [Thread pool habis](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-threadpool.html): Jika semua worker thread tertahan oleh pekerjaan lambat, permintaan baru hanya bisa menunggu tanpa kepastian. - [Infinite loop dan logika lepas kendali](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-infinite-loop.html): Jika satu tick tidak pernah selesai karena bug, server berhenti, lalu watchdog memulai ulang server secara paksa. - [Pertempuran terpusat pada satu target (world boss)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-hot-entity.html): Jika ratusan pemain menyerang satu boss secara bersamaan, perhitungan untuk boss itu terpusat di satu tempat, dan informasi setiap serangan dikirim ke semua yang melihatnya. - [Lonjakan spawn saat masuk area padat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-spawn-burst.html): Saat pemain memakai teleportasi ke kota yang ramai, server harus mengirim tampilan, perlengkapan, dan status ratusan pemain yang baru terlihat sekaligus. - [Penumpukan objek (item dan summon yang tidak dibersihkan)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-entity-buildup.html): Jika item di tanah, summon, dan timer yang sudah selesai tidak dibersihkan dan terus menumpuk, makin lama server menyala, makin banyak pekerjaan di setiap tick. - [Pola trafik berubah akibat patch](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sp-patch-traffic.html): Jika konten, efek, dan data sinkronisasi baru memperbesar ukuran dan frekuensi paket, server yang tadinya lancar mulai terbentur batas MTU, bandwidth, dan jumlah paket setelah patch. ## L10 Memori - [Jeda GC stop-the-world di server](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-gc.html): Selama server Java atau C# menghentikan semua thread untuk mengumpulkan garbage (stop-the-world), seluruh server berhenti. - [Jeda GC di engine skrip](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-script-gc.html): Walaupun servernya ditulis dengan C++, jika quest, AI, dan skill dijalankan dengan skrip seperti Lua, zona itu berhenti selama GC engine skrip berjalan. - [Lonjakan alokasi](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-alloc.html): Jika objek sementara dibuat dalam jumlah besar selama event, GC berjalan jauh lebih sering daripada biasanya. - [Kebocoran memori](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-leak.html): Memori yang tidak dibebaskan menumpuk sedikit demi sedikit, lalu beberapa hari kemudian berujung pada GC yang berjalan tanpa henti, swap, atau proses yang dihentikan paksa. - [GC thrashing (heap hampir penuh)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-gc-thrash.html): Jika data hidup mendekati batas heap, GC hampir tidak bisa membebaskan memori setiap kali berjalan, sehingga GC berulang tanpa henti. - [Swap](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-swap.html): Jika memori kurang dan OS memindahkan sebagiannya ke disk, setiap kali memori itu dipakai, proses harus menunggu disk yang lebih dari 1.000 kali lebih lambat. - [Cache miss](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-cache-miss.html): Jika data tersebar di berbagai tempat di memori, CPU harus menunggu setiap kali mengambilnya dari RAM yang lambat. - [Fragmentasi memori](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-fragment.html): Jika alokasi dan pembebasan yang berulang memecah ruang kosong menjadi potongan kecil, proses menahan memori jauh lebih banyak daripada yang benar-benar dipakai. - [Akses memori NUMA remote](https://jungrok5.github.io/mmo-lag-anatomy/id/c/mem-numa.html): Pada server dengan dua CPU, akses memori melambat jika thread memakai memori yang terpasang pada CPU seberang. ## L11 Disk - [Penulisan log sinkron](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-sync-log.html): Jika thread game menunggu disk selesai menulis untuk setiap baris log, jalannya game ikut berhenti saat disk sibuk. - [Lonjakan fsync](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-fsync.html): Permintaan agar data ditulis ke disk secara “pasti” memakan 0,1 ms hingga puluhan ms per kali tergantung disknya, dan jika permintaan menumpuk, antreannya memanjang. - [Burst credit disk cloud habis](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-burst.html): Sebagian disk cloud dan spesifikasi server kecil punya burst credit yang memungkinkan kinerja di atas baseline untuk sementara. Jika masa sibuk berlangsung lama dan kreditnya habis, kecepatannya tiba-tiba turun. - [Batas IOPS dan antrean jenuh](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-iops.html): Jika permintaan melebihi jumlah yang bisa diproses disk per detik, antrean memanjang dan latensi melonjak tajam. - [Disk penuh](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-full.html): Jika log dan dump menumpuk hingga disk penuh, penulisan gagal, dan tanpa penanganan, server crash. - [Tugas backup, kompresi, dan pemindaian](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-backup.html): Jika backup dini hari, kompresi log, dan pemindaian keamanan memonopoli disk, pembacaan dan penulisan server game tertunda. - [Lazy loading di server](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-lazy-load.html): Jika server membaca data dungeon atau map dari disk saat pertama kali diminta, semua pemain berhenti selama tick itu. - [Penulisan core dump](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-coredump.html): Saat server crash, memori sebesar beberapa GB ditulis ke disk, sehingga restart bisa tertunda beberapa menit. - [Latensi seek HDD](https://jungrok5.github.io/mmo-lag-anatomy/id/c/dk-hdd.html): Pada HDD, head harus bergerak di atas piringan (platter) untuk mencari posisi data (seek), sehingga membaca atau menulis data yang tersebar memakan hampir 10 ms per kali. ## L12 Database - [Query tanpa indeks](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-no-index.html): Tanpa indeks, DB harus membaca seluruh tabel untuk menemukan baris yang memenuhi kondisi (full table scan). - [Perebutan lock pada hot row](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-hot-row.html): Jika semua orang ingin mengubah baris yang sama (gudang guild, item populer di balai lelang, counter untuk seluruh server), lock hanya didapat satu per satu. - [Deadlock DB](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-deadlock.html): Jika dua transaksi (sekumpulan operasi DB yang diproses sebagai satu kesatuan) saling menunggu baris yang dikunci pihak lain, DB membatalkan salah satunya secara paksa. - [Connection pool habis](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-pool.html): Jumlah koneksi yang dibuka ke DB terbatas, jadi jika query lambat menahan koneksi, request lainnya harus menunggu. - [Replication lag](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-replica-lag.html): Penulisan dilakukan ke DB primer dan pembacaan dari replika. Jika replika tertinggal, data yang baru ditulis belum terlihat. - [Checkpoint dan log flush](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-checkpoint.html): Query melambat saat DB secara berkala menulis sekaligus perubahan yang tersimpan di memori ke disk. - [Cold cache (tepat setelah restart)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-cold-cache.html): Setelah DB dimulai ulang, cache di memori kosong, sehingga untuk sementara semua pembacaan data diambil dari disk. - [Lonjakan login dan N+1 query](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-login-storm.html): Jika memuat satu karakter butuh puluhan query terpisah, login bersamaan puluhan ribu pemain berubah menjadi jutaan query. - [Batch job berskala besar](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-batch.html): Agregasi ranking, pengiriman mail massal, dan pembersihan data lama yang dijalankan saat layanan berjalan menahan lock dan menyita kapasitas disk. - [Failover DB](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-failover.html): Selama DB primer mati dan layanan dialihkan ke DB cadangan, penulisan tidak bisa dilakukan, dan data terakhir yang belum sempat direplikasi bisa hilang. - [Progres hilang karena interval penyimpanan yang panjang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-save-interval.html): Jika data hanya disimpan beberapa menit sekali untuk mengurangi beban, progres akan hilang saat server mati di antara dua penyimpanan. - [Cache stampede](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-cache-stampede.html): Jika cache data populer kedaluwarsa bersamaan, ribuan request menyerbu DB sekaligus. - [Transaksi yang terbuka lama](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-long-tx.html): Transaksi yang terbuka lama terus memegang lock, dan DB tidak bisa membersihkan data versi lama (purge), sehingga seluruh DB makin lama makin lambat. - [Perintah lambat di Redis](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-redis-block.html): Redis memproses perintah satu per satu, sehingga satu perintah lambat menahan semua request di belakangnya. - [Query melambat karena query plan berubah](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-plan-flip.html): Walaupun kodenya tidak berubah, jika DB mengganti cara memproses query yang sama (query plan), query yang kemarin 2 ms bisa menjadi ratusan ms hari ini. - [Lock akibat perubahan skema (DDL) saat layanan berjalan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/db-ddl-lock.html): Jika kolom atau indeks ditambahkan ke tabel saat layanan berjalan, satu lock yang dibutuhkan sesaat bisa membuat semua request yang memakai tabel itu menunggu. ## L13 Arsitektur dan operasional server - [Rute lewat gateway atau proxy](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-gateway.html): Jika ada server perantara di antara klien dan server game, setiap kali paket melewatinya ada tambahan waktu pemrosesan, dan server itu menjadi single point of failure. - [Pindah zona (handoff antarserver)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-zone-transfer.html): Saat masuk ke area atau dungeon lain, keterlambatan dan kegagalan bisa terjadi dalam proses memindahkan data karakter ke server lain. - [Kegagalan berantai](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-cascade.html): Jika satu layanan melambat, server yang memanggilnya ikut tertahan menunggu respons, dan fitur yang tidak berhubungan pun ikut berhenti. - [Gangguan server pendukung](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-subservice.html): Jika server yang berjalan terpisah dari server game, seperti server chat, party, atau balai lelang, mengalami gangguan, hanya fitur itu yang tidak berfungsi. - [Deploy dan restart](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-deploy.html): Jika koneksi tidak dipindahkan saat server dimulai ulang untuk update, pemain di server itu disconnect, lalu penyimpanan data menjelang shutdown dan reconnect membanjir sekaligus. - [Keterlambatan autoscaling](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-autoscale.html): Saat pemain membanjir, server ditambah secara otomatis, tetapi persiapannya butuh beberapa menit, dan selama itu server yang ada kelebihan beban. - [Beban berlebih akibat log dan monitoring](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-monitoring.html): Saat terjadi gangguan, log melonjak, dan server yang mengirim log secara sinkron menjadi makin lambat karena log itu sendiri. - [Selisih jam antarserver](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-clock-skew.html): Jika jam di setiap server sedikit berbeda, keputusan cooldown, buff, dan waktu mulai event tidak sama antarserver. - [Terlalu banyak macro dan bot](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-bots.html): Bot mengirim permintaan jauh lebih sering daripada manusia sehingga menggerogoti throughput server. - [Ketergantungan pada layanan eksternal](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-external.html): Jika layanan eksternal seperti login platform, pembayaran, atau verifikasi identitas lambat atau berhenti, proses tertahan di tahap itu. - [Kesalahan matchmaking dan penempatan region](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-region-match.html): Jika pemain ditempatkan di server region yang jauh padahal ada region yang dekat, ping pemain itu selalu tinggi walaupun koneksinya baik-baik saja. - [Sertifikat TLS kedaluwarsa atau salah konfigurasi](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-cert.html): Jika sertifikat server login, API, atau patch kedaluwarsa atau sertifikat perantaranya tidak disertakan, koneksi TLS dari klien yang baru tersambung gagal sejak saat itu. - [Batas antrean login dan masa tenggang reconnect yang terlalu singkat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/in-login-queue.html): Jika koneksi membanjir tepat setelah rilis atau maintenance, antrean login mencapai batas dan menolak antrean baru, sementara pemain yang sedang menunggu kehilangan tempatnya saat koneksinya terputus sebentar dan kembali ke urutan paling belakang. ## Desain sinkronisasi - [Feedback baru tampil setelah server merespons (model request-response)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-request-response.html): Saat tombol ditekan, tidak ada animasi maupun suara sampai jawaban server datang. Ping langsung menjadi kecepatan respons. - [Protokol dengan banyak round trip berurutan (chatty)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-chatty.html): Jika satu aksi butuh beberapa kali pulang-pergi ke server secara berurutan, ping dikalikan sebanyak jumlah itu. - [Tidak ada input buffering untuk skill](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-no-queue.html): Jika skill berikutnya baru bisa ditekan setelah ada konfirmasi bahwa skill sebelumnya selesai di server, waktu pulang-pergi menyela setiap kombo. - [Timing window pendek yang termakan ping](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-short-window.html): Jika waktu untuk bereaksi pendek, seperti pada dodge, parry, atau guard, ping memakan waktu itu sehingga muncul serangan yang mustahil dihindari. - [Hit registration tanpa lag compensation](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-no-lagcomp.html): Jika server menilai serangan kena hanya dengan “posisi sekarang di server”, hasilnya tidak cocok dengan layar yang Anda lihat. - [Lag compensation berlebihan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-lagcomp-overreach.html): Jika server memutar mundur waktu terlalu jauh demi penyerang, pihak yang diserang tetap kena walaupun sudah bersembunyi. - [Otoritas klien](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-client-auth.html): Jika setiap klien memutuskan hasilnya sendiri, layar Anda terasa responsif, tetapi hasilnya tidak cocok dengan layar pemain lain dan rentan terhadap cheat. - [Lockstep menunggu pemain paling lambat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-lockstep.html): Dalam arsitektur tempat semua pemain menghitung giliran yang sama bersama-sama, jika input satu orang terlambat, semua orang menunggu. - [Prediksi rollback netcode meleset](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-rollback.html): Input lawan diprediksi dan ditampilkan lebih dulu; jika prediksinya salah, game diputar mundur lalu dihitung ulang. Makin tinggi ping, makin lebar rentang rewind. - [Event diputar begitu tiba tanpa timestamp](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-no-timestamp.html): Jika event dari server diputar begitu diterima tanpa diberi waktu kejadian, jitter jaringan langsung membuat timing animasi tidak beraturan. - [Menunggu tick dua kali](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-double-tick.html): Jika permintaan dikumpulkan sampai tick berikutnya untuk diproses, lalu hasilnya juga dikirim pada tick sesudahnya, interval tick bertambah dua kali. - [Validasi server yang terlalu ketat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-strict-check.html): Jika server memeriksa kecepatan gerak, cooldown, dan jangkauan terlalu ketat, input normal yang datang bertumpuk akibat jitter pun ikut ditolak. - [Arsitektur host (pembuat room)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-host.html): Jika PC salah satu pemain berperan sebagai server, koneksi dan performa PC orang itu menentukan rasa bermain semua pemain. - [Server menolak setelah feedback sisi klien](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-optimistic-reject.html): Jika server kemudian tidak mengakui hit atau skill yang sudah lebih dulu ditampilkan di layar Anda, hasil yang jelas-jelas Anda lihat menjadi tidak pernah terjadi. - [Perhitungan jalur tidak sama pada sinkronisasi perintah](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-path-mismatch.html): Jika yang dipertukarkan hanya “pergi ke sini” dan jalurnya dihitung masing-masing oleh kedua pihak, perbedaan perhitungan sekecil apa pun membuat karakter atau monster berjalan lewat jalur lain lalu ditarik kembali ke posisinya. - [Laju pengiriman snapshot rendah](https://jungrok5.github.io/mmo-lag-anatomy/id/c/sy-low-send-rate.html): Jika server mengirim update posisi (snapshot) hanya beberapa kali per detik, buffer interpolasi harus dibuat lebih panjang sebanding, sehingga karakter lain terlihat di masa lalu yang lebih jauh. ## Masalah yang hanya dialami sebagian pemain - [Pemain yang lag terlihat fast forward di layar pemain lain](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-slow-burst.html): Input dari pemain yang koneksinya buruk tiba di server secara tidak beraturan dan bertumpuk. Jika server menerapkan input sebanyak yang diterima di setiap tick, pemain lain melihat karakter itu tersendat sesaat, lalu maju beberapa langkah sekaligus. - [Fast forward pada server yang memproses input begitu tiba](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-event-server.html): Pada server yang langsung memproses paket begitu tiba dan segera mengabarkan hasilnya, aksi pemain lambat yang datang bertumpuk langsung dijalankan berturut-turut. - [Ukuran buffer input per pemain](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-input-buffer.html): Jika server menampung sedikit input untuk setiap pemain lalu mengambilnya satu per tick, gerakan terlihat mulus di mata pemain lain, tetapi aksi pemain itu sendiri dikonfirmasi server lebih lambat sebesar itu. - [False positive validasi yang terpusat pada pemain ISP tertentu](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-isp-validation.html): Input dari pemain yang koneksinya punya jitter besar tiba bertumpuk, sehingga sering terjaring pemeriksaan kecepatan dan cooldown di server. - [Satu anggota party yang lambat dan mekanik boss](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-raid-member.html): Pada mekanik raid yang menuntut semua pemain bereaksi bersamaan di saat yang ditentukan, reaksi terlambat dari satu pemain yang lambat membuat seluruh party gagal. - [Otoritas kontrol monster ada di klien yang lambat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-mob-control.html): Ada game yang menyerahkan perhitungan gerakan monster ke klien salah satu pemain di dekatnya untuk mengurangi beban server. Jika koneksi pemain itu buruk, monster itu bergerak aneh di layar semua pemain. - [Data karakter tertentu terlalu besar](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-heavy-char.html): Karakter yang menumpuk ribuan item atau mail, atau punya daftar teman, daftar blokir, dan buff yang sangat banyak, harus memuat, menyimpan, dan mengabarkan ke sekitarnya data yang berkali-kali lipat lebih besar dari karakter lain. Lambatnya hanya terjadi pada karakter itu, tanpa peduli koneksinya. - [Perbedaan channel, instance, atau phasing](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-phase.html): Jika dua karakter berada di channel atau instance yang berbeda, atau di “phasing” berbeda yang menentukan NPC yang terlihat sesuai progres quest, keduanya melihat dunia yang berbeda. - [Pesan spawn yang tiba saat loading dibuang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-loading-drop.html): Begitu karakter masuk zona, server mengirim pesan spawn NPC di sekitarnya, tetapi klien masih memuat map sehingga pesan itu dibuang. - [Urutan pendaftaran jarak pandang kacau](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-aoi-race.html): Jika saat karakter didaftarkan ke grid jarak pandang bertepatan dengan saat NPC berpindah sel grid, pesan spawn NPC itu bisa terlewat. - [Snapshot baseline hilang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-baseline.html): Pada server yang hanya mengirim “yang berubah sejak terakhir kali”, jika data lengkap yang dikirim sekali di awal (baseline) hilang, perubahan setelahnya tidak bisa diterapkan. - [Pesan despawn hilang (objek hantu)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-ghost.html): Sebaliknya, jika pesan “sudah hilang” terlewat, NPC atau pemain yang sudah mati atau pergi tetap tertinggal hanya di layar Anda. - [Data spawn hilang saat membanjir tepat setelah masuk zona](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-spawn-burst.html): Begitu karakter masuk zona, server mengirim data spawn puluhan hingga ratusan objek di sekitarnya sekaligus. Jika data ini dikirim lewat channel unreliable, atau buffer terima meluap selama klien tidak bisa membaca socket karena sedang loading, sebagian data hilang dan tidak dikirim lagi. - [Kekeliruan akibat ID objek dipakai ulang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-id-reuse.html): Jika server memakai ulang ID objek yang sama saat NPC yang mati muncul kembali, klien yang melewatkan pesan despawn di antaranya salah mengira NPC baru sebagai NPC lama. - [Bentrok port UDP tetap](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-port-collision.html): Jika klien dibuat untuk memakai port lokal yang tetap, klien kedua di PC yang sama tidak bisa memakai port itu atau harus berbagi paket dengan klien pertama. - [Bug pembedaan sesi berdasarkan IP atau perangkat](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-session-key.html): Jika server atau server perantara membedakan koneksi berdasarkan IP atau ID perangkat, dua klien di PC yang sama (IP publik yang sama) dikenali sebagai satu orang. - [Pembatasan multi-klien](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-multiclient.html): Jika modul keamanan atau kebijakan server membatasi beberapa klien di satu PC, klien kedua tidak bisa dijalankan atau masuk, atau klien yang dinyalakan lebih dulu terputus. Sebagian game hanya memblokir fitur pada klien tambahan. - [Pemrosesan dibatasi di jendela latar belakang](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-background.html): Untuk klien di jendela latar belakang, game, engine, dan OS mengurangi frame dan pemrosesan. Paket yang diterima tidak sempat diproses tepat waktu, sehingga menumpuk atau meluap. - [Bentrok akses bersamaan ke file cache dan aset](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-asset-lock.html): Jika dua klien menulis ke folder cache yang sama secara bersamaan atau mengunci file, salah satu klien gagal memuat model dan tekstur NPC. - [Streaming gagal akibat kekurangan memori atau VRAM](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-vram.html): Jika dua klien berbagi memori grafis, tidak ada ruang untuk memuat model dan tekstur yang baru dibutuhkan, sehingga sebagian tidak tergambar. - [Perbedaan opsi tampilan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-display-option.html): Jika opsi seperti batas jumlah karakter yang ditampilkan, penyembunyian name tag atau model NPC, dan mode grafis rendah berbeda di kedua klien, yang terlihat pun berbeda. - [Versi klien atau data tidak cocok](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-version.html): Jika klien kedua berasal dari instalasi lain atau patch-nya belum selesai, klien itu tidak mengenal ID NPC baru yang dikirim server dan diam-diam mengabaikannya. - [Budget pengiriman dan prioritas per koneksi](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-priority.html): Jika server membatasi volume kirim per koneksi dan mengirim objek yang dekat lebih dulu, koneksi dengan batas rendah menerima NPC yang jauh dengan terlambat atau tidak menerimanya sama sekali. - [Objek ditahan akibat kesalahan estimasi jam](https://jungrok5.github.io/mmo-lag-anatomy/id/c/pt-clock-hold.html): Jika waktu server yang diperkirakan klien salah, data objek yang baru tiba ditahan karena dianggap “masih di masa depan”, atau dibuang karena dianggap “sudah terlalu lama”. ## Akar penyebab retransmisi TCP - [Packet loss di jalur nirkabel](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-wireless.html): 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. - [Antrean bottleneck meluap (packet loss akibat kongesti)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-queue-drop.html): Saat antrean di titik tersempit penuh, misalnya router rumah, jalur penghubung antar-ISP, atau jalur data center, paket yang baru datang dibuang. - [Buffer dangkal meluap akibat burst pengiriman](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-burst.html): Jika setiap tick server mengirim update untuk ribuan pemain sekaligus dalam sekejap, buffer kecil di switch atau batas sesaat di cloud meluap dalam waktu kurang dari 1 ms dan sebagian paket dibuang. - [Policer membuang trafik berlebih](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-policer.html): Batas kecepatan langganan ISP, batas instance cloud, dan perangkat proteksi DDoS kadang langsung membuang paket yang melewati kecepatan yang ditetapkan tanpa memasukkannya ke antrean. - [Error fisik (kabel, modul optik, atau konektor rusak)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-physical.html): Kabel yang rusak, konektor serat optik yang kotor, dan modul optik yang sudah habis umur pakainya menimbulkan bit error, dan paket yang rusak dibuang diam-diam oleh perangkat. - [Duplex mismatch](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-duplex.html): Jika satu sisi memakai autonegotiation sedangkan sisi lain mengunci kecepatan dan duplex, salah satu sisi berjalan dalam mode half duplex, dan paket hilang akibat collision setiap kali beban naik. - [Paket dibuang di host server penerima](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-host-drop.html): Paket sudah sampai di server, tetapi dibuang karena ring buffer NIC (buffer yang menampung sementara paket yang tiba) meluap atau core yang menangani pemrosesan terima di kernel jenuh. - [Paket dibuang oleh firewall atau connection tracking](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-stateful-fw.html): Firewall dan connection tracking Linux (conntrack, fitur yang mencatat koneksi yang lewat ke dalam tabel) membuang paket jika tabelnya penuh atau jika paket dianggap tidak sesuai dengan status koneksi. - [Batas pemrosesan perangkat perantara terlampaui (firewall, IPS, proteksi DDoS)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-appliance-pps.html): Firewall, perangkat pencegah intrusi (IPS), dan perangkat proteksi DDoS memeriksa setiap paket yang lewat. Begitu trafik melampaui kapasitas pemeriksaannya, paket yang tidak sempat diproses dibuang. - [MTU black hole (hanya paket besar yang berulang kali hilang)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-mtu.html): Jika ukuran maksimum yang bisa dilewati suatu jalur di tengah rute mengecil dan notifikasi “terlalu besar” (ICMP) diblokir, paket besar terus hilang berapa kali pun dikirim ulang. - [Mapping NAT atau load balancer kedaluwarsa di tengah koneksi](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-mapping.html): Jika perangkat di tengah rute menghapus mapping koneksi idle (entri yang mencatat ke mana koneksi itu diteruskan), paket berikutnya tidak bisa diteruskan. Retransmisi terus berulang sampai pemain disconnect, atau perangkat membalas dengan penolakan koneksi (RST) sehingga pemain langsung disconnect. - [Perubahan rute dan jalur ECMP bermasalah](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-path.html): Paket hilang selama beberapa detik saat rute internet berubah, atau terus-menerus pada koneksi yang ditempatkan di jalur bermasalah di antara beberapa jalur ECMP. - [Retransmisi yang tidak perlu akibat lonjakan latensi](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-spurious-delay.html): Paket sebenarnya tidak hilang dan hanya sesaat datang sangat terlambat, tetapi jika keterlambatan itu lebih lama dari RTO, pengirim menganggap paket hilang lalu mengirimnya ulang. - [Fast retransmit yang tidak perlu akibat urutan paket tertukar](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-reorder.html): Jika urutan paket berubah saat melewati beberapa jalur atau link yang digabung, penerima memberi tahu “ada paket yang hilang” lewat duplicate ACK, dan pengirim mengirim ulang paket yang sebenarnya sudah sampai dengan baik. - [ACK terlambat atau hilang (upload penuh)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-ack-path.html): Data sudah tiba dengan baik, tetapi jika ACK “sudah diterima” tertunda atau hilang di antrean upload yang penuh, pengirim menganggap data hilang lalu mengirimnya ulang. - [Pengaturan RTO tidak sesuai dengan lingkungan](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-rto-setting.html): Jika nilai minimum RTO diturunkan terlalu rendah, keterlambatan kecil saja sudah memicu retransmisi yang tidak perlu. Sebaliknya, nilai default (200 ms) terlalu panjang untuk game sehingga setiap kali paket hilang, game berhenti lama. - [Pemulihan lambat pada thin stream](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-thin.html): Jika game mengirim paket kecil secara jarang-jarang, RTO datang lebih dulu sebelum “3 paket susulan” terkumpul. Untuk packet loss yang sama, game berhenti jauh lebih lama daripada transfer data besar. - [Opsi TCP dihapus oleh perangkat perantara](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-sack-stripped.html): Jika sebagian firewall atau perangkat akselerator menghapus atau mengubah opsi TCP, saat beberapa paket hilang, pemulihannya hanya satu paket per round trip, atau window (jumlah yang bisa dikirim sekaligus) mengecil sehingga koneksi melambat. - [Zero window (jeda yang terlihat seperti retransmisi)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-zero-window.html): 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. - [Retransmisi permintaan koneksi (SYN)](https://jungrok5.github.io/mmo-lag-anatomy/id/c/rt-syn.html): Jika permintaan koneksi hilang karena antrean koneksi (backlog) meluap atau diblokir firewall, OS klien mengirimnya ulang mulai 1 detik kemudian dengan interval yang makin panjang. ## Diagnosis dan kasus - [Diagnosis dari data monitoring](https://jungrok5.github.io/mmo-lag-anatomy/id/#judge): Alur diagnosis cakupan → waktu → lapisan, tabel sinyal diagnosis, 13 pola grafik, cara membaca angka (rata-rata dan p99) - [Prosedur per situasi](https://jungrok5.github.io/mmo-lag-anatomy/id/text.html#playbooks): Lag setelah patch, membuka layanan di negara atau wilayah baru - [Kasus insiden nyata](https://jungrok5.github.io/mmo-lag-anatomy/id/text.html#cases): Postmortem yang dipublikasikan pengembang asli dan operator game, beserta penyebab terkait ## Bahasa lain - [한국어 (Korean)](https://jungrok5.github.io/mmo-lag-anatomy/llms.txt) - [English](https://jungrok5.github.io/mmo-lag-anatomy/en/llms.txt) - [日本語 (Japanese)](https://jungrok5.github.io/mmo-lag-anatomy/ja/llms.txt) - [简体中文 (Chinese (Simplified))](https://jungrok5.github.io/mmo-lag-anatomy/zh-cn/llms.txt) - [繁體中文 (Chinese (Traditional, Taiwan))](https://jungrok5.github.io/mmo-lag-anatomy/zh-tw/llms.txt) - [Deutsch (German)](https://jungrok5.github.io/mmo-lag-anatomy/de/llms.txt) - [ไทย (Thai)](https://jungrok5.github.io/mmo-lag-anatomy/th/llms.txt) - [Tiếng Việt (Vietnamese)](https://jungrok5.github.io/mmo-lag-anatomy/vi/llms.txt) - [Русский (Russian)](https://jungrok5.github.io/mmo-lag-anatomy/ru/llms.txt) - [Português (Brasil) (Portuguese (Brazil))](https://jungrok5.github.io/mmo-lag-anatomy/pt-br/llms.txt) - [Español (Spanish)](https://jungrok5.github.io/mmo-lag-anatomy/es/llms.txt) ## Optional - [Repositori GitHub](https://github.com/jungrok5/mmo-lag-anatomy): Kode sumber, format data, cara berkontribusi - [Dibuat oleh Jeongrok Oh](https://jungrok5.github.io/resume/en/): CV