Að kanna Mediastreamer2 VoIP vélina. 8. hluti

Efni greinarinnar er tekið úr mínum zen rás.

Að kanna Mediastreamer2 VoIP vélina. 8. hluti

RTP pakka uppbygging

Í fortíðinni grein við erum að nota TShark framkvæmt handtöku RTP pakka sem skiptust á milli móttakara okkar og sendis. Jæja, í þessari munum við mála þætti pakkans í mismunandi litum og tala um tilgang þeirra.

Við skulum kíkja á sama pakkann, en með lituðum spássíur og skýringarmerkjum:
Að kanna Mediastreamer2 VoIP vélina. 8. hluti

Neðst á skráningunni eru bætin sem mynda RTP pakkann lituð, og þetta er aftur álag UDP pakkans (haus hans er svartur hringur). Liti bakgrunnurinn gefur til kynna bæti RTP haussins og gagnablokkin sem inniheldur hleðslu RTP pakkans er auðkenndur með grænu. Gögnin eru sett fram á sextándu sniði. Í okkar tilviki er þetta hljóðmerki sem er þjappað samkvæmt u-lögunum (mu-lögunum), þ.e. eitt sýni er 1 bæti að stærð. Þar sem við notuðum sjálfgefna sýnatökuhraðann (8000 Hz), á pakkahraðanum 50 Hz, ætti hver RTP pakki að innihalda 160 bæti af hleðslu. Við munum sjá þetta með því að telja bætin á græna svæðinu, það ættu að vera 10 línur af þeim.

Samkvæmt staðlinum þarf gagnamagn í farmálaginu að vera margfeldi af fjórum, eða með öðrum orðum, það verður að innihalda heiltölu fjögurra bæta orða. Ef það gerist að farmurinn þinn passar ekki við þessa reglu, þá þarftu að bæta við núllgildum bætum í lok farmsins og stilla Padding bita. Þessi biti er staðsettur í fyrsta bæti RTP haussins og er grænblár. Athugaðu að öll hleðslubæt eru 0xFF, sem er hvernig u-law þögn lítur út.

RTP pakkahausinn samanstendur af 12 lögboðnum bætum, en í tveimur tilvikum getur hann verið lengri:

  • Þegar pakki ber hljóðmerki sem fæst með því að blanda saman merkjum frá nokkrum uppsprettum (RTP straumum), þá er eftir fyrstu 12 bæti haussins tafla með lista yfir auðkenni uppruna sem var notað til að búa til hleðslu þessa pakka. Í þessu tilviki, í neðri fjórum bitum fyrsta bæti haussins (reit Upprunaauðkenni sem leggja sitt af mörkum telja) gefur til kynna fjölda heimilda. Stærð reits er 4 bitar, þannig að taflan getur innihaldið allt að 15 upprunaauðkenni. Hver þeirra tekur 4 bæti. Þessi tafla er notuð þegar símafundur er settur upp.

  • Þegar titillinn hefur framlenginguna. Í þessu tilviki er bitinn stilltur í fyrsta bæti haussins X. Í útvíkkuðum hausnum, á eftir töflunni yfir þátttakendur (ef einhver er), er eins orðs framlengingarhaus og síðan framlengingarorðin. Viðbót er safn bæta sem þú getur notað til að flytja viðbótargögn. Staðallinn kveður ekki á um snið þessara gagna - það getur verið hvað sem er. Til dæmis gætu það verið einhverjar viðbótarstillingar fyrir tækið sem tekur á móti RTP pakka. Fyrir sum forrit hafa hins vegar verið þróaðir útbreiddir hausstaðlar. Þetta er til dæmis gert fyrir samskipti í staðlinum ED-137 (Interoperability Standards for VoIP ATM Components).

Nú skulum við skoða hausareitina nánar. Hér að neðan er kanónísk mynd með uppbyggingu RTP haussins, sem ég gat heldur ekki staðist og málaði í sömu litum.

Að kanna Mediastreamer2 VoIP vélina. 8. hluti
VER — útgáfunúmer samskiptareglur (núverandi útgáfa 2);

P - fána sem er stillt í þeim tilvikum þar sem RTP pakkanum er bætt við tóm bæti í lokin;

X - flagga að hausinn sé framlengdur;

CC — inniheldur fjölda CSRC auðkenna á eftir föstu hausnum (á eftir orðum 1..3), taflan er ekki sýnd á myndinni;

M — merki um upphaf ramma eða tilvist tals í rásinni (ef talhléskynjari er notaður). Ef viðtækið inniheldur ekki talhléskynjara, skal þessi biti stilltur varanlega;

PTYPE - tilgreinir snið farmsins;

Raðnúmer - pakkanúmer, notað til að endurheimta röðina sem pakkar eru spilaðir í, þar sem raunveruleg staða er þegar pakkar geta borist viðtakanda í rangri röð sem þeir voru sendir. Upphafsgildið verður að vera af handahófi, þetta er gert þannig að ef RTP straumurinn er dulkóðaður verður erfitt að hakka hann. Einnig gerir þessi reitur þér kleift að greina týndan pakka;

Timestamp - tímastimpill. Tími er mældur í merkjasýnum, þ.e. ef burst inniheldur 160 sýni, þá verður tímastimpill næstu lotu 160 fleiri. Upphafsgildi tímastimpilsins verður að vera tilviljunarkennt;

SSRC — auðkenni pakkans, það verður að vera einstakt. Það er betra að búa það til af handahófi áður en þú byrjar RTP strauminn.

Ef þú þróar þinn eigin RTP pakka sendanda eða móttakara þarftu að skoða pakkana þína oftar en einu sinni til að auka framleiðni, ég mæli með því að þú lærir að nota pakkasíun í TShark, það gerir þér kleift að fanga aðeins þá pakka sem hafa áhuga á þér. Í umhverfi þar sem tugir RTP tækja starfa á netinu er þetta mjög dýrmætt. Í TShark skipanalínunni eru síunarvalkostir tilgreindir með "-f" valkostinum. Við notuðum þennan valmöguleika þegar við vildum fanga pakka frá port 8010:
-f "udp port 8010"
Síufæribreytur eru í raun sett af viðmiðum sem „fangaður“ pakki þarf að uppfylla. Skilyrðið getur athugað heimilisfang, gátt, gildi ákveðins bæti í pakkanum. Hægt er að sameina skilyrði með rökrænum aðgerðum „AND“, „OR“ o.s.frv. Mjög öflugt tæki.

Ef þú vilt skoða gangverk sviðsbreytinga í lotum þarftu að afrita úttakið TShark í skrá, eins og sýnt er í síðustu grein, með því að senda úttakið TShark við innganginn tee. Næst skaltu opna annálaskrána með minna, vim eða annað tól sem getur fljótt unnið með stórar textaskrár og leitað að strengjum, þú getur fundið út öll blæbrigði hegðunar pakkasviða í RTP straumi.

Ef þú þarft að hlusta á merkið sem sent er frá RTP straumnum, þá þarftu að nota útgáfuna TShark með sjónrænt viðmóti Wireshark. Með einföldum músum geturðu hlustað á og séð bylgjulögun merksins. En með einu skilyrði - ef það er umritað í u-lögum eða a-lágt sniði.

Næst grein við munum búa til tvíhliða kallkerfi með þér. Búðu til höfuðtól og einn viðmælanda.

Heimild: www.habr.com

Bæta við athugasemd