Raksta materiÄls Åemts no mana
RTP pakeŔu struktūra
PagÄtnÄ
ApskatÄ«sim to paÅ”u paketi, bet ar tonÄtiem laukiem un paskaidrojoÅ”Äm piezÄ«mÄm:
Saraksta apakÅ”Ä ir baiti, kas veido RTP paketi, kas savukÄrt ir UDP paketes lietderÄ«gÄ slodze (tÄs galvene ir iezÄ«mÄta melnÄ krÄsÄ). KrÄsaini foni norÄda RTP galvenes baitus, un zaļŔ norÄda datu bloku, kas satur RTP paketes lietderÄ«go slodzi. Dati ir parÄdÄ«ti heksadecimÄlÄ formÄtÄ. MÅ«su gadÄ«jumÄ tas ir audio signÄls, kas saspiests saskaÅÄ ar u-likumu (mu-likumu), t.i. viena parauga izmÄrs ir 1 baits. TÄ kÄ mÄs izmantojÄm noklusÄjuma iztverÅ”anas frekvenci (8000 Hz) ar pakeÅ”u Ätrumu 50 Hz, katrÄ RTP paketÄ ir jÄietver 160 baiti lietderÄ«gÄs slodzes. To mÄs redzÄsim, saskaitot baitus zaļajÄ zonÄ, jÄbÅ«t 10 rindÄm.
SaskaÅÄ ar standartu datu apjomam lietderÄ«gajÄ slodzÄ ir jÄbÅ«t ÄetrkÄrÅ”ai vai, citiem vÄrdiem sakot, jÄsatur Äetru baitu vÄrdu vesels skaitlis. Ja gadÄs, ka jÅ«su krava neatbilst Å”im noteikumam, lietderÄ«gÄs slodzes beigÄs jÄpievieno baiti ar nulles vÄrtÄ«bÄm un jÄiestata aizpildÄ«Å”anas bits. Å is bits atrodas RTP galvenes pirmajÄ baitÄ un ir tirkÄ«za krÄsÄ. Å emiet vÄrÄ, ka visiem derÄ«gÄs slodzes baitiem ir vÄrtÄ«ba 0xFF ā Å”Ädi izskatÄs klusums u-likuma formÄtÄ.
RTP paketes galvene sastÄv no 12 nepiecieÅ”amajiem baitiem, bet divos gadÄ«jumos tÄ var bÅ«t garÄka:
-
Ja paketÄ ir audio signÄls, kas iegÅ«ts, sajaucot signÄlus no vairÄkiem avotiem (RTP straumÄm), tad pÄc pirmajiem 12 galvenes baitiem ir tabula ar avota identifikatoru sarakstu, kuru lietderÄ«gÄs slodzes tika izmantotas Ŕīs paketes lietderÄ«gÄs slodzes izveidoÅ”anai. Å ajÄ gadÄ«jumÄ galvenes pirmÄ baita apakÅ”Äjos Äetros bitos (lauks IeguldÄ«jumu avotu identifikatoru skaits) ir norÄdÄ«ts avotu skaits. Lauka lielums ir 4 biti, tÄpÄc tabulÄ var bÅ«t lÄ«dz 15 avota identifikatoriem. Katrs no tiem aizÅem 4 baitus. Å Ä« tabula tiek izmantota, organizÄjot konferences zvanu.
-
Ja nosaukumam ir paplaÅ”inÄjums. Å ajÄ gadÄ«jumÄ ir iestatÄ«ts galvenes pirmajÄ baitÄ esoÅ”ais bits X. PaplaÅ”inÄtajÄ galvenÄ aiz dalÄ«bnieku tabulas (ja tÄda ir) ir viena vÄrda paplaÅ”inÄjuma galvene, kam seko paplaÅ”inÄjuma vÄrdi. PaplaÅ”inÄjums ir baitu kopa, ko varat izmantot papildu datu pÄrsÅ«tÄ«Å”anai. Standarts nenorÄda Å”o datu formÄtu ā tas var bÅ«t jebkas. PiemÄram, tie varÄtu bÅ«t daži papildu iestatÄ«jumi ierÄ«cei, kas saÅem RTP paketes. TomÄr dažÄm lietojumprogrammÄm ir izstrÄdÄti paplaÅ”inÄti galvenes standarti. Tas tiek darÄ«ts, piemÄram, standarta sakaru iekÄrtÄm ED-137 (VoIP bankomÄta komponentu savietojamÄ«bas standarti).
Tagad apskatÄ«sim galvenes laukus sÄ«kÄk. ZemÄk ir kanonisks attÄls ar RTP galvenes struktÅ«ru, kam es arÄ« nevarÄju pretoties un krÄsoju tÄdÄs paÅ”Äs krÄsÄs.
VER ā protokola versijas numurs (paÅ”reizÄjÄ versija 2);
P ā karodziÅÅ”, kas tiek uzstÄdÄ«ts gadÄ«jumos, kad RTP pakete beigÄs tiek papildinÄta ar tukÅ”iem baitiem;
X ā karodziÅÅ”, ka galvene ir pagarinÄta;
CC ā satur CSRC identifikatoru skaitu aiz konstantes galvenes (pÄc vÄrdiem 1..3), tabula nav parÄdÄ«ta attÄlÄ;
M ā kadra sÄkuma marÄ·ieris vai runas klÄtbÅ«tne kanÄlÄ (ja tiek izmantots runas pauzes detektors). Ja uztvÄrÄjs nesatur runas pauzes detektoru, tad Å”is bits ir jÄiestata pastÄvÄ«gi;
PTYPE ā norÄda lietderÄ«gÄs slodzes formÄtu;
SecÄ«bas numurs ā paketes numurs, ko izmanto, lai atjaunotu pakeÅ”u atskaÅoÅ”anas secÄ«bu, jo reÄlÄ situÄcija ir tad, kad paketes var sasniegt saÅÄmÄju citÄ secÄ«bÄ, nekÄ tÄs tika nosÅ«tÄ«tas. SÄkotnÄjai vÄrtÄ«bai jÄbÅ«t nejauÅ”ai; tas tiek darÄ«ts, lai, ja tiek izmantota RTP straumes Å”ifrÄÅ”ana, to bÅ«tu grÅ«ti uzlauzt. Å is lauks arÄ« ļauj noteikt pakeÅ”u kritumus;
Timestamp - laika zÄ«mogs. Laiks tiek mÄrÄ«ts signÄlu paraugos, t.i. ja paketÄ ir 160 paraugi, tad nÄkamÄs paketes laikspiedols bÅ«s par 160 lielÄks. Laika zÄ«moga sÄkuma vÄrtÄ«bai jÄbÅ«t nejauÅ”ai;
SSRC ā pakotnes avota identifikators, tam jÄbÅ«t unikÄlam. Pirms RTP straumes palaiÅ”anas labÄk to Ä£enerÄt nejauÅ”i.
Ja jÅ«s izstrÄdÄjat savu RTP pakeÅ”u raidÄ«tÄju vai uztvÄrÄju, jums bÅ«s jÄskatÄs savas paketes vairÄk nekÄ vienu reizi, tÄpÄc, lai palielinÄtu produktivitÄti, iesaku jums apgÅ«t pakeÅ”u filtrÄÅ”anas lietoÅ”anu TShark, tas ļauj tvert tikai tÄs paketes. kas jÅ«s interesÄ. ApstÄkļos, kad tÄ«klÄ darbojas desmitiem RTP ierÄ«Äu, tas ir ļoti vÄrtÄ«gi. KomandrindÄ TShark filtrÄÅ”anas parametri ir norÄdÄ«ti ar opciju "-f". MÄs izmantojÄm Å”o opciju, kad vÄlÄjÄmies tvert paketes no porta 8010:
-f "udp port 8010"
FiltrÄÅ”anas parametri bÅ«tÄ«bÄ ir kritÄriju kopums, kam jÄatbilst ānoÄ·ertajaiā paketei. NosacÄ«jums var pÄrbaudÄ«t konkrÄta baita adresi, portu vai vÄrtÄ«bu paketÄ. NosacÄ«jumus var apvienot, izmantojot loÄ£iskÄs darbÄ«bas "UN", "OR" utt. Ä»oti spÄcÄ«gs instruments.
Ja vÄlaties skatÄ«t lauku izmaiÅu dinamiku partijÄs, jums bÅ«s jÄdublÄ izvade TShark uz failu, kÄ tika parÄdÄ«ts iepriekÅ”ÄjÄ rakstÄ, izmantojot izvades pÄrsÅ«tÄ«Å”anu TShark pie ieejas tee. PÄc tam atveriet žurnÄla failu, izmantojot mazÄk, vim vai citu rÄ«ku, kas var Ätri strÄdÄt ar milzÄ«giem teksta failiem un meklÄt virknes, jÅ«s varat uzzinÄt visas RTP straumes pakeÅ”u lauku darbÄ«bas nianses.
Ja jums ir nepiecieÅ”ams klausÄ«ties signÄlu, ko pÄrraida RTP straume, tad jums ir jÄizmanto versija TShark ar vizuÄlo saskarni Wireshark. Veicot vienkÄrÅ”as manipulÄcijas ar peli, jÅ«s varat klausÄ«ties un redzÄt signÄla oscilogrammu. Bet ar vienu nosacÄ«jumu ā ja tas ir iekodÄts u-likumÄ vai a-low formÄtÄ.
NÄkamais
Avots: www.habr.com