Kode sumber - iptvprobe_v0.4.tbz2
Pertanyaan seputar IPTVProbe dapat didiskusikan di Forum IPTV NetUP
Perangkat lunak terdiri dari bagian-bagian berikut ini:
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 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.
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.
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:
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:
Yang ditunjukkan pada sumbu x adalah untuk kira-kira 15-30 detik terakhir.
Parameter berikut ini ditunjukkan pada sumbu y:.
| 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 |
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:
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