Günümüzde kurumlar (ve hatta bireysel telefon aboneleri) IP telefon  ve/veya VoIP sistemlerine geçiş yapıyorlar. Geleneksel yapıya göre bir çok avantajı olan bu geçişin beraberinde getirdiği bir takım sıkıntılar da zaman zaman karşımıza çıkıyor. Bu yazımda bu VoIP problemleri ve olası çözümleri kısaca anlatmaya çalıştım.

1. Paket Kaybı (Packet Loss)

VoIP görüşmelerinde sesin iletimi hızlı olmasından ötürü UDP ile gerçekleştirilir. Bildiğiniz üzere UDP’nin hızlı olmasının nedeni bağlantısız (connectionless) olmasıdır. Dolayısı ile olası bir paket kaybında kayıp paket karşı taraftan geri istenmez, zaten buna da ihtiyaç yoktur. Şöyle ki:

Örneğin karşı tarafa iletilen “Merhaba” kelimesinin ortasındaki “rha” kısmı iletim esnasında kaybolmuş olsun. Karşı taraf bu durumda “Me___ba” olarak duyacaktır. İletişim gerçek zamanlı olduğu için kayıp paketin tekrar istenmesi bu durumu düzeltemeyecektir. En temel VoIP problemlerinden biri olan paket kayıplarının sebepleri ve olası çözümleri şunlardır :

  • Bant Genişliğinde Tıkanıklık. Bu durumda mevcut bant genişliklerinin arttırılması ya da ses paketlerinin iletiminde önceliklendirme yapmak gerekecektir. Önceliklendirme işlemi ses paketlerinin geçtiği tüm ağ cihazlarında (yani uçtan uca) QoS (Quality of Service) tanımları yaparak gerçekleştirilir. 
  • Ağ Cihazlarının Aşırı Yüklenmesi Sonucu Paketleri İletememesi. Mevcut ağ cihazları yetersiz ise veya ağda karşılaşılan anormal trafiklerde (broadcast storm, virüs aktivitesi vb.) bu durum oluşabilir. Ağın optimize edilmesi ya da cihazlar yetersiz ise daha yüksek kapasiteli cihazlar ile değiştirilmesi sorunu ortadan kaldırılabilir. 
  • Kablo, Konnektör Gibi “Layer 1” Hatalarından Kaynaklanan Kayıplar. Kablolama gözden geçirilerek ve ilgili iyileştirmeler yapılarak sorun ortadan kaldırılabilir.
  • Ağ Üzerinde Çok Fazla Değişken Gecikme Durumu Oluşması. Bunu detaylı olarak aşağıda “jitter” başlığında inceleyeceğiz.

İdeal bir ses görüşmesinde paket kaybının < %0.1 olması beklenir.

2. Gecikme (Delay)

Kıtalar arası telefon görüşmesi yaptıysanız fark etmişsinizdir, bizim sesimizin iletilmesi, karşı tarafın bunu duyması ve cevapladığında sesin bize gelmesi normalden uzun sürer. Bu duruma sebep olan şey gecikmedir (latency). Gecikme hepimizin tahmin edebileceği gibi sesin iletimi esnasında geçtiği cihazlardan, uğradığı protokol / kodek / sinyal dönüşümlerinden kaynaklanmaktadır. Dolayısı ile paket anahtarlamalı ağlarda genelde gecikme yaşanması mümkündür. 

Gecikme kaynaklarını şu şekilde özetleyebiliriz: 

  • Kodlama: Sesin analog sinyallerden dijital sinyale dönüşmesi ve karşı tarafta bu işlemin tam tersinin yapılması
  • Paketleme: Dijital ses sinyalinin IP paketlerine dönüştürülmesi ve karşı tarafta bu paketlerin açılarak dijital sinyallere çevrilmesi
  • Serileştirme: Ağ iletişim hatlarına bitlerin verilmesi
  • Yayılma: Paketlerin iletişim hatlarında iletilmesi için geçen süre.
Gecikme (Delay)

Ses ve görüntü iletimi teknolojilerinde milisaniyeler seviyesinde gecikmelerden bahsedebiliriz. İlgili gecikme değerleri ve sonuçları aşağıda bulabilirsiniz : 

  • 0 – 150 ms : Birçok uygulama için kabul edilebilir bir değerdir.
  • 150 – 400  ms : Yine kabul edilebilir bir değerdir fakat kullanıcılar iletişimde bir rahatsızlık hissetmeye başlarlar, dolayısı ile bu seviyenin 150 ms altına indirilmesi önerilir. 
  • 400 ms ve Üstü: Kabul edilemez değerlerdir. Müdahale edilmesi gerekir.

Gecikmeyi de açıkladıktan sonra artık değişken gecikme (jitter) konusuna bakabiliriz. 

3. Değişken Gecikme (Jitter)

WAN arayüzleri üzerinde bulunan çıkış kanalı tamponlarındaki (buffer) kuyruk (queue) gecikmeleri karşı tarafa paketlerin düzgün aralıklarla iletilmesini engeller. Bu duruma değişken gecikme (jitter) adı verilir.

Jitter, alınan paketlerin varlığında bir değişim olarak tanımlanır. Gönderen tarafta, paketler eşit aralıklarla sürekli bir akış halinde gönderilir. Ağ tıkanıklığı, yanlış kuyruklama veya yapılandırma hataları nedeniyle bu sabit akış alınan tarafta düzensiz hale gelebilir.

Değişken Gecikme (Jitter) Durumunda Paket İletimi

Bir ses görüşmesi değişken gecikmeye maruz kaldığında, bu kolayca anlaşılabilir. Eğer konuşmacı “Merhaba, bugün nasılsın?” diye sorarsa dinleyici bunu “Mer…h..aba, bug…..ün n…asılsın?” şeklinde kelimeleri bozulmuş şekilde duyacaktır. Ses paketlerinin alıcı tarafta değişken zamanlarda gelişi, sözcüklerin gecikmeli iletilmesi ve bozulmasına neden olur. Değişken gecikmeye sebep olan şeylerden biri de ağ cihazlarındaki ani tampon kullanımıdır (anlık saturasyonlar). 

İdeal bir ses görüşmesinde değişken gecikme değerinin <=20ms olması beklenir.

Paket kayıpları gibi değişken gecikme problemi de genelde uçtan uca QoS yapılarak halledilebilir. Bu konuyu da bir başka yazımda açıklamaya çalışacağım.