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

Buku Putih Lag Game › Akar penyebab retransmisi TCP

Antrean bottleneck meluap (packet loss akibat kongesti) Tail drop at a congested bottleneck

ID penyebab rt-queue-drop · Penanggung jawab utama Infrastruktur jaringan (Tim Infrastruktur) · Turut terlibat Pihak Eksternal (Pihak Eksternal), Pengembangan klien (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Saat antrean di titik tersempit penuh, misalnya router rumah, jalur penghubung antar-ISP, atau jalur data center, paket yang baru datang dibuang.

Mengapa Bottleneck penuh oleh trafik video, unduhan, dan pengguna lain → Akibatnya Selama antrean penuh, paket yang baru datang dibuang berturut-turut (tail drop). Paket yang lolos pun menunggu di ujung antrean yang penuh → Di layar Banyak paket hilang sekaligus sehingga terjadi freeze panjang lalu fast forward, sering pada malam hari

Gejala
Freeze, Fast forward, Rubber banding
Faktor
Packet loss, Latensi
Siapa yang mengalami
Satu rumah, Wilayah/ISP tertentu, Seluruh server
Kapan
Jam sibuk malam hari, Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Infrastruktur jaringan (Tim Infrastruktur) · Turut terlibat Pihak Eksternal (Pihak Eksternal), Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Tampilkan status jaringan di layar saat packet loss menumpuk atau ping melonjak (sertakan petunjuk bahwa mungkin ada transfer besar di koneksi yang sama).
Tugas Tim Infrastruktur
Sediakan kapasitas cadangan di jalur data center, periksa counter drop antrean (output drops) di jalur dan port switch kami, alihkan trafik lewat jalur lain atau peering jika jalur ISP padat.
Tugas Pihak Eksternal
Imbau pemain untuk memakai SQM (fq_codel, CAKE) dan ECN di router (agar pengirim menurunkan laju sebelum antrean meluap), minta ISP menambah kapasitas di bottleneck.
Kisaran angka
Saat antrean meluap, sebagian besar paket yang masuk selama puluhan ms bisa hilang sekaligus. Paket mudah hilang berturut-turut, bahkan paket retransmisinya pun ikut hilang, sehingga pemulihan sering harus menunggu RTO.
Di grafik
Tinggi hanya di jam tertentu · Tingkat retransmisi, RTT (ping)
Yang diperiksa
Pilah tingkat retransmisi server (kenaikan TcpRetransSegs ÷ TcpOutSegs dari nstat yang dijalankan setiap 1 menit) dan RTT per koneksi menurut wilayah, ISP, dan jam, lalu periksa juga drop output (ifOutDiscards) di jalur dan port switch kami. Jalankan mtr ke wilayah bermasalah pada jam sibuk dan jam sepi, lalu bandingkan
Cocok jika
Tingkat retransmisi naik hanya pada jam sibuk malam, dan RTT naik lebih dulu tepat sebelum packet loss (tanda antrean terisi). Di mtr, hanya pada jam sibuk packet loss dan latensi bertambah bersamaan mulai dari satu hop sampai ujung
Tidak cocok jika
RTT tidak naik sebelum packet loss: lebih mungkin “Policer membuang trafik berlebih”. Packet loss selalu mirip di jam berapa pun: lebih mungkin “Error fisik” atau “Perubahan rute dan jalur ECMP bermasalah”
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Kasus nyata
Riot Games 2015: Trafik League of Legends yang memutar jauh dan Riot Direct

Sumber

  1. RFC 7567: IETF Recommendations Regarding Active Queue Management IETF
    Penjelasan bahwa tail drop membuat antrean penuh dalam waktu lama sehingga latensi bertambah dan packet loss terjadi beruntun, serta rekomendasi AQM
  2. RFC 8290: The Flow Queue CoDel Packet Scheduler and Active Queue Management Algorithm IETF
    fq_codel: antrean per flow dan AQM menjaga antrean tetap pendek sehingga bufferbloat berkurang
  3. RFC 3168: The Addition of Explicit Congestion Notification (ECN) to IP IETF
    ECN: memberi tahu adanya kongesti dengan tanda di header IP tanpa membuang paket
  4. Smart Queue Management Bufferbloat.net
    SQM: cara yang menggabungkan penjadwalan per flow, pengelolaan panjang antrean (AQM), dan shaping
  5. Cake Bufferbloat.net
    CAKE: SQM untuk router yang menggabungkan shaper dan pengelolaan antrean ala fq_codel
  6. net/ipv4/proc.c Linux kernel
    TcpRetransSegs dan TcpOutSegs yang ditampilkan nstat (RetransSegs dan OutSegs pada bagian Tcp)
  7. nstat(8) — Linux manual page iproute2
    Secara default, nstat menampilkan kenaikan sejak eksekusi sebelumnya
  8. RFC 2863: The Interfaces Group MIB IETF
    ifOutDiscards: jumlah paket keluar yang dibuang tanpa dikirim walaupun tidak ada error, misalnya untuk mengosongkan ruang buffer
  9. An Internet-Wide Analysis of Traffic Policing Google
    Pembedaan: pada antrean yang meluap, waktu antre dan RTT naik lebih dulu sebelum packet loss, sedangkan policing membuang kelebihan trafik tanpa kenaikan RTT (SIGCOMM 2016)

Lihat juga

Lapisan yang sama: Akar penyebab retransmisi TCP

Penyebab di lapisan lain dengan gejala yang sama (Freeze)

Lihat kartu interaktif dengan gambar dan simulasi