Bir paket izi TCP ZeroWindow diyor. Bir kernel ayarını değiştirmeden önce sıfırı duyuran uç noktayı belirleyin.

Bu uç nokta o TCP bağlantısındaki alma kapasitesini tarif ediyor. Proxy'nin tamamının ne kadar bant genişliği olduğunu duyurmuyor. Zero-window probe, gönderenin duyurulan kapasitenin değişip değişmediğini öğrenmesini sağlar; probe tek başına paket kaybını veya bozuk bir proxy'yi kanıtlamaz.

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

Bunlar ayrı TCP konuşmalarıdır. Tarayıcının büyük bir yanıtı okumayı bırakıp A üzerinde sıfır duyurduğunu varsayın. Proxy, kendi buffer'ları dolarken B'den çekmeyi zamanla durdurabilir. B üzerinde sonradan görülen bir zero window, asıl sorun değil yavaş istemcinin sonucu olabilir.

Bir yükleme sırasında tersi durum mümkündür. Hedef uygulama veriyi tüketmeyi bırakırsa B üzerindeki penceresi kapanabilir. Basınç daha sonra proxy'nin buffer'ları üzerinden istemciye doğru geri gidebilir.

Gözlemleri sıraya koyun

  1. Bağlantının uç noktalarını ve etkilenen veri aktarımının yönünü kaydedin.
  2. Hangi uç noktanın ilk önce daralan veya sıfıra inen alma penceresini duyurduğunu belirleyin.
  3. Uygulamasının okuma yapıp yapmadığını, başka bir işlemde durakladığını mı yoksa kaynaklarla mı sınırlandığını kontrol edin.
  4. Asıl nedeni atamadan önce proxy'nin diğer bağlantısındaki zamanlamayla karşılaştırın.

Wireshark'ın pencere analizi etiketleri yakalama için yararlı yorumlardır, her alma buffer'ını artırma talimatı değildir. Window scaling de bağlantının anlaşması göz önünde tutularak yorumlanmalıdır.

Bir proxy listesinden başka bir uç nokta deneyip aktarımın düzeldiğini görmek, yolun değiştiğine dair yararlı bir kanıttır. Bu tek başına bir işletim sisteminin TCP uygulamasının kusurlu olduğunu kanıtlamaz. Açıklamayı alan sürece ve beklemenin başladığı bağlantıya bağlı tutun.

İlgili makaleler