Bu makalede QoS olarak tabir edilen hizmet kalitesinin arttırılması konseptinden bahsedeceğiz. Bu amaçla uygulanan çeşitli yöntemleri tanıyacağız. Genelde şirketlerde yerel ağ bant genişliği eternet teknolojisi üzerine kurulu olduğu için LAN ?de 100 Mb. Ve 1 Gb. Hızlarda iletişim hızı görüyoruz. Birden çok şubemiz varsa aldığımız WAN desteği kullanılan teknolojiye bağlı olarak değişmekle beraber LAN hızlarını yakalayamıyor. İçeride 100 Mb. Dışarı çıkarken 1 Mb. e düşüyorsa bu durumda trafiğin akışında ciddi bir yoğunluk yaşanacak anlamına geliyor. Trafiğin yoğunlaşması içeride bir çok kimsenin sağlıklı iletişim hizmeti alamaması anlamına geliyor. Yaşanan sorunlar uygulamaya bağlı olarak değişebiliyor. Örneğin ftp yapılıyorsa yavaşlama olacak. Video gibi bir multicast uygulama yapılıyorsa örneğin şubeler arasında multivizyon konferans uygulaması varsa bu durumda görüntüde donmalar kesiklikler yaşanacak. IP üzerinden telefon görüşmeleri yapılıyorsa konuşmalarda kesiklikler olacak ve ses kalitesi düşecek, bazı uygulamalar siz komut vermenize rağmen hiç tepki vermeyecek. Bir sql uygulaması varsa yavaş çalışacak. Telnet ile bir yönlendiriciye bağlandıysanız siz klavyeye bir harf yazınca ekranda görmeniz birkaç saniye alacak. Smtp mail uygulaması ise mail adresine çok geç teslim edilecek. IBM e özgü SNA verisi taşınıyorsa kesintiye ve gecikmeye tahammülü olmadığı için açılan oturum sık sık kopacak.
Şekilde çok şubeli büyük bir firmanın video,ses ve veriyi aynı anda kullanıp yaşadığı sıkıntıları görüyoruz.
Hizmet kalitesini etkileyen unsurlar bant genişliği, ulaşma süresi (delay) , ulaşma süresindeki ardışık giden paketlerde değişmeler (Jitter) ve düşürülen (drop) paketlerdir. Ulaşma süresindeki değişmeyi açıklamak gerekirse bir bütün verinin 20 parça olarak karşıya ulaşacağını düşünelim. İlk paket 200 milisaniyede, ikinci 280 milisaniyede ,üçüncü 100 milisaniyede hedefe ulaşıyorsa oluşan değişme kaliteyi olumsuz etkileyecektir. Özellikle ses ve video verisinin ulaşma süresinden değil ama süredeki istikrarsızlıktan çok etkilenir. Ancak bu bir smtp verisi ise bahsettiğim unsurların hemen hiç önemi yoktur. Çünkü SMTP depola ve gönder mantığı ile çalışır. Hat ne zaman müsait olursa o zaman veri gönderilir.
Hizmet kalitesini arttırmak için akla gelen ilk çözüm tabi ki bant genişliğini arttırmak olacaktır. Ancak bu ekonomik ve teknik açıdan imkansız olabileceği gibi her zaman da çözüm olmayabilir. Ftp gibi band genişliğini adeta emen birçok protokole yasak getirmeniz gerekebilir. (Bunu yapmazsanız band genişliğinin artmasına en çok şirket yönetimi değil film indirmeyi seven arkadaşlar sevinecekler.) Http üzerinden download yapılabilmesi ise diğer bir gediği oluşturmaktadır ve müdahalesi hiç de kolay değildir.
Artan band genişliği kısa sürede dolacağı için hala ses,video verisi göndermekte sorun yaşanabilir.
Verilen iletişim hizmetinin kalitesinin arttırılması sadece band genişliğinin arttırılması ile sağlanamayacağı görülüyor.
Hizmet kalitesini arttırmak için ikinci yöntem mevcut band genişliğini koruyarak sıkıştırma ve parçalama teknikleri kullanmak olabilir. Cisco bu amaçla verinin tamamının sıkıştıran (Payload Compression) Stacker, Predictor ve MPPC denilen üç yöntemi kullanmaktadır (Uygulama seviyesinde veriyi sıkıştırarak göndermek tabi ki mümkün). Verinin tamamının değil de başlığının sıkıştırılması da (Header compression) mümkündür. Buna örnek TCP veya RTP başlık sıkıştırma yöntemi verilebilir. Başlık sıkştırma yöntemi daha çok telnet gibi verisi küçük ama taşınması için eklenmesi gereken enkapsulasyon başlığı fazla olan paketlerin taşınmasında kullanılır. Sıkıştırma kalıcı bir çözüm değildir. Parçalama yönteminde ise çeşitli büyüklükteki çerçevelerin eşit ve küçük büyüklükte olacak şekilde parçalara ayrılması ve bu sayede tahmin edilebilir bir ulaşma süresi sağlamak amaçlanıyor. Sabit çerçeveden dolayı ulaşma süresindeki değişme de (jitter) sıfırlanmaya çalışılıyor. Yöntem multilink PPP , Frame Relay üzerinden ses datası taşırken (FRF:11Annex C) veya normal veri taşırken (FRF:12) uygulanıyor.
Şekilde hattı (Link) etkili kullanmak amacıyla uygulanan üç mekanizmayı görüyoruz.
Hizmet kalitesini arttırmak için üçüncü yöntem taşınan paketlerin sınıflandırılıp önem sırasına göre önceliklendirilmesidir. Hatta belirli bant genişliğinin örneğin ses datasına rezerve edilmesidir. Video için de benzer tedbir lazım. Telnet, uzaktan yönetim (RDP) gibi interaktif uygulamalar (yani komut ver - sonucunu gör şeklinde uygulamalar) varsa öncelikle geçmesine müsade edilmelidir. Bu amaçla kullanılan tekniklere kuyruğa alma yöntemleri diyoruz. Örnek olarak PQ ( Priority Queueing), WFQ(Weighted Fair Queueing) , CQ (Custom Queueing), CBWFQ (Class-based Weighted Fair Queueing) ,LLQ(Low Latency Queueing) verilebilir. Diğer bir çözüm ise ki bunu çözüm değil de çözümü pekiştiren yöntem olarak bakabileceğimiz WRED' dir. (WeightedRandom Early Detection).
Kuyruğa alma yönteminde kuyruk sayısını arttırarak örneğin ses verisinin aynı kuyruğa dizilmesi sağlanır. Farklı kuyruğa almak için sınıflandırma IP yada IPX paketlerine göre olabileceği gibi paketin TCP yada UDP olmasına göre yada TCP olup da 23 portunu kullanıyor olmasına göre de olabilir. Yada sınıflandırma için paket içindeki ikinci seviye Cos ve üçüncü seviyede ToS adlı alanlar da kullanılabilir. Yönlendiricilerin her bir bacağının (interface) ayrı bir bir tampon belleği (kuyruk) vardır. Gelen veri önce kuyruğa sırası ile alınırlar. Ancak bu kuyruğun belirli bir büyüklüğü vardır (Buffer Queue). Sonuçta birçok kuyruk olmasına rağmen çıkış noktası tek düşünelim. Çıkış noktasını altı delik kovaya benzetilebiliriz. Kovaya bir çok kuyruktan sürekli su geliyor ama kovanın deliğinden akan su sürekli sabit. Bu durumda kova dolunca artık gelen su sürekli dışarı akacak. Benzer şekilde kuyruk dolmasına rağmen hala gelen veri kuyrukta yer açılana kadar sürekli çöpe atılacak (drop). Çöpe atılan veri ses verisi ise bu durumda ses verisi UDP ile çalıştığından yerine yenisi de istenmeyecek ve alıcı sesleri kesik kesik duyacaktır. WRED çöpe atılacakların önceliği olmayan veriler olmasını sağlamaya çalışır. Yöntem taşacağı belli olan veriye yer açmak amacıyla kuyrukta bekleyen belirli verileri çöpe atmak esasına dayanıyor.
PQ yönteminde örneğin ses kuyruğundaki veri bitmediği sürece diğer kuyruktaki verilere sıra gelemez. Bu şekilde belirli kuyruklardaki verinin taşınabilirliği garanti altına alınmaya çalışılır.
Şekilde PQ yöntemi ile yapılmış farklı kuyruklar görüyoruz.
WFQ yönteminde ise bu kadar katı bir düzen yoktur. Kuyruklar gelen paketlerin gönderen ve alıcı IP adreslerine göre IP protokolune,TCP ve UDP ye göre ve/veya varsa ToS adı verilen bir değere göre dinamik olarak yaratılırlar. Kuyrukların hepsine sıra gelir. Eğer gelen paketlerde IP Precedence (yukarıda bahsettiğim ToS içine yazılan değer) değerine göre bir sınıflama önceden yapılmışsa toplamdaki orana göre sıra her kuyruğa eşit şekilde değilde Precedence ağırlığına göre adil şekilde gelecektir. Diğer kuyruklara sıra gelmesi için en öncelikli kuyruktaki verinin bitmesi PQ dakinin aksine beklenmez. Yöntemin adil olması burdan gelir. Ağırlıklı olması da IP Precedence değerini hesaba katmasından gelir. Cisco'da 2 Mbps altında band genişliği olan bacaklar zaten bu yönteme göre çalışır. 2 Mbps üstündekiler ise siz müdahale etmezseniz FIFO (first in-first out) çalışır. Yani ilk giren ilk çıkar. FIFO ?ya bir yöntem denemez.
CQ (Custom Queueing) yönteminde ise oluşacak kuyrukların sayısını biz belirliyoruz ve örneğin 3 no'lu kuyruk 150 byte ?dan daha az olan ipx verisinden oluşacak, 172.16.20.0 alt ağından gelen paketler 5 no'lu 2000 byte uzunluğundaki kuyrukta dizilecekler diyebiliyoruz. Biraz konfigurasyon gerektiriyor. WFQ'daki gibi bütün kuyruklara sıra geliyor. WFQ da bazı kuyruklara daha çok sıra gelirken burda eşit şekilde her bir kuyruğa sıra geliyor. (Round-robin).
CBWFQ ise WFQ nun daha esnetilmiş şekilde daha ayrıntılı sınıflama yapabilmeyi sağlayan bir yöntemdir.
LLQ ise katı PQ olarak adlandırılır.PQ ya artı olarak kuyruklara band genişliği atanması imkanı tanıyor.
Kuyruğa alma yöntemleri hizmet kalitesinin sağlanmasında çabaların kalbini oluşturmakla beraber paketlerin sınıflandırılması, band genişliği sınırlaması (rate limiting), Policing ve Shaping konuları da ayrıca önemlidir.
Bütün bu yöntemler biraz kafa karıştırıyor olabilir. Konuyu daha iyi anlamak için konfigurasyonlarının nasıl yapıldığına bakmak gerekiyor.
Hizmet kalitesinin arttırılması konusunda aslında önceliklendirmeye dayalı iki ana yaklaşım var. Bu ana yaklaşımlardan birine karar vererek eyleme geçmek gerekiyor. Birinci yaklaşım (IntServ-Integrated Service) "uygulama kaynak talep etsin ve tüm yol boyunca bütün yönlendiriciler kaynak ayırsın ancak ondan sonra veri taşınmaya başlansın" yaklaşımıdır. Örneğin IP Telefonu RSVP denilen rezervasyon protokolu aracılığı ile ağdan özel ilgi bekler. Ve alıcıya kadar bütün yol boyunca kendisine kesintisiz kaynak ayırıldığından emin olmak ister. Kullanıcı kendisine gerekli band genişliği ve ne kadar gecikmeye tahammül edebileceğini belirten görüşme isteğini diğer telefon kullanıcısına gönderir. Bu istek yönlendiriciden geçerken yolu üzerindeki her yönlendirici bu mesajı okur ve içindeki listeye kendisini de ekler. Böylece bu görüşmeye kaynak ayırabileceğini belirtir. Alıcı mesajı aldığında cevap mesajı döndürür ve mesaj gene aynı yoldan gönderene ulaşmaya çalışır. Bu arada her yönlendirici cevap mesajını okuyarak diğer tüm arkadaşlarının da aynı kaynağı ayırdıklarını görür ve kendisi de kaynağını rezerve eder. Mesajı bir gerideki yönlendiriciye iletir. Eğer içlerinden müsait olmayan bir yönlendirici varsa mesajı çöpe atar ve gönderene cevap mesajı yerine hata mesajı döndürür. Sorun yoksa yani yol üzerindeki her yönlendirici mesajı elden ele geçirerek gönderene ulaştırabilirse, gönderen kendisi için gerekli band genişliğinin ve gecikme toleransının sağlandığını anlar ve görüşme ancak gerçekleşir. Bu yaklaşım için her bir yönlendirici üzerinde bacak içinde (interface altında) RSVP amaçlı ayırabileceği band genişliğinin belirtilmesi gereklidir. Sistem önce bütün yollar tahsis edilsin sonra veri yola çıksın mantığıdır. Çok ölçeklenebilen bir yaklaşım değildir. Sistemde yol üzerindeki her yönlendiricinin konudan haberdar olması gerekiyor. Ayrıca baştan sona yapılan rezervasyon o band genişliğinin optimal kullanılmasına engel olabilmektedir.
İkinci yaklaşım ise (DiffServ-Differentiated Service) yönlendiricilerin "hele paket bana gelsin ben o zaman kaynağımı ayırırım" yaklaşımıdır. Mevcut kaynaklar daha etkin bir şekilde kullanılabilmektedir. Ağa giriş noktasında giriş portunda paket işaretlenir ve
Kullanıcı peşin peşin bir rezervasyon talep etmez . Verisini gönderir. İlk yönlendirici
(genelde yönlendirici diyorum ama tabiki Layer 3 Switch'lerde olabilir.) verinin IP başlığı içine önceliğini belirten bir değer koyar. Verinin uğrayacağı her yönlendirici, eğer onlarda da gerekli QoS ayarları yapıldıysa öncelik değerini okur ve veriye ona göre muamele eder. Eğer yol üzerindeki yönlendiricide QoS konfigurasyonu yapılmamışsa bu durumda cihaz değerle hiç ilgilenmez alalade bir paket muamelesi yapar, paketi varsayılan kuyruklardan birine koyar ve sırası gelince yönlendirir. IntServ modelinde yol üzerinde her yönlendiricinin öncelikten anlama zorunluluğu varken DiffServ modeli uygulamada çok daha geniş alana hitap etme yani ölçeklenebilme imkanı sunar. Bir analoji yapmak gerekirse her kavşakta trafik polisi olduğunu düşünün. Başbakan eskortuyla trafiğe çıkıyor. Geçeceği güzergahtaki tüm polisler daha baştan kavşakları boşaltması için talimat alıyor. Ancak ondan sonra başbakan yola çıkıyor. Bu yaklaşım Intserv yaklaşımıdır. DiffServ'de ise bütün kavşaklar niye en baştan boşaltılsın ki yaklaşımı var. Her trafik polisi ne zaman eskortu görürse o zaman kavşağı boşaltıyor. Böylece mevcut yollar daha etkili (herkeze yönelik) kullanılabiliyor.
Bazı arkadaşlardan konuların detaylarına pek girmediğime dair eleştiriler alıyorum. Haklılar. Ancak buradaki amacım genel anlamda ve ayrıntıya girmeden bilgi verebilmek ve kabaca da olsa çözüm yöntemlerinden bahsetmek. Ayrıntıya girmenin sıkıcı olacağını ve ana konuyu boğacağını düşünüyorum. Birde konuları yüzeysel anlatmak genele hitap etme imkanı tanıyor. Aksi taktirde işi doğrudan ağ uzmanlığı olmayan arkadaşlar için bu yazı çok sıkıcı olurdu.
Cisco eğitimleri ile ilgilenen arkadaşlardan QoS konusunun ayrıntılarını merak eden varsa QoS CCIP sertifikasyon eğitiminin bir parçasıdır. Ancak daha yaygın olan CCNP eğitimlerinin BCMSN alt eğitiminde de konudan bahsediliyor.
Görüşmek üzere.
|