Pagsuhid sa Mediastreamer2 VoIP engine. Bahin 8

Ang materyal sa artikulo gikuha gikan sa akong zen channel.

Pagsuhid sa Mediastreamer2 VoIP engine. Bahin 8

Ang istruktura sa pakete sa RTP

Sa ulahi artikulo among gigamit TShark gihimo ang pagkuha sa mga RTP packet nga gibaylo tali sa among receiver ug transmitter. Aw, niining usa atong ipintal ang mga elemento sa pakete sa lainlaing mga kolor ug hisgutan ang ilang katuyoan.

Atong tan-awon ang parehas nga pakete, apan adunay mga kolor nga margin ug mga label nga nagpatin-aw:
Pagsuhid sa Mediastreamer2 VoIP engine. Bahin 8

Sa ubos sa listahan, ang mga byte nga naglangkob sa RTP packet gi-tinted, ug kini sa baylo mao ang payload sa UDP packet (ang header niini gilingin sa itom). Ang mga kolor nga background nagpakita sa mga byte sa RTP header, ug ang data block nga naglangkob sa payload sa RTP packet gipasiugda sa berde. Ang datos gipresentar sa hexadecimal format. Sa among kaso, kini usa ka signal sa audio nga gi-compress sumala sa u-law (mu-law), i.e. ang usa ka sample adunay gidak-on nga 1 byte. Tungod kay gigamit namo ang default sampling rate (8000 Hz), sa packet rate nga 50 Hz, ang matag RTP packet kinahanglang adunay 160 bytes nga payload. Makita nato kini pinaagi sa pag-ihap sa mga byte sa berdeng lugar, kinahanglan adunay 10 ka linya niini.

Sumala sa sumbanan, ang gidaghanon sa datos sa payload kinahanglan nga usa ka multiple sa upat, o sa laing pagkasulti, kini kinahanglan nga adunay integer nga gidaghanon sa upat ka byte nga mga pulong. Kung mahitabo nga ang imong payload dili motakdo niini nga lagda, nan kinahanglan nimo nga idugang ang zero-valued bytes sa katapusan sa payload ug ibutang ang Padding bit. Kini nga bit nahimutang sa unang byte sa RTP header ug adunay kolor nga turquoise. Timan-i nga ang tanang payload byte kay 0xFF, nga mao ang hitsura sa u-law silence.

Ang RTP packet header naglangkob sa 12 mandatory bytes, apan sa duha ka mga kaso kini mahimong mas taas:

  • Kung ang usa ka pakete nagdala usa ka signal sa audio nga nakuha pinaagi sa pagsagol sa mga signal gikan sa daghang mga gigikanan (mga sapa sa RTP), pagkahuman pagkahuman sa una nga 12 ka byte sa header adunay usa ka lamesa nga adunay usa ka lista sa mga gigikanan nga identifier kansang mga kargamento gigamit sa paghimo sa payload niini nga pakete. Niini nga kaso, sa ubos nga upat ka bits sa unang byte sa header (field Nag-amot nga tinubdan identifier ihap) nagpakita sa gidaghanon sa mga tinubdan. Ang gidak-on sa uma kay 4 ka bit, mao nga ang lamesa mahimong maglangkob hangtod sa 15 nga gigikanan nga mga identifier. Ang matag usa niini nag-okupar sa 4 ka byte. Kini nga lamesa gigamit sa pag-set up og conference call.

  • Sa diha nga ang titulo adunay extension . Niini nga kaso, ang bit gibutang sa unang byte sa header X. Sa gipalapdan nga ulohan, pagkahuman sa lamesa sa mga partisipante (kon aduna man), adunay usa ka pulong nga extension header, gisundan sa mga extension nga mga pulong. Ang usa ka extension usa ka koleksyon sa mga byte nga imong magamit sa pagbalhin sa dugang nga datos. Ang sumbanan wala magtakda sa pormat niini nga datos - kini mahimong bisan unsa. Pananglitan, kini mahimo nga pipila ka dugang nga mga setting alang sa aparato nga nakadawat RTP packet. Alang sa pipila ka mga aplikasyon, bisan pa, ang gipalawig nga mga sumbanan sa header naugmad. Gihimo kini, pananglitan, alang sa mga komunikasyon sa sumbanan ED-137 (Interoperability Standards alang sa VoIP ATM Components).

Karon atong tan-awon ang mga natad sa header sa mas detalyado. Sa ubos usa ka canonical nga litrato nga adunay istruktura sa RTP header, nga dili usab nako mapugngan ug gipintalan sa parehas nga mga kolor.

Pagsuhid sa Mediastreamer2 VoIP engine. Bahin 8
VER - numero sa bersyon sa protocol (karon nga bersyon 2);

P - usa ka bandila nga gibutang sa mga kaso diin ang RTP packet gidugangan sa walay sulod nga mga byte sa katapusan;

X - bandila nga ang ulohan gipalugway;

CC β€” naglangkob sa gidaghanon sa CSRC identifiers nga nagsunod sa kanunay nga header (human sa mga pulong 1..3), ang lamesa wala gipakita sa numero;

M β€” marker sa sinugdanan sa usa ka frame o ang presensya sa sinultihan sa channel (kung gigamit ang speech pause detector). Kung ang tigdawat walay sulod nga speech pause detector, nan kini nga bit kinahanglan nga permanente nga ibutang;

PTYPE - nagtino sa format sa payload;

Numero sa han-ay - numero sa packet, nga gigamit sa pagpasig-uli sa han-ay sa mga packet gipatokar, tungod kay ang tinuod nga sitwasyon mao nga ang mga packet makaabot sa receiver sa sayop nga han-ay diin sila gipadala. Ang inisyal nga kantidad kinahanglan nga random, kini gihimo aron nga kung ang RTP stream ma-encrypt, lisud ang pag-hack niini. Usab, kini nga uma nagtugot kanimo sa pag-ila sa mga wala nga pakete;

Timestamp - timestamp. Ang oras gisukod sa mga sample sa signal, i.e. kung ang usa ka pagbuto adunay 160 nga mga sample, nan ang timestamp sa sunod nga pagbuto mahimong 160 pa. Ang inisyal nga kantidad sa timestamp kinahanglan nga random;

SSRC β€” identifier sa tinubdan sa package, kinahanglan nga talagsaon kini. Mas maayo nga himuon kini nga random sa dili pa magsugod ang RTP stream.

Kung maghimo ka sa imong kaugalingon nga RTP packet transmitter o receiver, kinahanglan nimo nga tan-awon ang imong mga pakete labaw pa sa kausa aron madugangan ang pagka-produktibo, girekomenda ko nga mahibal-an nimo kung giunsa ang paggamit sa pagsala sa packet sa TShark, gitugotan ka nga makuha ang mga pakete nga interesado kanimo. Sa usa ka palibot diin daghang mga aparato sa RTP ang naglihok sa network, kini hinungdanon kaayo. Sa TShark command line, ang mga opsyon sa pagsala gipiho gamit ang "-f" nga opsyon. Gigamit namon kini nga kapilian kung gusto namon nga makuha ang mga pakete gikan sa port 8010:
-f "udp port 8010"
Ang mga parameter sa pagsala usa ka hugpong sa mga pamatasan nga kinahanglan maabut sa usa ka "nadakpan" nga pakete. Ang kondisyon makasusi sa adres, pantalan, bili sa usa ka byte sa pakete. Ang mga kondisyon mahimong ikombinar sa lohikal nga mga operasyon "UG", "OR", ug uban pa. Usa ka gamhanan kaayo nga himan.

Kung gusto nimo tan-awon ang dinamika sa mga pagbag-o sa uma sa mga batch, kinahanglan nimo nga doblehon ang output TShark sa usa ka file, ingon sa gipakita sa miaging artikulo, pinaagi sa pagpasa sa output TShark sa entrada tee. Sunod, ablihi ang log file nga adunay gamay, vim o lain nga himan nga dali nga magamit sa daghang mga file sa teksto ug pagpangita sa mga kuwerdas, mahimo nimong mahibal-an ang tanan nga mga nuances sa pamatasan sa mga packet field sa usa ka RTP stream.

Kung kinahanglan nimo nga maminaw sa signal nga gipasa sa RTP stream, nan kinahanglan nimo nga gamiton ang bersyon TShark uban sa visual interface Wireshark. Uban sa yano nga pagmaniobra sa mouse, mahimo nimong paminawon ug makita ang waveform sa signal. Apan sa usa ka kondisyon - kung kini gi-encode sa u-law o a-low format.

Sunod artikulo maghimo kami ug duplex intercom kanimo. Pag-stock sa usa ka pares sa mga headset ug usa ka interlocutor.

Source: www.habr.com

Idugang sa usa ka comment