Published on

TCP'de Flow Control ve Congestion Control

Authors
  • avatar
    Name
    Alperen Önal
    Twitter

TCP’de flow control(akış kontrolü) alıcı ile gönderici arasındaki hız senkranizasyonunu ayarlamaktan sorumludur. Bu, gönderici tarafın hızını alıcının hızına göre ayarlayarak alıcı tarafındaki TCP buffer’in boğulmamasını sağlar.

Metafor ile bir örnek verecek olursak : X ile Y’nin tenis toplarıyla oyun oynadıklarını düşünelim. X, her tenis topunun üzerine bir harf yazıyor ve sırasıyla Y’ye fırlatıyor. Y’nin de bu topları yakalayıp üzerindeki harfleri okuyarak kelimeyi bulmaya çalıştığını farz edelim. Eğer X, topları Y’nin okumaya yetişemeyeceği hızda fırlatırsa Y’nin kelimeyi anlaması oldukça güç hale gelir. Bu yüzden X, topları Y’nin okuyabileceği hızda atarsa Y’nin kelimeyi bulması daha kolay hale gelecektir.

TCP flow control’de de alıcı, göndericiyi kontrol etmektedir. Böylece gönderen hızı, alıcı hızına kıyasla çok artmaz ve alıcının buffer’ı taşmaz.

TCP’de, veri iletimi sırasında sender ve receiver tarafında kullanılan bellek alanlarını ifade edeniki kavram bulunmaktadır : sender ve receiver buffer.

  • Sender Buffer :
    • Gönderici tarafında, iletilmeyi bekleyen verilerin geçici olarak depolandığı arabellektir.
    • Gönderici buffer’ı, TCP’nin gönderme hızını düzenleyerek receiver ile sender arasındaki veri akışını kontrol eder.
    • Sender Buffer, sender’ın belirli bir süre boyunca veri iletememesi durumunda verileri kuyrukta saklayarak sender’in hazır olduğu anda iletimi sağlar. Bu özellik, ağdaki gecikmeler veya ağ kartlarının paketleri işlemesi için gereken zaman zarfında verilerin buffer’da muhafaza edebilmesini sağlar.
  • Receiver Buffer :
    • Alıcı tarafında, gelen verilerin geçici olarak depolandığı bellek alanıdır.
    • Receiver Buffer, alıcının belirli bir süre boyunca verileri işleyemediği durumlarda verileri
    • muhafaza ederek drop olmasının önüne geçer.

TCP Congestion Control

Gönderici packet loss(congestion) yaşanana kadar hızını arttırabilir. Kayıp durumunda ise gönderme hızını azaltabilir. Böylece en verimli gönderim hızına yaklaşılmış olunur. Bu hız azaltma ve arttırma işlemleri AIMD algoritması ile sağlanır. Oluşan grafik adeta testere dişlerine benzer.

TCP’nin alıcıdan göndericiye veri akış hızını yönetme için stratejilerimizi inceleyelim :

  • Addtive Increase
    • Kayıp olana kadar her RTT’de gönderim hızını bir maksimum segment boyutu kadar attır.
    • Burada gönderici, her RTT’de bir maksimum segment boyutu kadar(MSS) veri gönderirimini arttırır.
    • Packet loss tespit edilene kadar bu artış devam eder.
  • Multiplicative Decrease
    • Her kayıp olayında gönderim hızını yarıya indirir.

KAYNAKÇA :

Kurose, James F., & Ross, Keith W. (2017). “Computer Networking: A Top-Down Approach” (7th ed.). Boston: Pearson Education.