Menjelajahi mesin VoIP Mediastreamer2. Bagian 8

Materi artikel diambil dari saya saluran Zen.

Menjelajahi mesin VoIP Mediastreamer2. Bagian 8

Struktur paket RTP

Terakhir Artikel kami menggunakan Hiu melakukan penangkapan paket RTP yang dipertukarkan antara penerima dan pemancar kami. Nah, kali ini kita akan mengecat elemen paket dengan warna berbeda dan membicarakan tujuannya.

Mari kita lihat paket yang sama, tetapi dengan margin berwarna dan label penjelasan:
Menjelajahi mesin VoIP Mediastreamer2. Bagian 8

Di bagian bawah daftar, byte yang membentuk paket RTP diwarnai, dan ini pada gilirannya adalah muatan paket UDP (headernya dilingkari hitam). Latar belakang berwarna menunjukkan byte dari header RTP, dan blok data yang berisi muatan paket RTP disorot dengan warna hijau. Data disajikan dalam format heksadesimal. Dalam kasus kami, ini adalah sinyal audio yang dikompresi menurut u-law (mu-law), yaitu. satu sampel memiliki ukuran 1 byte. Karena kami menggunakan kecepatan pengambilan sampel default (8000 Hz), pada kecepatan paket 50 Hz, setiap paket RTP harus berisi muatan 160 byte. Kita akan melihat ini dengan menghitung byte di area hijau, harus ada 10 baris.

Menurut standar, jumlah data dalam payload harus kelipatan empat, atau dengan kata lain, harus berisi bilangan bulat kata empat byte. Jika payload Anda tidak sesuai dengan aturan ini, maka Anda perlu menambahkan byte bernilai nol ke akhir payload dan mengatur bit Padding. Bit ini terletak di byte pertama dari header RTP dan berwarna pirus. Perhatikan bahwa semua byte payload adalah 0xFF, seperti apa keheningan u-law itu.

Header paket RTP terdiri dari 12 byte wajib, tetapi dalam dua kasus bisa lebih panjang:

  • Ketika sebuah paket membawa sinyal audio yang diperoleh dengan mencampurkan sinyal dari beberapa sumber (stream RTP), maka setelah 12 byte pertama dari header terdapat tabel dengan daftar pengidentifikasi sumber yang muatannya digunakan untuk membuat muatan paket ini. Dalam hal ini, di empat bit terbawah dari byte pertama dari header (field Jumlah pengidentifikasi sumber yang berkontribusi) menunjukkan jumlah sumber. Ukuran bidang adalah 4 bit, sehingga tabel dapat berisi hingga 15 pengidentifikasi sumber. Masing-masing menempati 4 byte. Tabel ini digunakan saat menyiapkan panggilan konferensi.

  • Ketika judul memiliki ekstensi . Dalam hal ini, bit diatur dalam byte pertama dari header X. Di header yang diperluas, setelah tabel peserta (jika ada), ada header ekstensi satu kata, diikuti dengan kata ekstensi. Ekstensi adalah kumpulan byte yang dapat Anda gunakan untuk mentransfer data tambahan. Standar tidak menentukan format data ini - bisa apa saja. Misalnya, mungkin ada beberapa pengaturan tambahan untuk perangkat yang menerima paket RTP. Namun, untuk beberapa aplikasi, standar tajuk yang diperluas telah dikembangkan. Ini dilakukan, misalnya, untuk komunikasi dalam standar ED-137 (Standar Interoperabilitas untuk Komponen ATM VoIP).

Sekarang mari kita lihat bidang tajuk lebih terinci. Di bawah ini adalah gambar kanonik dengan struktur tajuk RTP, yang juga tidak dapat saya tolak dan dicat dengan warna yang sama.

Menjelajahi mesin VoIP Mediastreamer2. Bagian 8
VER β€” nomor versi protokol (versi 2 saat ini);

P - bendera yang disetel jika paket RTP dilengkapi dengan byte kosong di bagian akhir;

X - tandai bahwa tajuk diperpanjang;

CC β€” berisi jumlah pengidentifikasi CSRC mengikuti tajuk konstanta (setelah kata 1..3), tabel tidak ditampilkan pada gambar;

M β€” penanda awal bingkai atau keberadaan ucapan di saluran (jika detektor jeda ucapan digunakan). Jika penerima tidak memiliki detektor jeda ucapan, maka bit ini akan disetel secara permanen;

PT TYPE - menentukan format muatan;

Nomor urut - nomor paket, digunakan untuk memulihkan urutan di mana paket diputar, karena situasi sebenarnya adalah ketika paket dapat mencapai penerima dalam urutan pengiriman yang salah. Nilai awal harus acak, hal ini dilakukan agar jika aliran RTP dienkripsi akan sulit untuk diretas. Juga, bidang ini memungkinkan Anda untuk mendeteksi paket yang terlewat;

Timestamp - cap waktu. Waktu diukur dalam sampel sinyal, mis. jika sebuah burst berisi 160 sampel, maka timestamp dari burst berikutnya akan menjadi 160 lebih.Nilai awal dari timestamp harus acak;

SSRC β€” pengidentifikasi sumber paket, harus unik. Lebih baik membuatnya secara acak sebelum memulai aliran RTP.

Jika Anda mengembangkan pengirim atau penerima paket RTP Anda sendiri, Anda harus melihat paket Anda lebih dari satu kali untuk meningkatkan produktivitas, saya sarankan Anda mempelajari cara menggunakan pemfilteran paket di TShark, ini memungkinkan Anda untuk menangkap hanya paket-paket yang menarik bagi Anda. Di lingkungan di mana lusinan perangkat RTP beroperasi di jaringan, ini sangat berharga. Di baris perintah TShark, opsi pemfilteran ditentukan dengan opsi "-f". Kami menggunakan opsi ini ketika kami ingin menangkap paket dari port 8010:
-f "udp port 8010"
Parameter penyaringan pada dasarnya adalah seperangkat kriteria yang harus dipenuhi oleh paket "tertangkap". Kondisi tersebut dapat memeriksa alamat, port, nilai byte tertentu dalam paket. Kondisi dapat digabungkan dengan operasi logis "DAN", "ATAU", dll. Alat yang sangat ampuh.

Jika Anda ingin melihat dinamika perubahan bidang secara berkelompok, Anda perlu menduplikasi hasilnya Hiu ke file, seperti yang ditunjukkan pada artikel terakhir, dengan meneruskan output Hiu di pintu masuk tee. Selanjutnya, buka file log dengan kurang, vim atau alat lain yang dapat dengan cepat bekerja dengan file teks besar dan mencari string, Anda dapat mengetahui semua nuansa perilaku bidang paket dalam aliran RTP.

Jika Anda perlu mendengarkan sinyal yang dikirimkan oleh aliran RTP, maka Anda perlu menggunakan versinya Hiu dengan antarmuka visual Wireshark. Dengan manipulasi mouse sederhana, Anda dapat mendengarkan dan melihat bentuk gelombang sinyal. Tetapi dengan satu syarat - jika dikodekan dalam format u-law atau a-low.

Berikutnya Artikel kami akan membuat interkom dupleks dengan Anda. Siapkan sepasang headset dan satu lawan bicara.

Sumber: www.habr.com

Tambah komentar