QoS, iletişimde verimli, yeterli ve kaliteli hizmet sağlayabilmek amacı ile trafiğe uygulanacak olan servislerdir. Garanti iletime ihtiyaç duyulan ağlarda QoS kullanımı ile hata oranlarını en aza indirmek ve maksimum bant genişliğine ulaşarak ağ performansını arttırmak hedeflenir. Ağ performansı, hem kullanıcılar hem de servis sağlayıcıları için oldukça önemli bir unsurdur.

QoS bir Katman 3 özelliğidir. Kritik öneme sahip uygulamaların iş sürekliliğinin sağlanmasını, paket kayıplarının yaşanmamasını ve iletimin kabul edilebilir bir zaman içinde gerçekleşmesini garanti eder. Veri trafiği içerisinde bulunan bütün paketlere QoS uygulanabilir. QoS mekanizmaları, paketlere farklı öncelik seviyelerinin belirlenmesi, istenilen paketlerin etiketlenmesi, bant genişliğinin düzenlenmesi gibi ihtiyaç duyulan belirli servis ve uygulamaları içerir.
Ayrıca UDP paketlerinin kontrolü ve yönetimini kolaylaştırmak için de QoS kullanılır. Ağda çalışan uygulamalardan bazıları gecikmeye karşı duyarlıdır. Bu uygulamalar genellikle TCP yerine UDP iletişimini kullanır. UDP ile iletilen paketler için iletimin başarılı olduğuna dair kontrol mekanizması yoktur, dolayısı ile ağ tıkanıklıklarını fark edebilme yetisi de yoktur. İletilmemiş paketlerin fark edilip tekrar iletiminin sağlanması söz konusu değildir. Ayrıca paketlerin alıcıya iletilmemesinin yanı sıra, iletilen paketler arasında yaşanacak gecikmenin kabul edilebilir seviyelerde olması gerekir. Bu tür kayıplar iletişimde kesinti, donma veya senkronizasyon bozulması benzeri olumsuz sonuçlara sebep olur. Paket kayıplarına karşı duyarlı olan canlı ses ve video iletişimlerinin yanı sıra IoT (Internet of Things – Nesnelerin İnterneti) yani akıllı cihazlar için de önem arz etmektedir.
İletimde yaşanılan kalite problemlerinin başlıca nedenleri bant genişliği eksikliği, gecikmelerin oluşması ve paket kayıpları ile ilgilidir. İletimi sağlayan yönlendiriciye gelen paketlerin kuyrukta beklemesi ile yoğun veri trafiği veya tıkanıklık oluşur. Kuyruğa giren paketleri düzenlemekle görevli olan “Buffer” üzerinde eğer mevcut kuyruk dolu ise paketler sıraya giremeden paket kaybı yaşanır.

Yaşanan paket kayıplarını önlemek için bağlantı hızı arttırılabilir ve QoS mekanizmaları uygulanabilir. Eğer belirli paketler QoS aracılığı ile önceliklendirilebilir ise paketler gecikme yaşanmadan iletilir. Yüksek önceliğe sahip paketlerin iletimi sağlanırken düşük öneme sahip paketlerde kayıplar yaşanabilir ve bu durum göz ardı edilebilir. Paket kayıplarının önüne geçebilmek için ayrıca Katman 2 içerisinde Kanal Erişim Protokolleri veya Rastgele Erişim Protokolleri geliştirilmiştir. Böylece yaşanılan olumsuz etkilerin önüne geçilebilir.
İletişimde kullanılan bant genişliği, en düşük bant genişliği kapasitesine eşittir. En düşük bant genişliğine sahip bağlantının maksimum kapasitesi aşıldığında, veri trafiğinde tıkanıklık oluşur. Bu tür sorunların çözümü, iletişimde kullanılan bant genişliği kapasitesini arttırmaktır. Ancak bu durum, bütçe veya teknolojik kısıtlamalar nedeniyle her zaman mümkün olmayabilir. Trafiği önem düzeyine göre önceliklendirmek, denetlemek, işaretlemek ve kuyruğa almak için QoS mekanizmaları uygulanır. Böylece öncelik sahibi uygulamalar yeterli bant genişliğine sahip olmalı ve kalan bant genişliği en düşük öneme sahip trafiğe tahsis edilmelidir. Uygulanacak işlemler belirlendikten sonra trafikte taşınan verilerin tanımlanması gerekir. Bu sebeple öncelikle trafik içerisinde bulunan paketleri önceliklendirebilmek için paketler sınıflandırılmalıdır. Bir sonraki aşamada IP paket başlıklarındaki veya Ethernet Frame bitlerine göre işaretlenmelidir. Son olarak da kuyruğa sokulup paket iletimi başlatılır. Bu aşamada önemli olan, trafikte uygulanacak olan işlemlerin, yaşanılan probleme uygun belirlenmesidir.
QoS için bilinmesi gereken bazı tanımlar aşağıda mevcuttur.
- Delay: Alıcıya ulaşan paketler arasında oluşan zaman farkı, gecikme.
- Jitter: Paketlerde oluşan Delay’ler arasındaki zaman farkı, gecikme.
- Latency: Paketin ağ üzerinde kaynaktan hedefe iletimi için geçen toplam süre, gecikme.
- Bant Genişliği: Ağ tarafından taşınabilecek trafiğin limit değeri.
- CIR: Committed Information Rate, yani taahhüt edilen veri hızı.
- PIR: Peak Information Rate, yani veri iletimindeki hız için pik noktası.
- CBR: Committed Burst Size yani taahhüt edilen veri gönderdiğiniz veya aldığınız veri paketlerinin garanti edilen boyutu. Kullandığınız uygulamalar ve sistemler farklı boyutlarda veri paketlerinin işlenmesi ihtiyacına sahip olabilir. Şayet kullandığınız veri paketlerinin boyutunu (byte cinsinde) biliyorsanız ihtiyaçlarınız doğrultusunda bu değeri ayarlayabilir ve o büyüklüğe kadar olan veri paketlerinin işlenmesini garanti altına alabilirsiniz. Eğer bu konuya hâkim değilseniz varsayılan olarak 0 (sıfır) bırakabilirsiniz. Bu durumda izin verilen veri paket boyutları otomatik olarak işlenecek herhangi bir sınırlama veya kural getirilmeden standart olarak kullanmaya devam edeceksiniz.
- MBR: Maximum Burst Size, yani işlenmesine izin verilen maksimum paket boyutu.
- MTU: Maximum Transfer Unit, taşınabilecek verinin maksimum paket boyutu.
Ayrıca latency oluşumuna sebep olan bazı sabit gecikmeler;
- Yayılma Gecikmesi (Propagation or End-to-End Delay): Bir paketin fiber optik kablolar veya bakır teller gibi bir iletişim ortamı üzerinden kaynaktan hedefe gitmesi için geçen süredir.
- Serileştirme Gecikmesi (Serialization Delay): Bir paketin tüm bitlerini bir bağlantıya yerleştirmek için geçen süredir. Bağlantı hızına bağlı ol an sabit bir değerdir. Bağlantı hızı ne kadar yüksek olursa, gecikme o kadar düşük olur.
- İşlem Gecikmesi (Processing Delay): Bir ağ cihazının paketi bir giriş arayüzünden alması ve paketi çıkış arayüzünün çıkış kuyruğuna yerleştirmesi için geçen sabit süredir.
Bir ağda QoS hizmetleri sağlamak için İnternet Mühendisliği Derneği olarak bilinen Internet Engineering Task Force – IETF, Quality of Service tarafından tanımlanan üç ana QoS modeli vardır. Her bir modelin, veri iletimini nasıl sağladığına ve ağın belirli bir hizmet düzeyinde paket işleme biçimine göre farklılık gösterir. Bunlar; Best Effort yani En İyi Çaba, Integrated Services (IntServ) yani Entegre Servisler ve Differentiated Services (DiffServ) yani Farklılaştırılmış Hizmetler.
En İyi Çaba (Best Effort –BE)
Best Effort, QoS modelleri arasında en basit çalışma yapısına sahip olan modeldir. Tüm paketlerin aynı önceliğe sahip olduğu ve paket iletiminin garanti edilemediği bir çalışma yapısına sahiptir. İnternet haberleşmesinde varsayılan olarak kullanılır ve herhangi bir QoS mekanizması uygulamaz, bu nedenle bu QoS modeliyle ilişkili herhangi bir karmaşıklık yoktur. Ağ içerisinde özel kaynak rezervasyonuna veya başka herhangi bir mekanizmaya izin vermez. Bu nedenle, gerçek zamanlı (Real-Time) trafik talepleri ile ortaya çıkan herhangi bir uygulama için çok iyi çalışmaz.
Ağlar QoS ilkeleri kullanılarak yapılandırılamadığı zaman veya altyapı QoS desteklemediğinde uygulanır. Eğer ağ kaynakları QoS gereksinimlerini uygulamak için yetersiz ise bu model kullanılmamalıdır. Bu durumlarda, kaynaklar için rekabet eden uygulamalarla iletişimi yönetmek için kullanılacak başka bir mekanizma yoksa kullanıcı deneyimi olumsuz sonuçlanabilir.
Entegre Servisler (Integrated Services – IntServ)
Integrated Services (IntServ), belirli bir yol boyunca bant genişliğini rezerve ederek QoS hizmetini sağlayan bir modeldir. IntServ modeli garanti hizmeti gerçek zamanlı uygulamalarda sağlamak için geliştirilmiştir. Uygulamalar, ihtiyaç duyduğu kaynakları (bant genişliği gibi) rezerve etmek için ağa bildirilir. IntServ, akış sayısının ve ağın boyutunun kontrol edildiği küçük etki alanlarında daha verimli çalışır.
IntServ’i uygulamak, IntServ özellikli yönlendirici cihaz kullanımı gerektirir. Belirli bir uygulama için ağ boyunca ihtiyaç duyulan kaynakların ayrılması ve başka hiçbir IP trafiğinin ayrılmış bant genişliğini kullanamayacağının garanti edilmesi için Kaynak Rezervasyon Protokolünü (Resource Reservation Protocol – RSVP ) kullanır.

Bu modele göre ağda bulunan her yönlendirici IntServ uygulamak zorundadır ve iletim garantisi gerektiren her uygulama, uygulamaları çalıştıran uç noktalar da dâhil olmak üzere rezervasyon yaptırmak zorundadır. Bant genişliği belirli bir uygulama için ayrıldığında, başka bir uygulama için yeniden atanamaz. Böylece IntServ, sınırlı ölçeklenebilirliğe ve yüksek miktarda ağ kaynak tüketimine sahiptir. Bu durum IntServ’in en büyük dezavantajıdır. Çünkü bakımı gereken çok sayıda RSVP akışı olması nedeniyle binlerce veya milyonlarca akışa sahip olabilecek büyük ağlarda iyi ölçeklenemez.
Çalışma yapısına göre uygulamalar ağdan kaynak için rezervasyon talep eder ve ağ cihazları, ağ kaynaklarının paketleri kabul edebildiğinden emin olmak için paket akışını izler. Gönderici ve alıcı arasındaki yönlendirici cihazlar, uygulama tarafından yapılan rezervasyon talebinin kabul edilip edilemeyeceğini belirler. Reddedilen rezervasyon talepleri alıcıya bildirilir. Aksi takdirde trafiğin alıcıya yönlendirilmesi gerekir. Böylece bu modelde, yönlendiriciler trafik akışının özelliklerini hatırlar ve ayrıca denetler.
Diferansiyel Servisler (Differentiated Services – DiffServ)
DiffServ, Best-Effort ve IntServ modellerinin sınırlamalarını ele almak için geliştirilmiş ve trafiği farklılaştırarak QoS hizmetini sağlayan bir modeldir. Yüksek düzeyde ölçeklendirilebilir yapıya sahiptir. Trafiğin belirli bir kısmına daha yüksek kalitede hizmet sağlamaya çalışmak yerine, değişen trafik akışına bağlı olarak mümkün olan en iyi hizmeti sunmaya çalışır. DiffServ modeli en popüler ve en yaygın olarak kullanılan QoS modelidir.
DiffServ, yönlendiriciler gibi ağ öğelerinin farklı önceliklere sahip birden çok trafik sınıfına hizmet verecek şekilde yapılandırıldığı bir QoS modelidir. Ağ içerisinde bulunan cihazlardan bağımsız olarak tanımlanır ve sıraya alma, önceliklendirme gibi teknikleri pakete uygulamak için Hop-by-Hop davranışı kullanılır. Bu aşamada DiffServ uçtan uca bir QoS çözümü olarak tanımlanamaz. DiffServ içerisinde bir rezervasyon protokolüne gerek yoktur yani her bir iletim noktasında sürdürülecek RSVP akışı mevcut değildir. Trafik akışını değiştirerek mevcut ağ ortamında gelişmiş bir hizmet kalitesi sağlamaya çalışır.
DiffServ, IP trafiği bir ağ üzerinden geçerken, ağ cihazlarının her biri paketlere belirlenmiş sınıfları tanımlar. Paketler iş gereksinimlerine veya önceliğe göre ağdaki iletimi sağlayan cihazlar tarafından ihtiyaç duyulan hizmet düzeyi hakkında bilgi verecek şekilde işaretlenir. Böylece her sınıfa farklı bir hizmet düzeyi atanabilir ve bu sınıfa göre paketlere hizmet verilir. DiffServ ile birden çok hizmet seviyesi seçilebilir. Paketlere, sınıflandırma için Farklılaştırılmış Hizmetler Kod Noktası (Differentiated Services Code Point – DSCP) kullanılarak öncelikler atanır. DSCP, öncelik belirleyen bitleri içerir ve toplamda 6 bittir, IP paketinin içinde bulunur.
Örneğin, IP telefon, dosya aktarımı, ses ve görüntü paketlerini içeren trafik gecikmeye karşı çok hassastır, bu nedenle diğer uygulamaların trafiğine göre her zaman yüksek öncelikli işlem görmelidir. Öte yandan e-posta paketleri, büyük bir gecikmeye dayanabilir ve Best-Effort modeli ile hizmet verilebilir. Ayrıca ağda kullanılan önemli uygulamalar dışında, kritik olmayan paketler (YouTube,Facebook) ya yüksek oranda sınırlandırılabilir ya da tamamen engellenebilir. Böylece DiffServ, yüksek öneme sahip paketler içeren trafikteki gecikmeyi azaltacaktır.

Ek olarak, kullanılan ağ mimarisi de QoS’in nasıl uygulandığını etkiler. Diffserv, dağıtılmış bir QoS hizmet modeli olduğu için kaynak tahsisi tüm yönlendiriciler arasında dağıtılır ve yönlendirme sürecinde daha fazla esneklik ve verimlilik sağlar. Kolay konfigüre edebilme, çalıştırma, kullanım ve bakım gibi avantajları da mevcuttur.
DiffServ vs IntServ
DiffServ, trafiği farklılaştırarak ağda QoS sağlayan bir model iken IntServ, bant genişliği rezervasyon tekniğini kullanarak ağda sanal bir devre kuran modeldir. DiffServ, yönlendiricilerdeki durum bilgisini hatırlayan IntServ’in aksine, ağdaki yönlendirici noktalarının akışla ilgili herhangi bir durum bilgisini hatırlamasını gerektirmez. Ayrıca yoğun bir ağda iletim yollarını ayırmak ve durum bilgilerini hatırlamak cihaz için çaba gerektirecektir. Böylece ağ üzerinde IntServ’i uygulamak pratik olarak zor olacaktır. Bu nedenle, IntServ daha küçük yapıya sahip özel ağlar için uygunken, DiffServ geniş yapı ve yoğun trafiğe sahip ağlar için daha uygundur.
Bahsedilen iki QoS modeli birbirini dışlamaz, hatta birbirini tamamlayıcıdır ve bazı özel durumlarda belirli bir ağda iki model birden aynı anda kullanılabilir (IntServ over DiffServ).