Njelajah mesin Mediastreamer2 VoIP. Bagean 8

Materi artikel dijupuk saka sandi saluran zen.

Njelajah mesin Mediastreamer2 VoIP. Bagean 8

Struktur paket RTP

Ing pungkasan artikel kita nggunakake TShark dijupuk paket RTP diijolke antarane panrima lan pemancar kita. Inggih, iki kita bakal nglukis unsur-unsur paket kanthi warna sing beda-beda lan ngomong babagan tujuane.

Ayo goleki paket sing padha, nanging kanthi kolom lan cathetan panjelasan:
Njelajah mesin Mediastreamer2 VoIP. Bagean 8

Ing sisih ngisor dhaptar yaiku bita sing nggawe paket RTP, sing dadi muatan paket UDP (header kasebut digarisake kanthi ireng). Latar mburi werna nuduhake bait header RTP, lan ijo nuduhake pamblokiran data sing ngemot payload saka paket RTP. Data ing kana ditampilake ing format heksadesimal. Ing kasus kita, iki minangka sinyal audio sing dikompres miturut u-law (mu-law), i.e. siji sampel ukuran 1 byte. Amarga kita nggunakake tingkat sampling standar (8000 Hz), kanthi tingkat paket 50 Hz, saben paket RTP kudu ngemot 160 bita muatan. Kita bakal weruh iki kanthi ngetung bita ing wilayah ijo, kudu ana 10 baris.

Miturut standar, jumlah data ing payload kudu kaping papat, utawa ing tembung liyane kudu ngemot nomer integer tembung papat-bait. Yen kedadeyan beban sampeyan ora ngetutake aturan iki, sampeyan kudu nambah bita kanthi nilai nol menyang mburi muatan lan nyetel bit Padding. Bit iki dumunung ing byte pisanan saka header RTP lan werna pirus. Elinga yen kabeh bait payload duweni nilai 0xFF - iki sing katon bisu ing format u-law.

Header paket RTP kasusun saka 12 bita sing dibutuhake, nanging ing rong kasus bisa luwih dawa:

  • Nalika paket nggawa sinyal audio sing dipikolehi kanthi nyampur sinyal saka sawetara sumber (stream RTP), banjur sawise 12 byte header pisanan ana tabel kanthi dhaptar pengenal sumber sing payload digunakake kanggo nggawe muatan paket iki. Ing kasus iki, ing ngisor papat bit saka byte pisanan header (field Kontribusi identifier sumber count) nomer sumber dituduhake. Ukuran lapangan 4 bit, supaya tabel bisa ngemot nganti 15 pengenal sumber. Saben uwong njupuk 4 bait. Tabel iki digunakake nalika ngatur telpon konferensi.

  • Nalika judhul wis extension. Ing kasus iki, bit ing byte pisanan header disetel X. Ing header ditambahi, sawise tabel peserta (yen ana), ana header ekstensi siji-tembung, banjur tembung ekstensi. Ekstensi minangka sakumpulan bita sing bisa digunakake kanggo nransfer data tambahan. Standar ora nemtokake format data iki - bisa apa wae. Contone, iki bisa dadi sawetara setelan tambahan kanggo piranti sing nampa paket RTP. Nanging, kanggo sawetara aplikasi, standar header lengkap wis dikembangake. Iki rampung, contone, kanggo peralatan komunikasi ing standar ED-137 (Standar Interoperabilitas kanggo Komponen ATM VoIP).

Saiki ayo goleki kolom header kanthi luwih rinci. Ing ngisor iki ana gambar kanonik kanthi struktur header RTP, sing uga ora bisa nolak lan dicet kanthi warna sing padha.

Njelajah mesin Mediastreamer2 VoIP. Bagean 8
TUTUP Super Kumpulan Tembung-tembung - nomer versi protokol (versi saiki 2);

P - gendΓ©ra sing disetel ing kasus nalika paket RTP ditambah karo bait kosong ing pungkasan;

X - gendera sing header ditambahi;

CC - ngemot nomer pengenal CSRC sawise header pancet (sawise tembung 1..3), tabel ora ditampilake ing tokoh;

M - panandha wiwitan pigura utawa ananΓ© wicara ing saluran (yen detektor jeda wicara digunakake). Yen panrima ora ngemot detektor ngaso wicara, bit iki kudu disetel kanthi permanen;

PTYPE - nuduhake format payload;

Nomer urutan - nomer paket, digunakake kanggo mulihake urutan puter maneh paket, wiwit kahanan nyata nalika paket bisa tekan panrima ing urutan beda saka kang padha dikirim. Nilai awal kudu acak; iki ditindakake supaya yen enkripsi stream RTP digunakake, bakal angel dicopot. Lapangan iki uga ngidini sampeyan ndeteksi tetes paket;

Wektu - stempel wektu. Wektu diukur ing sampel sinyal, i.e. yen paket ngemot 160 conto, banjur timestamp saka paket sabanjurΓ© bakal luwih gedhe dening 160. Nilai awal timestamp kudu acak;

SSRC - pengenal sumber paket, kudu unik. Iku luwih apik kanggo generate acak sadurunge miwiti stream RTP.

Yen sampeyan ngembangake pemancar utawa panrima paket RTP dhewe, sampeyan kudu ndeleng paket sampeyan luwih saka sepisan, supaya bisa nambah produktivitas, aku nyaranake sampeyan nguasai panggunaan panyaring paket ing TShark, sampeyan mung bisa nangkep paket kasebut. sing menarik kanggo sampeyan. Ing kahanan ing ngendi Welasan piranti RTP operate ing jaringan, iki banget terkenal. Ing baris printah TShark, paramèter nyaring ditemtokake karo pilihan "-f". Kita nggunakake pilihan iki nalika kita pengin njupuk paket saka port 8010:
-f "udp port 8010"
Paramèter nyaring iku ateges pesawat saka kritéria sing "kejiret" paket kudu ketemu. Kondisi kasebut bisa mriksa alamat, port, utawa nilai bait tartamtu ing paket kasebut. Kondisi bisa digabung nggunakake operasi logis "AND", "OR", etc. Alat sing kuat banget.

Yen sampeyan pengin ndeleng dinamika owah-owahan lapangan ing kumpulan, sampeyan kudu duplikat output TShark menyang file, kaya sing dituduhake ing artikel sadurunge, nggunakake transfer output TShark ing ngleboke tee. Sabanjure, bukak file log nggunakake kurang, vim utawa alat liyane sing bisa cepet bisa karo file teks ageng lan nelusuri strings, sampeyan bisa mangerteni kabeh nuansa saka prilaku kothak paket ing stream RTP.

Yen sampeyan kudu ngrungokake sinyal sing dikirim dening stream RTP, sampeyan kudu nggunakake versi TShark karo antarmuka visual Wireshark. Kanthi manipulasi prasaja nganggo mouse, sampeyan bisa ngrungokake lan ndeleng oscillogram sinyal. Nanging ing siji kondisi - yen dienkode ing u-hukum utawa format a-low.

Sabanjure artikel Kita bakal nggawe interkom duplex karo sampeyan. Simpenan ing saperangan headset lan siji interlocutor.

Source: www.habr.com

Add a comment