NetUP IPTVProbe

perangkat lunak open source untuk memantau aliran IPTV
Lisensi: GPL (GPLv2, GPLv3)

Kode sumber - iptvprobe_v0.4.tbz2

Pertanyaan seputar IPTVProbe dapat didiskusikan di Forum IPTV NetUP

Catatan perubahan

    Versi 0.4
  • Pembersihan database secara berkala.
  • Pemantauan aliran banyak multikas per probe (kuar).
  • Kebocoran memori pada iptvprobe_server yang diperbaiki.
  • Catatan! Database harus dibuat ulang sepenuhnya ketika memperbarui dari versi sebelumnya.
    Versi 0.3
  • Ditambah dengan pemrosesan permintaan IGMP dan tampilan parameter sesaat IGMP
  • Pembersihan kode, perbaikan bug kecil.
  • Protokol pertukaran data dengan kuar yang diperbarui ke versi baru.
    Versi 0.2
  • Ditambah dengan dukungan Aminet 110 (ppc).
    Versi 0.1
  • Peluncuran perdana.
  • Ditambah dengan pengontrolan paket yang hilang.
  • Ditambah dengan tampilan kecepatan penerimaan paket UDP.

Skema Jaringan

Skema Jaringan

Probe (iptvprobe) dan Tata Letak Operasi Kolektor (Collector Operation Layout)

Skema jaringan

Membangun dan Memasang Perangkat Lunak

Perangkat lunak terdiri dari bagian-bagian berikut ini:

  • Collector (pengumpul) - mengumpulkan data statistik dari kuar. Data statistik yang terkumpul disimpan ke dalam database (mysql)
  • Probe (kuar) - merupakan sebuah aplikasi yang bekerja jarak jauh. Data statistik pada paket IP yang diterima kemudian dikumpulkan oleh probe dan dikirimkan ke collector. Probe terdiri dari modul kernel Linux (netup_netprobe.ko) dan perangkat lunak tingkat pengguna (iptvprobe).
  • Reports subsystem (subsistem laporan) - merupakan serangkaian skrip web untuk memvisualisasi data statistik yang terkumpul.

Membangun dan Menjalankan Collector

Membangun collector:

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

Membuat database:

mysqladmin create iptvprobe
mysql iptvprobe < db.sql

Menjalankan collector:

./iptvprobe_server -l root -s 127.0.0.1

pada contoh berikut, collector menulis data statistik ke dalam database 'iptvprobe' pada host lokal (127.0.0.1)

Membangun iptvprobe

Membangun aplikasi untuk platform x86:

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

Membangun modul kernel Linux untuk platform x86:

cd iptvprobe/kmodule/
make

Membangun modul kernel Linux untuk platform sh4 (IP STB AmiNET 130):

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

Direktori aminet130_bin/ berisi modul kernel Linux yang telah dibangun dan aplikasi tingkat pengguna untuk IP STB AmiNET 130.

Menjalankan Probe

Memuat modul kernel Linux:

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

parameter hook_position menetapkan posisi hook paket IP dari filter jaringan:

0 - memproses semua paket IP yang masuk (kebijakan PREROUTING) 1 - memproses semua paket IP yang keluar (kebijakan POSTROUTING)

Nilai "0" harus diset ketika menjalankan modul pada perangkat klien (contohnya, IP STB AmiNET 130). Apabila pengaktifan modul pada server yang mengirimkan multikast mengalami traffic (sibuk), nilai "1" harus diset.

Perlu dibuat node (simpul) dalam sistem file in /dev dan menjalankan aplikasi iptvprobe ketika modul netup_netprobe.ko berhasil dimuat:

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

Pilihan baris perintah:

-i Sets the multicast address for monitoring
-s Specifies the IP address of the collector
-p Specifies the port for the collector to accept connections from probes
-r Specifies a run identifier

Perintah yang disusun secara lengkap dapat ditemukan dalam reports subsystem.

Reports Subsystem

Untuk menjalankan reports subsystem, perlu menyalin semua skrip web dari iptvprobe/report_sys/ ke folder cgi-bin folder pada server web Anda.

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

perl dan GD harus dipasang pada sistem agar bisa berjalan dengan baik.

Arahkan browser web ke URL berikut ini:

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

di mana "address" adalah alamat dari server web Anda.

Halaman awal berisi daftar probe yang aktif:

Tabel pengaktifan iptvprobe

Kolom "Command to run on probe" berisi perintah yang disusun secara lengkap yang harus dijalankan pada probe.

Tampilan grafik arus multikast bisa dilihat dengan menggunakan tautan "UDP timeline diagram" atau "PCR Arrival Interval". Yang ditunjukkan pada diagram adalah untuk kira-kira 30 detik terakhir.

Dua contoh pengaktifan telah selesai dilakukan Yang pertama dilakukan pada IP STB AmiNET 130 yang terhubung melalui switch (pengalih) SOHO sederhana tanpa dukungan pengintaian IGMP. Yang kedua dilakukan pada IP STB AmiNET 130 yang terhubung melalui switch Cisco catalyst dengan dukungan pengintaian IGMP. Untuk kasus yang pertama, banyak paket IP yang hilang. Diagram berikut ini menggambarkan dua kasus tersebut:

Hasil pengukuran pada kotak atas set IP AmiNET 130
Hasil pengukuran pada kotak atas set IP AmiNET 130

Penjelasan Diagram

Yang ditunjukkan pada sumbu x adalah untuk kira-kira 15-30 detik terakhir.

Parameter berikut ini ditunjukkan pada sumbu y:.

  • Hitungan paket IP yang tergabung dalam 100 mdet.
  • Jumlah byte yang tergabung dalam 100 mdet.
  • Garis merah menunjukkan paket IP yang hilang. Puncak ditampilkan pada diagram jika ditemukan adanya "ID paket IP" yang terputus. NIlai 0 berarti tidak ditemukan adanya paket yang hilang.

Deskripsi Database

Tabel SQL Deskripsi
pengaktifan Daftar pengaktifan. Setiap pengaktifan dikenali dengan sebuah angka yang unik.
data_ip Paket IP yang terdeteksi oleh probe. Waktu kedatangan paket IP (label waktu) disimpan dalam satuan nano detik. ID paket (header_id) juga disimpan
data_ts Transport Stream (TS) / Paket Aliran Transpor MPEG terdeteksi oleh probe. Nilai-nilai berikut yang disimpan: PID, PTS/DTS/PCR, nilai penghitung (cont_counter)
stat_bandwidth Statistik yang dikelompokkan

Pemantauan IGMP

Karena iptvprobe v0.3, permintaan IGMP yang dikirim dan diterima oleh IP STB bisa dilacak oleh probe. Label waktu dari paket grup terakhir sebelum meninggalkan grup dan paket pertama setelah bergabung juga direkam. Data ini bisa digunakan untuk mengevaluasi kinerja peralatan jaringan yang memproses permintaan IGMP dan pengintaian IGMP.

Di bawah ini adalah contoh dari fungsi tersebut, dengan IP STB Aminet 130 untuk probe dan NetUP Middleware untuk collector. Cisco Catalyst 3560 digunakan sebagai komutator dengan dukungan pengintaian IGMP, dan Cisco Catalyst C3550-12T sebagai peminta IGMP.

Saluran TV dialihkan pada IP STB. Pada saat itu, STB mengirimkan permintaan IGMP untuk meninggalkan grup multikast 224.121.0.4 dan kemudian yang lainnya bergabung dengan grup di 224.121.0.3. Permintaan ini direkam oleh probe dan ditampilkan dalam antarmuka web bersama-sama dengan label waktu:

NetUP's IPTVProbe, penjangkaan IGMP

Item yang kami maksudkan tercakup dalam bingkai biru. Jelaslah bahwa setelah IGMP meninggalkan permintaan ke grup multikast di 224.121.0.4, STP terus menerima paket yang dikirimkan ke grup yang disebutkan selama 4996.2 mdet berikutnya. Keterlambatan antar permintaan IGMP (umumnya ditentukan oleh perangkat lunak STB) adalah 12,0 mdet.

Secara keseluruhan, waktu total pengalihan saluran TV pada tingkat jumlah permintaan IGMP adalah sampai dengan 92 milidetik. Keterlambatan aktual sampai dipilih saluran baru yang muncul di layar TV tergantung pada banyak parameter, termasuk buffering (penyanggaan) MPEG, sinkronisasi audio/video, dll., dan bisa mencapai 1 detik atau bahkan lebih.

Di samping itu, STB telah menerima paket dari kedua grup multikast selama kurang lebih 5 detik, sehingga membuang lebih banyak bandwith. Untuk menghindari kerugian semacam itu, komutator harus dikonfigurasikan ke peninggalan spontan. Hal ini dilakukan sebagaimana berikut:

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

Ketika dikonfigurasi dengan cara seperti ini, komutator akan mematikan aliran data secara instan untuk grup tidak digunakan. Hasilnya ditunjukkan dalam bingkai merah:. Bisa dilihat bahwa setelah permintaan peninggalan "IGMPv2: Leave Group 224.121.0.11" STB tidak menerima paket untuk grup 224.121.0.11. Oleh karena itu, pada saat apapun STB menerima paket dari satu saluran saja.

Untuk perekaman parameter sesaat yang benar pada permintaan IGMP, antarmuka jaringan harus diset ke daerah promisc sebelum mengaktifkan probe pada STB:

# ifconfig eth0 promisc

Daftar Tugas.

  • Pengembangan diagram (skala, penggantian, dsb.)
  • Diagram kerlipan PCR atau "PCR jitter", diagram-diagram lain
  • Bentuk biner probe untuk tipe IP STB yang bervariasi
  • Monitor ketersediaan probe untuk pengelolaan jaringan




Get Adobe Flash player