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

Buku Putih Lag Game › Akar penyebab retransmisi TCP

Fast retransmit yang tidak perlu akibat urutan paket tertukar Reordering triggers spurious fast retransmit

ID penyebab rt-reorder · Penanggung jawab utama Infrastruktur jaringan (Tim Infrastruktur) · Turut terlibat Infrastruktur server (Tim Infrastruktur)

Buka kartu interaktif dengan gambar dan simulasi →

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.

Mengapa Perangkat yang membagi rute per paket, LAG (gabungan link) yang membagi muatan per paket, dan momen saat rute berubah membuat urutan paket teracak → Akibatnya Paket belakang tiba lebih dulu sehingga 3 duplicate ACK menumpuk → fast retransmit → Di layar Paket game yang dikirim jarang-jarang hampir tidak terpengaruh. Update besar di tempat ramai dan unduhan patch melambat, sesekali patah-patah

Gejala
Patah-patah, Input lag
Faktor
Jitter
Siapa yang mengalami
Wilayah/ISP tertentu, Seluruh server
Kapan
Selalu, Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Infrastruktur jaringan (Tim Infrastruktur) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Infrastruktur
Jaringan: ganti pembagian beban per paket dengan pembagian per koneksi (ECMP dan LAG dengan hash alamat dan port). Server/OS: pakai RACK (deteksi packet loss berbasis waktu yang tahan terhadap urutan paket tertukar; jika DSACK menunjukkan retransmisi yang tidak perlu, toleransi urutan tertukar diperlebar otomatis), periksa tingkat reordering yang diestimasi Linux secara otomatis untuk tiap koneksi (nilai reordering di ss -ti, nilai awalnya tcp_reordering=3).
Di grafik
Selalu tinggi sejak awal · Jumlah deteksi urutan paket tertukar, jumlah DSACK yang diterima
Yang diperiksa
Periksa TcpExtTCPSACKReorder dan TcpExtTCPTSReorder (jumlah deteksi urutan paket tertukar) serta TcpExtTCPDSACKRecv di nstat; per koneksi, periksa reordering (ditampilkan jika nilainya selain 3) dan reord_seen di ss -ti. Di packet capture, pakai filter Wireshark tcp.analysis.out_of_order
Cocok jika
Counter urutan tertukar dan DSACK terus naik di jam berapa pun, dan nilai reordering pada koneksi yang melewati rute atau perangkat tertentu lebih besar dari 3. Di capture sisi penerima, paket belakang datang lebih dulu dan paket depan pun segera menyusul
Tidak cocok jika
Counter urutan tertukar tidak berubah, tetapi TcpExtTCPLostRetransmit naik: packet loss sungguhan. DSACK hanya naik saat RTT melonjak: lebih mungkin “Retransmisi yang tidak perlu akibat lonjakan latensi”
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)

Sumber

  1. RFC 2991: Multipath Issues in Unicast and Multicast Next-Hop Selection IETF
    Jika rute dibagi per paket, urutan paket berubah, dan jika 3 paket belakang atau lebih datang lebih dulu, TCP melakukan fast retransmit yang tidak perlu
  2. RFC 2992: Analysis of an Equal-Cost Multi-Path Algorithm IETF
    ECMP yang memilih rute dari hash field header yang mengidentifikasi flow (pembagian beban per flow)
  3. RFC 5681: TCP Congestion Control IETF
    Fast retransmit pada duplicate ACK ketiga
  4. RFC 8985: The RACK-TLP Loss Detection Algorithm for TCP IETF
    RACK mendeteksi packet loss berbasis waktu sehingga tahan terhadap urutan paket tertukar, dan memperlebar batas waktu toleransi urutan tertukar (reo_wnd) jika menerima DSACK
  5. IP Sysctl Linux kernel
    Nilai awal tcp_reordering 3 (disesuaikan otomatis per koneksi hingga tcp_max_reordering), pengaturan RACK di tcp_recovery
  6. misc/ss.c iproute2
    ss -ti menampilkan reordering:nilai jika nilai reordering koneksi berbeda dari default 3, dan reord_seen:jumlah jika koneksi pernah mengalami urutan paket tertukar
  7. SNMP counter Linux kernel
    TcpExtTCPSACKReorder, TcpExtTCPTSReorder (urutan paket tertukar terdeteksi), TcpExtTCPDSACKRecv (jumlah DSACK yang diterima), TcpExtTCPLostRetransmit (paket yang dikirim ulang hilang lagi)
  8. include/uapi/linux/tcp.h Linux kernel
    tcpi_reord_seen di tcp_info: berapa kali koneksi mengalami urutan paket tertukar
  9. Display Filter Reference: Transmission Control Protocol Wireshark
    Filter tampilan tcp.analysis.out_of_order

Lihat juga

Lapisan yang sama: Akar penyebab retransmisi TCP

Penyebab di lapisan lain dengan gejala yang sama (Patah-patah)

Lihat kartu interaktif dengan gambar dan simulasi