Tıkanıklık Kontrol Algoritmaları Bir subnette veya bir kısmında taşıma kapasiteden daha fazla sayıda paket varsa tıkanıklık meydana gelir. Ağın kapasitesinden daha az paket olduğunda az sayıdaki iletişim hatalı paket dışında yerine ulaştırılan ve gönderilen paket sayısı hemen hemen aynıdır. Yük artmaya başladıkça routerlar bu yükü kaldıramamaya ve paket kaybetmeye başlarlar. Kaybolan paketler tekrar gönderileceği için yük gittikçe artar ve trafik çok arttığında ağ çökebilir. Tıkanıklığın başlıca sebepleri şunlardır; Bir routera anlık olarak çok sayıda girişinden tek bir çıkışına gidecek paketler gelmeye başladığında bir sıra oluşur. Eğer routerın hafızası bütün paketleri almaya yeterli değilse paketler kaybolmaya başlar. Hafıza arttırılsa bile bir noktadan sonra sıranın önüne gelmeye başlayan paketler çok uzun zamandır bekledikleri için time-out vermeye başlarlar. Bu paketler tekrar gönderilmeye başlanır ve sıra sonsuza doğru artar. Routerın CPU'su gelen paketlerin düzenlenmesi (tampon bellek işlemleri, tabloların düzenlenmesi vs.) gibi işleri yapmaya yetişemiyorsa belirli bir yükten sonra router tıkanmaya başlar. Benzer şekilde düşük kapasiteli iletişim hatları da tıkanmaya neden olabilir. Tıkanıklık kontrolü ve akış kontrolü arasında temel farklar bulunmakta-dır. Tıkanıklık kontrolü subnette trafiğin kontrolüyle ilgilenir. Dolayısıyla ağdaki bütün birimlerin ve routerların davranışları vs. gibi global parametre-lerle ilgilenir. Öte yandan akış kontrolü iki birim arasındaki noktadan-noktaya bağlantıyla ilgilenir, dolayısıyla yerel bir kontroldür. Temel amacı hızlı göndericinin yavaş alıcıyı paketlere boğmasını engellemektir. Tıkanıklık Kontrolünün Genel Đlkeleri Ağ problemleri iki temel kategoride toplanabilir; açık döngü ve kapalı döngü sistemler. Açık döngü sistemlerde sistem başlangıçta çok iyi ve hata oluşmayacak şekilde tasarlanır. Trafiği düzenleme algoritmaları ağın o anki durumundan/ yükünden habersiz olarak çalışır. Sistem çalışmaya başladıktan sonra algorit-malar değiştirilmez. Kapalı döngü sistemlerde ise bunun tam tersine trafik sürekli gözlenir ve algoritmalar duruma göre yeni parametrelere göre çalışmaya devam edebilir-ler. Temel bir kapalı döngü sistemde öncelikle tıkanıklığın ne zaman ve ne-rede oluştuğu gözlenir. Daha sonra bu bilgi trafiği düzenleyen birimlere ak-tarılır ve sistemin işleyişi problemi giderecek şekilde yeniden düzenlenir. Subnette tıkanıklığı anlamak için çeşitli parametreler kullanılır. Bunlar tampon bellek yetersizliği nedeniyle kaybolan paket yüzdesi, ortalama sıra uzunlukları, time-out olan ve yeniden gönderilen paket sayısı, ortalama paket gecikme süresi, vs olabilir. Kapalı döngüde bu parametreler gözlendikten sonra bu bilgi ilgili yere iletilmelidir. Bu işlem ekstra paketler kullanılarak yapılabilir ancak bu durum zaten tıkanık olan ağa yeni paketler verilmesi anlamına gelir. Başka bir yöntem mevcut paketlerin içindeki bir bit veya alan içinde bu bilginin taşınması olabilir. Diğer bir yöntem routerlar tıkanıklık kontrolü için periyodik olarak sisteme 'sonda' paketleri gönderirler. Bu şekilde tıkanıklık henüz oluşmaya başladığında sezilebilir. Tıkanıklığın meydana gelmesi subnette sistemin kaldırabileceğinden fazla paket olması anlamına gelir. Bu iki şekilde çözülebilir; kaynaklar arttırılabilir, paket sayısı azaltılabilir. Örneğin ağda tıkanıklık sezildiğinde devreye yedek routerlar sokularak fazla trafik bunlara aktarılabilir. Ancak elde yeterli kaynak bulunmuyorsa yapılacak işlem paketlerin kaynağını durumdan haberdar edip gönderdiği paket sayısını azaltmasını istemektir. Tıkanıklık Engelleme Politikaları Öncelikle açık döngü sistemleri inceleyelim. Tıkanıklığı engellemek için öncelikle tıkanıklığın meydana geldiği durumları bilmek gerekir. Her katmanda buna neden olacak çeşitli unsurlar vardır. Bunlar aşağıdaki tabloda belirtilmektedir. Veri bağlantı katmanından başlayalım. Paketleri çok çabuk time-out veren tekrar gönderen bir kullanıcı özellikle 'n-geri git' algoritması kullanıyorsa ağa çok fazla yük bindiriyordur. Bunun yerine seçici tekrar algoritması kullanılabilir. Alındı paketleri her gelen paket için ve ayrı gönderiliyorsa yine ağı yükleyebilir. Halbuki bu alındılar veri paketlerinin üstüne bindirilirse bu ek trafik azaltılabilir. Ayrıca pencere boyutları küçültülerek paket akış hızı kısıtlanabilir. Ağ katmanında datagram veya sanal devre kullanılması tıkanıklığı büyük ölçüde etkilemektedir.Çoğu tıkanıklık algoritması sanal devre subnetlerde çalışmaktadır. Đyi bir routing algoritması trafik yükünü ağa eşit miktarda dağıtırken, kötü bir algoritma ağın bir kısmının çok yüklenmesine sebep olur. Taşıma katmanında da veri bağlantı katmanına benzer sorunlar bulunmakla birlikte time-out zamanının belirlenmesi çok daha zordur. Bunun nedeni ağı baştan-sona katederken oluşacak gecikmenin iki router arasındaki (bir PPP hattındaki) gecikmeden çok daha zor kestirilebilmesidir. Sanal Devre Subnetlerde Tıkanıklık Kontrolü Önceki yansıda değinilen problemler ve çözümleri temelde açık döngü çözümlerdir. Tıkanıklığı daha oluşmadan uygun algoritma tasarımıyla engellemeye yönelik yöntemlerdir. Bu bölümde ise sanal devre subnetlerde oluşabilecek tıkanıklığın dinamik kontrolüne değinilecektir. Var olan bir tıkanıklığın daha kötüleşmesini engellemek için kabul kontrolü yöntemi kullanılabilir. Fikir basitce; eğer tıkanıklık oluşmaya başladıysa durum düzelene kadar başka sanal devre kurulum isteklerini reddettir. Dolayısıyla yeni taşıma katmanı bağlantı kurulumları gerçekleştirilemeyecektir. Telefon sistemlerin buna benzer bir algoritma kullanılır. Hatlar dolu ise arama yapmak isteyen kullanıcılara çevir sesi verilmez. Başka bir yaklaşımda ise yeni kurulacak sanal devreler problemli bölgelerden geçirilmeden kurulur. Takip eden yansıdaki örnekte A routerı , B ile bağlantı kurmak istemektedir. Normalde yeni yolun tıkanıklık yaşayan routerlardan geçirilmesi gerekirken, yeni yol başka bir rotadan açılabilir. Diğer bir yöntem ise bağlantı ilk kurulurken subnet ile iletişim yapacak taraflar bir servis kalitesi (tampon bellek veya tablo miktarı vs.) üzerinde anlaşırlar ve iletişim süresince bu kaynaklar sadece o kullanıcılara tahsis edilir. Bu şekilde tıkanıklık büyük ölçüde engellenir. Datagram Subnetlerde Tıkanıklık Kontrolü Bir router çıkışlarının kullanım miktarını kolaylıkla ölçebilir. Eğer bu miktar belirli bir değerin üstüne çıkarsa router ‘uyarı’ durumuna geçer ve örneğin aşağıdaki önlemlerden birisini almaya başlar. Uyarı Biti Router, kullanımının çok arttığını sezdiğinde üstünden geçen paketlerin özel bir bitini yakarak yönlendirir. Alıcı paketi alıp biti gördüğünde paketi gönderene geri göndereceği alındı paketindeki özel bir alanda tıkanıklığı bildirir. Gönderici bu alındıyı aldıktan sonra iletişim hızını başka tıkanıklık bildiren alındı gelmeyene kadar düşürür. Bu algoritmada tıkanıklığın nerede olduğu belirlenemediği için bütün ağdaki tıkanıklık giderilene kadar göndericiler hızlarını azaltırlar. Boğma Paketi Önceki yöntemde router tıkanıklığı göndericiye dolaylı yoldan bildirir. Bunu doğrudan yapmak da mümkündür. Bir router tıkanmaya başlayacağını sezdiği zaman paketleri gönderen bilgisayarlara bir boğma paketi gönderir. Kolay yöntemde bu paket sadece gönderen bilgisayarı etkiler. Trafik paketin gönderilmesinden bir süre sonra azalır. Diğer bir yöntemde ise paket yol üstündeki routerları da etkiler. Trafik hemen azalır. Ancak paket ulaşana kadar bilgisayar aynı hızda paket ileteceği için aradaki routlerların oluşacak birikmeyi kaldıracak büyüklükte serbest tampon belleğe sahip olması gereklidir. Yük Dökme Önceki yöntemler tıkanıklığı gideremezse routerlar gelen paketleri kabul etmeyebilirler. Böylece ağda paket kaybı başlar. Burada hangi paketin kaybedileceği önemlidir. Örneğin bir sıkıştırılmış video akışında genellikle periyodik olarak bütün resim çerçevesi göderilir. Diğer zamanlarda ise sadece çerçeveler arasındaki fark bilgisi gönderilir. Bu resim çerçevesini kaybetmek fark çerçevesini kaybetmekten daha önemlidir. Göndericiler paketlerini önemsiz, önemli, kesinlikle kaybedilmemeli vs. gibi işaretleyebilirler. Bu durumda öncelik sırasına göre fazla paketler düşürülebilir. Ayrıca bir sanal devre bağlantısında taraflar anlaştıkları hızın üstüne çıkıp routerların serbest kapasitesine göre iletim yapabilirler. Bu durumda bu fazla kapasite paketleri önemsiz olarak işaretlenir ve gerektiğinde düşürülebilirler. Bu şekilde routerların boş kaynakları daha verimli kullanılabilir. Jitter (Seğirme) Kontrolü Ağ üzerinden özellikle ses ve görüntü iletimi sırasında paketlerin genelde ne kadar geç geldikleri değil gelen paketler arasındaki süre önemlidir. Birinci kavram ancak iki yönlü iletişimde (internet telefonu, videoconferans) genel bir gecikmeye sebep olabilir ama tek yönlü iletişimde kullanıcı tarafından hissedilmez. Öte yandan paketler arasındaki süre oynamaları ses ve görüntü kalitesinde sürekli ve rahatsız edici bir kalite değişimine sebep olur. Bu durumu çözmek için router vaktinden önce gelen paketleri bekletip, geç kalan paketleri diğerlerinin önüne koyarak bir an önce iletilmesini sağlayabilir. Video on demand gibi uygulamalarda ise ağdan gelen paketler kullanıcıda online kullanılmak yerine belirli miktarda bir tampon bellekte biriktirilip öyle oynatılabilir. Servis Kalitesi Ağ tarafından kullanıcılara sunulan hizmetlerin belirli bir kalitede olması beklenebilir. Bu kalitenin en temel ölçütleri güvenilirlik, gecikme, jitter ve bantgenişliğidir. Aşağıdaki tablo değişik uygulamaların ihtiyaç duyduğu servis kalitelerini vermektedir. Đyi bir Servis Kalitesi Sağlamak için Teknikler Fazla Kaynak Sağlama En basit yöntem budur. Trafiği kaldırmak için gerekli kaynakların miktarından daha fazla kaynak sağlanırsa tüm kullanıcılara yeterli bir servis kalitesi sunulabilir. Dezavantajı pahalı olmasıdır. Tamponlama Alıcı tarafında gelen paketler bir tampon bellekte toplanabilirler. Bu yöntem batgenişliğini ve güvenilirliği etkilemez ancak gecikmeyi arttırabilir. Fakat asıl yararı jitterı azaltma kapasitesine sahiptir. Özellikle video-ondemand gibi uygulamalarda ağdaki jitterı azaltmakta kullanılabilir. Trafik Şekillendirme Bir ağda kullanıcılar genellikle videokonferansın tersine sürekli değişen bir patternde paketler üretirler. Bu değişim nedeniyle zaman zaman ağda tıkanıklıklar meydana gelebilir. Eğer kullanıcı ve subnet iletişim öncesinde kullanıcının ihtiyacı olan trafik şekli üzerinde anlaşabilirlerse ağın tüm kullanıcılara sunduğu servis kalitesi iyileştirilebilir. Örneğin subnet kullanıcıya paketlerini daha homojen aralıklarla göndermesini söyleyebilir, veya kullanıcıların anlık trafik patternine göre ağdaki routing işlemleri dinamik olarak yönetilebilir. Sızdıran Kova Algoritması Altındaki delikten su sızdıran bir kova düşünelim. Kovaya giren suyun hızı ne olursa olsun, delikten akan suyun miktarı sabit kalacaktır. Eğer giren su miktarı kovayı aşarsa su dışarı dökülecektir. Paketleri ağa gönderen tarafta da aynı mantık yürütülebilir. Bilgisayardaki çeşitli süreçler tarafından düzensiz olarak üretilen paketler bir tampon bellekte toplanırlar. Bir saatin her tickinde ağa bir paket gönderilir. Bu şekilde düzensiz gelen paketler ağa düzenli aralıklarla sunulurlar. Eğer tampon bellek dolarsa yeni gelen paketler kaybolurlar. Bu yöntem sabit uzunluktaki paketlerde çalışabilir. Eğer paket boyutları değişken ise her saat tickinde bir paket yerine belirli sayıda byte gönderilebilir. Örneğin bir tickte 1024 bytelık bir paket veya 256 bytelık 4 paket ağa gönderilebilir. Sızdıran kova algoritmasına bir örnek sonraki yansıda verilmiştir. Bir bilgisayar 25MBps (200Mbps) hızda paket üretebilmektedir. Ağ da aynı hızda çalışabilmekle birlikte, routerlar bu hızı anlık olarak sağlayabilmekte, tampon bellekleri dolmadan ise en çok 2MBps’de çalışabilmektedir. Verinin 1 milyon-bitlik paketlerin (burst) saniyede bir 40ms’lik süre boyunca üretildiğini varsayalım. Ortalama hızı 2MBps’e indirmek için bir 1MB kapasiteli delik kova kullanılıyor olsun. Böyle bir sistemin çalışması sonraki yansıda (a) ve (b) şekillerinde gösterilmektedir. Jeton (Token, Andaç) Kovası Algoritması Sızdıran kova algoritması kullanıcıların boş geçen zamanlarını ileride kredi olarak kullanmasına izin vermez. Bu şekilde kullanıcıların çıkış hızları üzerinde oldukça katı bir baskı uygular. Zaman zaman kullanıcılardan gelen yüksek miktardaki burst’lerin daha çabuk işlenmesi (hatta kovayı taşırmaması) için paket gönderme miktarının arttırılması daha esnek bir çalışma sağlayabilir. Jeton kovası algoritmasında kovaya ∆T sn’de bir, bir jeton bırakılır. Eğer gönderilecek paket yoksa bu jetonlar kovada birikirler. Her paket gönderilmeden önce kovadan bir jeton alır. Bu nedenle eğer kovada birikmiş jeton varsa ve peşpeşe birkaç paket geliyorsa jeton miktarı kadar paket kanala birlikte verilir. Sonraki yansıdaki şekilde kovada üç jeton varken gelen beş paketten üçü ağa gönderilirken, kalan iki paket yeni jeton üretilmesini bekler. Ancak jeton sayısı kovanın alabileceği paket sayısından fazla olamaz. Bu yöntem anlık olarak trafikte düzensizlik yaratabilir. Bu algoritma küçük bir değişiklikle değişken boyutlardaki paketleri de işlemeye uygun hale getirilebilir. Bu sefer her jeton başına n byte gönderilir. Elbette bir paket ancak boyutuna yetecek miktarda jeton bulunduğunda gönderilebilir. Kaynak Ayırılması Gönderilecek paketlerin ilk çıkış noktalarında trafik düzenlemesi yapılması ağın yükünü büyük ölçüde rahatlatır. Ancak hala ağdaki routerların ve hatların - bantgenişliği - tampon bellek boyutları - CPU döngüleri sistemin başarımını etkiler. Bu nedenle routerlardaki düzenleme bu parametreler gözönüne alınarak yapılmalıdır. Örneğin 2Mbps kapasiteli bir hattan üçüncü bir 1Mbps hızında iletim yapılmaya çalışılması tıkanıklığa sebep verecektir. Kabul Kontrolü Şimdiye kadar anlatılan yöntemlerle routerlara gelen trafik hemen hemen homojen hale sokulmuştur. Ancak hala routerlarda tıkanıklık olabilir. Bu durumda en son yapılacak fakat sorunu çözecek şey gelen paketlerin kabul edilmeyerek kaybolmalarına neden olmaktır. Bunun için hangi paketlerin kaybedilebileceği ile ilgili çeşitli kriterler bulunabilir. Bazı kullanıcılar gerek duydukları akış parametrelerini ağ ile paylaşırlar ve belirli bir değer üzerinde ağ ile anlaşmaya varırlar. Bu parametrelere akış tarifnamesi ismi verilir. Bir örnek sonraki yansıda verilmektedir. Đlk iki parametre ağ göndericinin trafik şekli ile ilgili bilgi verir. Peak data rate ağın kaldırabileceği anlık en yüksek veri hızını verir, kullanıcı bunu kesinlikle aşmamalıdır. Min. max paket boyutları ise ağ ve taşıma katmanı başlıkları da dahil olmak üzere paket boyutlarını belirler (TCP ve IP gibi). Min. belirlemenin amacı routerların ne kadar küçük olursa olsun her paket için bir miktar zaman harcamasıdır. Örneğin bir router saniyede 1KB’lık 10,000 paket işleyebilirken, 50 byte’lık 100,000 paketi ikincisinin daha az trafik yaratmasına rağmen işleyemeyebilir. Max. boyut ise ağın birimleri üzerindeki sınırlamalar nedeniyle getirilir (bellek boyutlar vs.). Orantılı Routing Çoğu routing algoritması en uygun rotayı bulup bütün trafiği oradan akıtmak taraftarıdır. Fakat servis kalitesini arttırmak amacıyla bu trafik birden fazla rotaya orantılı olarak dağıtılabilir. Ancak bunun gerçekleştirilmesi için routerların bütün ağın topolojisini ve parameterlerini biliyor olması gereklidir. Dolayısıyla böyle bir uygulama ancak yerel olarak uygulanabilir. Paket Çizelgeleme Eğer bir router birden fazla akışı kontrol ediyorsa bir akışın bütün kaynakları ele geçirip diğerlerini engelleme riski ortaya çıkar. Bir routerın girişlerine gelen paketleri sırasıyla alıp çıkış tampon belleğine yerleştirmesi agresif bir kullanıcının sürekli gönderdiği paketler yanında diğer daha sakin kullanıcıların engellenmesi anlamına gelir. Bunun bir çözümü adil sıralama algoritmasıdır. Routerdaki tampon çıkışlarda değil girişlerdedir. Her giriş noktasından gelen paketler öncelikle bu tampon belleklerde bekletilirler. Router sırasıyla her girişi tarayarak bir paketi alır ve çıkışına yönlendirir. Buradaki sorun eğer paket boyutları değişken ise uzun paket kullanan bir kullanıcının, kaynakları kısa paket kullanan kullanıcıdan daha fazla tüketmesidir. Bunun çözümü giriş tamponlarından okumanın paket paket değil byte-byte yapılmasıdır. Aşağıda buna bir örnek gösterilmektedir. Router her seferinde girişlerden bir byte okur ve çıkışa yönlendirir. Bu örnekte C’nin routerdan iletilmesi için sekiz saat tick’ine, A için ise 20 saat tick’ine ihtiyaç duyulmaktadır. Bu algoritmalar bütün kullanıcılara aynı önceliği tanır. Ancak bazı kullanıcıların daha yüksek önceliğe sahip olması gerekebilir. Bu durumda örneğin bir saat tick’inde bir kullanıcıdan 2 byte birinden ise 1 byte alınabilir. Bu algoritmaya değişiklik yapılmış adil sıralama ismi verilir.
© Copyright 2024 Paperzz