Jejak paket menunjukkan TCP ZeroWindow. Sebelum mengubah setelan kernel, identifikasi titik ujung yang mengumumkan nol.

Titik ujung itu menjelaskan kapasitas penerimaannya pada koneksi TCP tersebut. Ia tidak mengumumkan berapa lebar pita yang dimiliki seluruh proxy. Probe jendela nol memungkinkan pengirim mengetahui apakah kapasitas yang diumumkan berubah; probe saja tidak membuktikan hilangnya paket atau proxy rusak.

browser  <-- TCP A -->  proxy  <-- TCP B -->  website

Ini percakapan TCP yang terpisah. Misalkan peramban berhenti membaca respons besar dan mengumumkan nol pada A. Proxy akhirnya dapat berhenti menguras B saat buffernya sendiri penuh. Jendela nol berikutnya pada B bisa jadi akibat klien yang lambat, bukan masalah aslinya.

Situasi sebaliknya mungkin terjadi saat unggah. Jika aplikasi tujuan berhenti mengonsumsi data, jendelanya pada B dapat menutup. Tekanan lalu dapat menjalar kembali ke klien melalui buffer proxy.

Urutkan pengamatannya

  1. Catat titik ujung koneksi dan arah transfer data yang terdampak.
  2. Identifikasi titik ujung mana yang pertama mengumumkan jendela penerimaan menyusut atau nol.
  3. Periksa apakah aplikasinya sedang membaca, tertahan pada operasi lain, atau dibatasi sumber daya.
  4. Bandingkan waktunya pada koneksi proxy yang lain sebelum menetapkan penyebab aslinya.

Label analisis jendela Wireshark adalah tafsiran yang berguna atas tangkapan, bukan instruksi untuk memperbesar setiap buffer penerimaan. Penskalaan jendela juga harus ditafsirkan dengan melihat negosiasi koneksi.

Mencoba titik ujung lain dari daftar proxy dan melihat transfer pulih adalah bukti berguna bahwa jalurnya berubah. Namun itu sendiri tidak membuktikan implementasi TCP suatu sistem operasi cacat. Kaitkan penjelasan dengan proses penerima dan koneksi tempat penantian dimulai.

Artikel terkait