Uurime VoIP mootorit Mediastreamer2. Osa 8

Artikli materjal on saadud minu Dzen-kanalist.

Uurime VoIP mootorit Mediastreamer2. Osa 8

RTP-paketi struktuur

Eelmisel artiklis me kasutasime TShark RTP-pakettide salvestamiseks, mida vahetasid meie vastuvÔtja ja saatja. Sel korral vÀrvime paketi elemendid eri vÀrvidesse ja rÀÀgime nende tÀhendustest.

Vaatame sama paketti, kuid nĂŒĂŒd vĂ€rviliste vĂ€ljade ja selgitavate mĂ€rkustega:
Uurime VoIP mootorit Mediastreamer2. Osa 8

Loendi alumises osas on vĂ€rvitud pĂ€id, mis koosnevad RTP-paketist, mis on omakorda UDP-paketi kasulik koormus (tema pealkiri on musta joonega ĂŒmber joonistatud). VĂ€rviliste taustadega on tĂ€histatud RTP-pealkirja bait ja rohelise vĂ€rviga on esile tĂ”stetud andmeplokk, mis sisaldab RTP-paketi kasulikku koormust. Andmed on esitatud kuhexakena. Meie puhul on see heli signaal, mis on kompresseeritud u-laki (mĂŒ-laki) seaduse jĂ€rgi, st ĂŒks proov on 1 bait. Kuna kasutasime vaikeseadistuse mustriga, mis on mÀÀratud 8000 Hz, siis 50 Hz pakettide sagedusega peaks iga RTP-pakett sisaldama 160 bait kasulikku koormust. Just seda me nĂ€eme, kui loeme rohelise ala baitsid, neid peab olema 10 rida.

Standardi kohaselt peab kasuliku koormuse andmete arv olema nelja jagatav, teisiti öeldes, see peab sisaldama tĂ€isarv nelja baitiseid sĂ”nu. Kui juhtub, et teie kasulik koormus ei vasta sellele reeglile, tuleb kasuliku koormuse lĂ”ppu lisada nullvÀÀrtustega baits ja seada Padding (Lisa). See biit asub RTP-pealkirja esimeses baitis, mis on vĂ€rvitud tĂŒrkiissinisega. Pange tĂ€hele, et kĂ”ik kasuliku koormuse baitsid on vÀÀrtusega 0xFF — nii vĂ€lja nĂ€eb vaikus u-laki formaat.

RTP-paketi pealkiri koosneb 12 kohustuslikust baitist, kuid kahel juhul vÔib see olla pikem:

  • Kui pakett edastab helisignaali, mis on saadud signaalide segamise teel mitmest allikast (RTP-voogudest), siis pĂ€rast esimese 12 baitise pealkirja asub tabel, kus on loetletud allikate identifikaatorid, kelle kasulikku koormust on kasutatud selle paketi kasuliku koormuse loomiseks. Samal ajal asub pealkirja esimeses baitis madalamates neljas bitides (vĂ€ljal Kaasaaitavate allikate identifikaatorite arv) mÀÀrab allikate arvu. VĂ€li on 4 bitti suurune, seega vĂ”ib tabel sisaldada kuni 15 allika identifikaatorit. IgaĂŒks neist vĂ”tab 4 baiti. Seda tabelit kasutatakse konverentsikĂ”nede korraldamisel.

  • Kui pealkirjal on laiend. Sel juhul seadistatakse pealkiru esimeses bitti. X. Laiendatud pealkirjas, pĂ€rast osalejate tabelit (kui need on olemas), on laiendatud pealkiri, mille suurus on ĂŒks sĂ”na, ning sellele jĂ€rgneb laienduse sĂ”nad. Laiendus on baitide kogum, mida saate kasutada tĂ€iendavate andmete edastamiseks. Standard ei mÀÀra nende andmete formaati - see vĂ”ib olla mis tahes. NĂ€iteks vĂ”ivad need olla tĂ€iendavad seaded seadmele, mis saab RTP-pakette. MĂ”ningate rakenduste jaoks on selle jaoks siiski vĂ€lja töötatud laiendatud pealkirja standardid. NĂ€iteks on see tehtud sidevahendite jaoks standardis. ED-137 (Interoperability Standards for VoIP ATM Components).

NĂŒĂŒd vaatame pealkirjavĂ€lju lĂ€hemalt. Allpool on kanoniline joonis RTP-pealkirja struktuurist, mille ma samuti ei suutnud vĂ€rviliseks teha.

Uurime VoIP mootorit Mediastreamer2. Osa 8
VER — protokolli versiooni number (praegune versioon 2);

P — lipp, mis seadistatakse juhtudel, kui RTP-pakett tĂ€iendatakse tĂŒhjade baitidega lĂ”pus;

X — lipp, mis nĂ€itab, et pealkiri on laiendatud;

CC — nĂ€itab CSRC-identifikaatorite arvu, mis jĂ€rgneb pĂŒsipealkirjale (pĂ€rast sĂ”nu 1..3), joonisel tabel puudub;

M — kaadri alguse vĂ”i kĂ”ne olemasolu mĂ€rgis (kui kasutatakse kĂ”ne pauside tuvastajat). Kui vastuvĂ”tjal ei ole kĂ”ne pauside tuvastajat, siis peab see bitt olema pidevalt seadistatud;

PTYPE — nĂ€itab koormuse vormingut;

JĂ€rjesta number — paketi number, kasutatakse pakettide esitamise jĂ€rjekorra taastamiseks, kuna tegelikult vĂ”ivad paketid jĂ”uda vastuvĂ”tjasse mitte selles jĂ€rjekorras, milles need saadeti. AlgvÀÀrtus peaks olema juhuslik, seda tehakse selleks, et juhul, kui RTP-voogu rakendatakse krĂŒpteerimise, oleks selle purustamine raskendatud. Samuti vĂ”imaldab see vĂ€li avastada pakettide puudumisi;

Aegtemp — ajastustempel. Aeg mÔÔdetakse signaalinĂ€idetes, st kui pakett sisaldab 160 nĂ€idet, siis jĂ€rgmise paketi ajastustempel on suurem 160 vĂ”rra. Ajastuse algvÀÀrtus peaks olema juhuslik;

SSRC — paketi allika identifikaator, see peab olema ainulaadne. Selle genereerimine juhuslikult enne RTP-voo kĂ€ivitamist on parem.

Kui arendate enda RTP-pakettide saatjat vĂ”i vastuvĂ”tjat, peate korduvalt vaatama oma pakette tĂ”hususe suurendamiseks. Soovitan Ă”ppida TSharki pakettide filtreerimise kasutamist, see vĂ”imaldab teil jÀÀdvustada ainult neid pakette, mis teid huvitavad. Olukordades, kus vĂ”rgus töötab kĂŒmneid RTP-seadmeid, on see vĂ€ga vÀÀrtuslik. TSharki kĂ€sureas mÀÀratakse filtreerimise parameetrid valikuga "-f". Kasutasime seda valikut, kui soovisime jÀÀdvustada pakette 8010 pordilt:
-f "udp port 8010"
Filtreerimise parameetrid on oma olemuselt kriteeriumide kogum, millele "jÀlgitav" pakett peab vastama. Tingimus vÔib kontrollida aadressi, sadamat, teatud baitide vÀÀrtust paketis. Tingimusi saab kombineerida loogiliste operatsioonidega "JA", "VÔi" jne. VÀga vÔimas tööriist.

Kui soovite vaadata pakettide vĂ€ljade dĂŒnaamikat, peate vĂ€ljundi dubleerima TShark faili, nagu eelmisel artiklis nĂ€idatud, kasutades vĂ€ljundi edastamist TShark sisse tee. Edasi avage logifail kasutades less, vim vĂ”i mĂ”nda muud tööriista, mis suudab kiiresti töötada suurte tekstifailidega ja teha ridade otsingut, saate vĂ€lja selgitada kĂ”ik paketivĂ€li kĂ€itumise nĂŒansid RTP-voos.

Kui peate kuulama RTP-voo edastatud signaali, siis tuleb kasutada versiooni TShark visuaalse liidesega Wireshark. Lihtsate hiiremanipulatsioonide abil saab seal kuulata, nĂ€ha signaali osilloogrammi. Kuid ĂŒhe tingimuse korral — kui see on kodeeritud u-law vĂ”i a-low vormingus.

JĂ€rgmises artiklis teeme koos teiega duplex-kĂ”nesĂŒsteemi. Varuge paar peakomplekti ja ĂŒks vestluspartner.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster