TCP performansı: pencere, tıkanıklık ve gecikme
Yavaş bir bağlantının nedenini gecikme, kayıp, pencere boyutu ve tıkanıklık denetimiyle ölçerek bulur, çekirdek ayarlarıyla düzeltirsin.
Seviye 301 · 18 ders · 15 pratik lab
Dersler
Ölçmek
- Bant genişliği-gecikme çarpımı
- iperf3 ile TCP ve UDP testleri
- Gecikme ile verim arasındaki ilişki
- ss -ti ile cwnd, rtt ve yeniden iletimleri okumak
- Kısa görev: iki uç arasında performans taban çizgisi çıkar
Tıkanıklık denetimi
- Yavaş başlangıç ve tıkanıklık penceresi
- Cubic ve BBR: tıkanıklık algoritmalarını karşılaştırmak
- Paket kaybının verime etkisi (netem ile)
- Sıra bozulması ve çift onaylar
- ECN: paketi düşürmeden tıkanıklık bildirmek
- Kısa görev: kayıplı hatta en iyi algoritmayı seç ve kanıtla
Ayarlamak
- Pencere ölçekleme ve soket arabellekleri
- sysctl ile TCP ayarları ve güvenli sınırlar
- Nagle ve gecikmeli onay: küçük paket sorunu
- MSS sınırlama ve tünellerde MTU sorunları
- TIME_WAIT ve geçici port tükenmesi
- Kısa görev: yavaş yedekleme aktarımını ayarla
Kapanış
- Bitirme görevi: şubeden merkeze yavaş aktarımın kök nedeni ve düzeltmesi
Pratik lablar
- Bu hat için doğru pencere boyu: Ölçtüğün RTT ve verilen hat hızından bant genişliği-gecikme çarpımını hesapla ve tek bir TCP akışının ulaşabileceği en yüksek hızı tahmin et.
- Tek akış yavaş, dört akış hızlı: iperf3 ile tek ve paralel akış sonuçlarını karşılaştır ve farkın pencere sınırından kaynaklandığını ss -ti değerleriyle açıkla.
- Görüntülü görüşme bozuluyor: jitter ve kayıp: iperf3 UDP testleriyle hattın jitter ve kayıp değerlerini farklı hızlarda ölç ve görüntülü görüşme için güvenli en yüksek hızı belirle.
- Süren aktarımın iç durumu: Süren bir aktarımda ss -ti ile cwnd, rtt ve yeniden gönderim değerlerini oku ve hangi değerin sınırlayıcı olduğunu yaz.
- Gönderen hazır, alıcı yetişemiyor: Alıcı uygulamanın yavaş okuması yüzünden oluşan sıfır pencere ilanlarını yakala ve darboğazın ağda değil alıcıda olduğunu kanıtla.
- cwnd’yi zaman içinde izle: Bir aktarım boyunca ss -ti değerlerini saniyede bir kaydeden bir betik yaz ve çıktıda yavaş başlangıç ile kayıp anlarını işaretle.
- Tıkanıklık algoritmasını değiştir: Sistemde kullanılabilen algoritmaları listele, BBR’ı etkinleştir ve yeni bir bağlantıda kullanıldığını ss ile göster.
- Uzak saha: yüksek gecikmeli hat: netem ile uzak bir sahanın yüksek gecikmeli hattını taklit et, cubic ve BBR’ı karşılaştır ve sahaya önerdiğin ayarı ölçümlerle gerekçelendir.
- Paket düşürmeden tıkanıklık sinyali: ECN: İki uçta ve aradaki kuyrukta ECN’i etkinleştir, CE işaretli paketleri yakalamada göster ve yeniden gönderim sayısındaki farkı ölç.
- Tampon sınırı hızı kesiyor: Küçük bırakılmış soket tampon sınırını bul, güvenli bir değere yükselt ve iperf3 ile hız artışını göster.
- Pencere ölçekleme kapalı: Kapatılmış pencere ölçeklemenin etkisini el sıkışma yakalamasında göster, ayarı düzelt ve yüksek gecikmeli hatta hız farkını ölç.
- Küçük isteklerde 40 ms gecikme: Küçük yazmalar yapan bir istemci-sunucu çiftinde Nagle ile gecikmeli ACK etkileşimini yakalamayla kanıtla ve TCP_NODELAY ile gecikmenin kaybolduğunu ölç.
- Yeni bağlantı açılamıyor: port tükenmesi: Yük testindeki ‘cannot assign requested address’ hatasının geçici port tükenmesinden olduğunu ss ile göster ve port aralığını genişleterek gider.
- Tünelden geçen HTTPS donuyor: Tünel arkasındaki istemcilerde büyük yanıtların takılmasını yakalamadaki MSS değerleriyle kanıtla ve yönlendiricide MSS sıkıştırması uygula.
- Bir hatta üç sorun: Aynı hatta birlikte duran MTU, tampon ve kayıp sorunlarını tek tek ayırt edip her birini ölçümle kanıtla ve düzeltilebilir olanları gider.
Kurs hakkında
Yavaş bir bağlantının nedenini gecikme, kayıp, pencere boyutu ve tıkanıklık denetimiyle ölçerek bulur, çekirdek ayarlarıyla düzeltirsin.
Ne öğreneceksin
- Ölçmek
- Tıkanıklık denetimi
- Ayarlamak
- Kapanış
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.