NetUP IPTVProbe

IPTV akışlaını izleme
lisansı için açık kaynak yazılım: GPL (GPLv2, GPLv3)

Kaynak kodu - iptvprobe_v0.4.tbz2

IPTVProbe ile ilgili sorular NetUP's IPTV Forumunda tartışılabilir

Günlük değiştirme

    Sürüm 0,4
  • Periyodik veritabanı temizleme.
  • Prob başına birden fazla çoğa gönderim akışlarını izleme.
  • Sabit iptvprobe_server belleğı kaçağı.
  • Not! Önceki sürümlerden yükseltildiğinde veritabanı tam olarak yeniden oluşturulmalıdır.
    Sürüm 0,3
  • IGMP talepleri işleniyor ve geçici IGMP parametrelerinin görüntüsü eklendi.
  • Kod temizleme, küçük arıza düzeltmeleri.
  • Yeni sürüme güncellenen problar ile birlikte veri değişimi protokolü.
    Sürüm 0,2
  • Aminet 110 (ppc) desteği eklendi.
    Sürüm 0,1
  • Birinci sürüm.
  • Kayıp paketlerin kontrolü eklenir.
  • UDP paketleri alım hızı görüntüsü eklendi.

Ağ Şeması

Ağ şeması

Prob (iptvprobe) ve Kolektör Çalışması Yerleşimi

Ağ şeması

Yazılımı Oluşturma ve Kurma

Yazılım aşağıdaki kısımlardan oluşur:

  • Kolektör - problardan istatistiki bilgi toplar. Toplanan istatistiki bilgiler veritabanında (mysql) saklanır.
  • Prob - uzaktan çalışan bir uygulamadır. Alınan IP paketlerindeki istatistiki bilgiler prob tarafından toplanır ve kolektöre gönderilir. Prob, Linux modül çekirdeğinden (netup_netprobe.ko) ve kullanıcı seviyesindeki yazılımdan (iptvprobe) oluşur.
  • Raporlar alt sistemi - toplanan istatistiki bilgileri görselleştiren web komutlarından oluşur.

Kolektörün Oluşturulması ve Başlatılması

Kolektör oluşturulması:

cd iptvprobe/userver/
cmake --debug-output . -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
make

Veritabanı oluşturma:

mysqladmin create iptvprobe
mysql iptvprobe < db.sql

Kolektörü başlatma:

./iptvprobe_server -l root -s 127.0.0.1

Bu örnekte kolektör istatistikleri localhost (127.0.0.1) üzerinde 'iptvprobe' veritabanına yazar

iptvprobe oluşturma

x86 platformu için uygulama oluşturma:

cd iptvprobe/udaemon/
cmake --debug-output . -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
make

x86 platformu için Linux modül çekirdeği oluşturma:

cd iptvprobe/kmodule/
make

sh4 platformu (IP STB AmiNET 130) için Linux modül çekirdeği oluşturma:

cd iptvprobe/kmodule/
export CROSS_COMPILE=sh4-unknown-linux-gnu-
make ARCH=sh amino130

aminet130_bin/ dizininde daha önceden oluşturulan bir Linux modül çekirdeği ve AmiNET 130 IP STB için bir kullanıcı seviyesi uygulaması bulunmaktadır.

Probun Başlatılması

Linux modül çekirdeğinin yüklenmesi:

cd iptvprobe/kmodule/
insmod netup_netprobe.ko hook_position=0

hook_position parametresi net filtresi için IP paketleri kanca pozisyonunu belirler:

0 - gelen tüm IP paketlerini (PREROUTING politikası) işler 1 - giden tüm IP paketlerini işler (POSTROUTING politikası)

Modülü istemci aygıtında çalıştırmak için "0" değeri ayarlanmalıdır (örneğin, IP STB AmiNET 130). Modülü çoklu gönderi trafiği gönderen bir sunucuda çalıştırmak için "1" değeri ayarlanmalıdır.

/dev dosya sisteminde bir düğüm oluşturulması ve netup_netprobe.ko modülü başarıyla yüklendiğinde iptvpobe uygulamasının başlatılması gereklidir:

mknod /dev/iptvprobe c 61 0
cd iptvprobe/udaemon/
./iptvprobe -i 224.117.117.10 -s 10.1.4.242 -r 5 -p 7700

Komut satırı seçenekleri:

-i İzlemek için çoklu gönderi adresini ayarlar
-s Kolektörün IP adresini belirler
-p Problardan bağlantı kabul etmek için kolektör bağlantı noktasını belirler
-r Çalışma tanımlayıcısını belirler

Tam monte edilen komut raporlama alt sisteminde bulunabilir.

Rapor Alt Sistemi

Rapor alt sistemini çalıştırmak için iptvprobe/report_sys/ adresindeki tüm web komutlarını web sunucunuzun cgi-bin klasörüne kopyalanması gereklidir:

cd iptvprobe/report_sys/
cp *.pl /var/www/localhost/cgi-bin/

Doğru çalışması için perl ve GD sisteminize kurulmalıdır.

Web tarayınıza aşağıdaki URL'yi girin:

http://address/cgi-bin/iptvprobe_runs.pl

burada "address" web sunucunuzun adresidir.

Çalışan prob listesinin bulunduğu sayfayı başlatın:

Çalışan iptvprobe tablosu

"Probda çalıştırma komutu" sütunu probda çalışması gereken tam toplanmış komutu içerir.

Çoklu gönderi akışının grafiksel sunumu "UDP zaman çizelgesi diyagramı" veya "PCR Varış Aralığı" linkleri kullanılarak görüntülenebilir. Yaklaşık olarak son 30 saniye çizelgede gösterilir.

İki örnek çalışması da yapılır. İlki basit bir SOHO anahtarı ile IGMP trafik gözetleme desteği olmadan bağlanan AmiNET 130 IP STB'de yapılır. İkinci çalışma Cisco catalyst anahtarı aracılığıyla IGMP trafik gözetlemesi ile bağlanan AmiNET 130 IP STB'de yapılır. İlk durumda çok sayıda IP paket kaybı vardır. Aşağıdaki çizelgelerde bu iki durum da gösterilmektedir:

AmiNET 130 IP setüstü kutusundaki ölçüm sonuçları
AmiNET 130 IP setüstü kutusundaki ölçüm sonuçları

Çizim Açıklaması

Yaklaşık olarak son 15-30 saniye x ekseninde gösterilir.

Aşağıdaki parametreler y ekseninde gösterilir:

  • 100 msan'de gruplanan IP paketlerinin sayısı.
  • 100 msan'de gruplanan byte sayısı.
  • Kırmızı hat kayıp IP paketlerini gösterir. Eğer "IP paket ID"'sinde kesinti olduğu algılanırsa çizelgede zirve görünür. 0 değeri hiçbir paket kaybı saptanmadığı anlamına gelmektedir.

Veritabanı Açıklaması

SQL tablosu Açıklama
çalışma Liste çalışması. Her çalışma benzeri olmayan bir sayı ile tanımlanır
data_ip Prob ile saptanan IP paketleri. IP paket varış zamanı (zaman pulu) nano saniye cinsinden yüklenir. Aynı zamanda paket ID'si (header_id) yüklenir
data_ts Prob ile saptanan MPEG Nakil Akış (TS) paketleri. Aşağıdaki değerler yüklenir: PID, PTS/DTS/PCR, sayaç değerleri (cont_counter)
stat_bandwidth Gruplanan istatistikler

IGMP izleme

iptvprobe v0.3'den itibaren IP STB ile gönderilen ve alınan IGMP talepleri prob ile takip edilebilir. Bir gruptan ayrılmadan önce son grup paketinin zaman pulları ve bir araya getirildikten sonraki ilk paket de kaydedilir. IGMP taleplerini ve IGMP trafik gözetlemesini işleyen bu veriler ağ cihazının performansını değerlendirmek için kullanılabilir.

Aşağıda prob için Aminet 130 IP STB ve kolektör için NetUP Ara yazılımı ile birlikte bu işlevselliğin bir örneği verilmiştir. Cisco Catalyst 3560, IGMP trafik gözetleme desteği ile birlikte komütatör olarak kullanılmış ve Cisco Catalyst C3550-12T ise IGMP sorgulayıcısı olarak çalışmıştır.

TV kanalları IP STB'de değiştirilmiştir. Şu anda STB bir IGMP talebi göndererek 224.121.0.4 çoklu gönderi grubundan ayrılma talebi verir ve başka bir talep göndererek 224.121.0.3'de gruba katılma talebi verir. Bu talepler prob ile kaydedilir ve zaman pulları ile birlikte web arayüzünde gösterilir:

NetUP'nun IPTVProbe, IGMP zamanlamaları

İlgi alanlarımızın öğeleri mavi çerçeve ile sarmalanmıştır. IGMP talebi 224.121.0.4'de çoklu gönderi grubuna bıraktıktan sonra STB başka bir 4996.2 ms için belirtilen gruba gönderilen paketleri almaya devam ettiği açıktır. IGMP'nin 224.121.0.3 grubuna katılma talebi ile bu grup için alınan ilk paket talep arasındaki zaman farkı 80 ms'ye toplanmıştır. IGMP talepleri arasındaki gecikme (asıl olarak STB yazılımı ile belirlenir) 12.0 ms'dir.

Hepsi bir arada IGMP talepleri seviyesine geçen TV kanalı toplam süresi toplamı 92 milisaniyedir. Yeni seçilen kanal TV ekranında görününceye kadar geçen gerçek gecikme birçok parametreye bağlıdır, bunlara MPEG tamponlaması, ses/video senkronizasyonu vb dahil olup 1 saniyeye kadar ve daha uzun süre sürebilir.

Bunun yanı sıra STB yaklaşık 5 saniye süreyle her iki çoklu gönderi grubundan da paket alır, dolayısıyla ekstra bant genişliği boşa çıkar. Böyle bir kayıptan kaçınmak için komütatör anlık ayrılma için yapılandırılmalıdır. Bu işlem aşağıdaki gibi yapılır:

c3560(config)#ip igmp snooping vlan 1 immediate-leave

Bu şekilde yapılandırırken, komütatör kullanılmayan grup için veri akışını bir an kapatacaktır. Sonuçlar kırmızı çerçevede gösterilmektedir. Şu mesajdan sonra görülebilir "IGMPv2: Leave Group 224.121.0.11" STB, 224.121.0.11 grubu için paket almadı. Dolayısıyla herhangi bir anda STB sadece bir kanalın paketlerini alır.

IGMP taleplerinden oluşan geçici parametrelerin doğru kaydedilmesi için STB'de probu başlatmadan önce ağ arayüzü promisc rejimine ayarlanmalıdır:

# ifconfig eth0 promisc

TODO Listesi

  • Diyagram iyileştirmeleri (ölçek, kaydırma vb.)
  • "PCR titremesi" çizimi, diğer çizimler
  • Prob ikili değeri çeşitli türlerde IP STB'lerini oluşturur
  • Ağ yönetimi için prob kullanılabilirlik monitörü


Get Adobe Flash player