Bilgisayar ağlarında Tıkanıklık Yönetim Algoritmaları

Tıkanıklık Kontrol Algoritmaları

Leaky Bucket(Sızdıran kova) Algoritması

Ağa gönderilen trafik oranını ve miktarını kontrol eden bir makanizmadır.  Bu algoritma, Ortalama veri hızını sabitleyerek yoğu trafiği yönetir.  

Bir kovanın dibinde küçük bir delik olduğunu hayal edelim. Kovayı dolduran su sabit olmasa da alttaki küçük delikten sızan su miktarı sabittir. Böylece su kovada beklediği müddetçe kovaya giren su miktarına bağlı olmadan kovadan sızan su aynı olacaktır.



Bu algoritmanın dezavantajı kova dolduğu zaman su boşa akacaktır.

Aynı mantığı bilgisayar ağları için düşündüğümüze veri kaynaktan farklı hızlarda gelebilir. Örneğin kaynaktan 4 saniyede 12 Mbps veri gelsin, 3 saniye veri gelmesin. Daha sonra kaynaktan 2 saniye için 10 Mbps veri gelsin. Böylece 9 saniyelik zaman aralığında 68 MB veri transfer edilmiş olacaktır.  

Eğer sızdıran kova algoritması kullanılırsa veri akışı 9 saniyede 8 Mbps olacaktır, böylece sabit akış sağlanacaktır. 



Token Bucket(Jetonlu Kova) Algoritması  

Sızdıran kova algoritması yalnızca ortalama(sbit) oranda veri akışına izin verir. En büyük problemi yoğun veri ile ilgilenmemesidir.  

Sızdıran kova algoritması, sunucunun boşta kalma süresi ile ilgilenmez. Örneğin sunucu 10 sn boşta kalıyorsa diğer 10 saniyede veriyi çok yüksek hızda gönderir, toplam veri iletimi 20 sn olacak ortalama veri oranı korunacaktır. Sunucunun 10 saniye boşta kalması bir avantaj doğurmayacaktır.

·       Bu problemin üstesinden gelmek için jetonlu kova algoritması kullanılır. Bu algoritma yoğun miktarda veri transferine izin verir.

·       Sızdıran kova algoritmasının değiştirilmiş halidir, sızdıran kova jetonlar içerir. Bu algoritmada jeton veya jetonlar her saat tikinde(clock tick) üretilir. Paket transfer edildiğinde jetonlar kovadan atılmalıdır.

·       Böylece, jetonlu kova algoritması jeton formunda sunucunun boşta kalmasında ve gelecek için kredi toplamasına izin verir.

·       Örneğin eğer sistem bir saat çevriminde 100 jeton üretirse, sunucu 100 tik için boşta bekleyecektir. Kova 10.000 jeton içerecektir.  

·       Eğer sunucu yoğun miktarda data gönderiyorsa, 10.000 jetonu bir defada 10.000 hücre veya bayt göndererek tüketebilir. Böylece sunucu kova boş olmadığı sürece yoğun veri gönderebilir.



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