Bilgisayar ağlarında Tıkanıklık nasıl oluşur?

Congestion (Tıkanıklık)

Tıkanıklık(congestion) paket anahtarlamalı ağlardaki önemli bir konudur.  Tıkanıklık, iletişim ağında bir bölgede (alt ağda) paket birikmesi  ve performansın düşmesidir.  Ağa gönderilen paket sayısı ağın kapasitesinden fazla ise de tıkanıklık meydana gelir. 



Tıkanıklığın çeşitli nedenleri vardır;
Ağa aynı anda 3 girişin olması ve tek çıkışın olması durumunda çok fazla paket kuyrukta birikecek, eğer hafıza da yetersiz ise kuyruğun dolması ile paket kaybı yaşanacaktır. Hafızayı sınırsız artırmak da problemi çözmek, çünkü paket kuyruğun önüne geldiğinde zaman dolmuş olacaktır. Kaynak duplicate(çift) paket gönderirse bu defa tekrar tekrar aynı paketler kuyruğa eklenecektir. 


2. Yönlendiriecilerin yer ayırma işlemlerinde çok yavaşlaması (tampon hafızayı kuyruklama, tabloları güncelleme vb.)

3. Yönlendirici tampon hafızasının limitli olması.

4. Yönlendiricilerde işlemci çok yavaşsa tampon hafızanın kuyruklanması, tabloların güncellenmesi yavaş olacaktır. Böylece kuyruk taşacak ve kapasite aşılacaktır.

5. Yavaş bağlantılarla da tıkanıklık gerçekleşir, yüksek hızlı bağlantılar ile çözülebilecektir. Bazen bant genişliğini artırmak daha fazla bozulmaya neden olacaği gibi yüksek hız ağın daha fazla dengesiz hale gelmesine neden olacaktır. Eğer bir router ek hafızaya sahip değilse gelen paketleri yok sayacak ya da atacaktır. Paketler atıldığında gönderici kaynak bu paketlerin akibeti hakkında bilgi sahibi olana kadar tekrar transfer edecektir. Böylelikle, birden fazla iletim ağ tıkanıklığını zorlayacaktır ve göndermeyi sona erdirecektir. 

Tıkanıklık Kontrolü 2 gruba ayrılır;

Açık Döngü (Open Loop)
Kapalı Döngü (Closed Loop)

1)Açık Döngü Tıkanıklık Kontrolü
Bu durumda tıkanıklık olmadan önce gerekli önlemler alınır.
Tıkanıklık hedef veya kaynak tarafından kontrol edilir.  Çeşitli metodlar vardır;

a)Retransmission policy: Gönderilen paketin kaybolduğu veya bozulduğu fark edilirse tekrar gönderilir.

b) Window policy : Seçilen red pencereleri (selective reject window) metodu tıkanıklık için kullanılır. Paketlerde Zaman aşımı olduğunda, bazı paketler alıcıya güvenli şekilde ulaşmasına rağmen bazıları tekrar gönderilir. Sonuçta duplication(ikileme-çiftleme) olduğundan tıkanıklık daha da  kötüleşecektir. Seçilen red metodu sadece kaybolmuş veya zarar görmüş paketleri gönderir.

c) Acknowledment Policy: Alıcı taraf da tıkanıklıktan etkilendiğinde uygulanır. Alıcı göndericiye ağı yavaşlatmasını söyleyerek tıkanıklığı gidermeye çalışır.

d) Discarding Policy: Yönlendirici tıkanıklık meydana gelen geldiğinde daha az önemli bazı paketleri atabilir. Bu politika tıkanıklığı önleyebilirken aynı zamanda iletimin bütünlüğüne zarar vermeyebilir. 

e) Admission policy: Servis kalitesi mekanizmasıdır, aynı zamanda sanal devre ağlarında(virtual circuit networks) tıkanıklığı önleyebilir.

2) Kapalı Döngü Tıkanıklık Kontrolü
Tıkanıklık olduktan sonra gidermeye çalışır. Çeşitli metodlar vardır;

a) Backpressure: Tersi yönde akış kontrolü yaparak, tıkanıklığın olduğu düğümden başlayarak düğümden düğüme tıkanıklık kontrolü yapar.  Sadece virtual circuit networks için uygulanır. Upstream(üst) düğümler bilgilendirilmez.
 
b) Choke package: Tıkanan yönlendirici veya düğüm, kaynağa choke paket denilen özel bir tip paket göndererek tıkanıklığı bilgilendirir. Backpressure metodunda olduğu gibi upstream(üst) düğümler bilgilendirilmez. 
 


c) Implicit Signaling: Kaynak ile tıkanan düğüm veya düğümler arasında bir iletişim yoktur. Kaynak paket almadığında tıkanıklığın olduğu yeri tahmin etmeye çalışır. Alıcı paketlerin zamanları geçtiğinde ve ACK almadığında tıkanıklık olduğunu anlar. Tıkanıklığın nerede olduğunu anlamaya çalışırken Kaynak yavaşlar. TCP tarafından kullanılır.

d)Explicit Signaling: Tıkanan düğümler harici bir sinyal göndererek tıkanıklığı belirtir.

Choke packet metodundan farklıdır, choke pakette ayrı bir paket bu amaçla kullanılırken, bu durumda sinyal  pakette taşıyıcı bit(carry) data bölümündedir.  Harici sinyal ileri veya geri yönlü olabilir.
Geri sinyalde tıkanıklığın olduğu yerin tersine gidilir. Pakette 1 bit ayarlanan, bu bit kaynağı uyararak iletişim yavaşlaması konusunda bilgilendirir.

İleri yönlü sinyalde tıkanıklığın olduğu yöne doğru giden pakette 1 bit ayarlanır. Bu bit varış yerini tıkanıklık konusunda uyarır. Alıcı tıkanıklığı kaldırmak için Ack’ı yavaşlatır.

Kaynaklar
1) Computer Networks, Prenticae Hall, Andrew S. Tanenbaum
2) Bilgisayar Haberleşmesi ve Ağ Teknolojileri, Papatya Yayıncılık, B.Örencik, R.Çölkesen
3) What is congestion control? http://ecomputernotes.com

İyi çalışmalar,
Oğuzhan TAŞ
Ekim, 2016

Bookmark and Share