Entdeckt de Mediastreamer2 VoIP-Motor. Deel 8

D'Material vum Artikel ass aus mengem zen Kanal.

Entdeckt de Mediastreamer2 VoIP-Motor. Deel 8

RTP Paket Struktur

An der leschter Artikel mir benotzen TShark huet d'Erfaassung vun RTP-Päckchen gemaach, déi tëscht eisem Empfänger an dem Sender ausgetauscht goufen. Gutt, an dësem wäerte mir d'Elementer vum Package a verschiddene Faarwen molen an iwwer hiren Zweck schwätzen.

Loosst eis deeselwechte Package kucken, awer mat faarwege Margen an Erklärungsetiketten:
Entdeckt de Mediastreamer2 VoIP-Motor. Deel 8

Um Enn vun der Oplëschtung sinn d'Bytes, déi den RTP-Paket ausmaachen, getéint, an dëst am Tour ass d'Notzlaascht vum UDP-Paket (säin Header ass schwaarz ëmkreest). Déi faarweg Hannergrënn weisen d'Bytes vum RTP Header un, an den Dateblock deen d'Notzlaascht vum RTP Paket enthält ass gréng markéiert. D'Donnéeën ginn am hexadezimalen Format presentéiert. An eisem Fall ass dëst en Audiosignal kompriméiert no dem u-Gesetz (mu-Gesetz), d.h. eng Prouf huet eng Gréisst vun 1 Byte. Well mir de Standard Sampling Taux (8000 Hz) benotzt hunn, mat engem Paketrate vu 50 Hz, soll all RTP Paket 160 Bytes Notzlaascht enthalen. Mir wäerten dat gesinn andeems Dir d'Bytes am grénge Beräich zielt, et sollt 10 Zeilen dovun sinn.

Geméiss dem Standard muss d'Quantitéit vun Daten an der Notzlaascht e Multiple vu véier sinn, oder an anere Wierder, et muss eng ganz Zuel vu véier-Byte Wierder enthalen. Wann et passéiert datt Är Notzlaascht dës Regel net entsprécht, da musst Dir Nullbewäertte Bytes um Enn vun der Notzlaascht addéieren an de Padding Bit setzen. Dëse Bit läit am éischte Byte vum RTP Header an ass faarweg türkis. Notéiert datt all Notzlaaschtbytes 0xFF sinn, wat ass wéi d'U-Gesetz Rou ausgesäit.

Den RTP Packet Header besteet aus 12 obligatoresche Bytes, awer an zwee Fäll kann et méi laang sinn:

  • Wann e Paket en Audiosignal dréit, deen duerch Vermëschung vu Signaler vu verschiddene Quellen (RTP Streams) kritt gëtt, da gëtt et no den éischten 12 Bytes vum Header eng Tabell mat enger Lëscht vu Quellidentifizéierer deenen hir Notzlaascht benotzt gi fir d'Notzlaascht vun dësem Paket ze kreéieren. An dësem Fall, an den ënneschten véier Bits vum éischte Byte vum Header (Feld Bäitrag Quell Identifizéierer zielen) weist d'Zuel vun de Quellen un. D'Feldgréisst ass 4 Bits, sou datt den Dësch bis zu 15 Quellidentifizéierer kann enthalen. Jiddereng vun deenen besetzt 4 Bytes. Dësen Dësch gëtt benotzt wann Dir e Konferenzruff opstellt.

  • Wann den Titel d'Extensioun huet. An dësem Fall gëtt de Bit am éischte Byte vum Header gesat X. Am erweiderten Header, no der Tabell vun de Participanten (wann iwwerhaapt), gëtt et en One-Word Extension Header, gefollegt vun den Extensiounswierder. Eng Extensioun ass eng Sammlung vu Bytes déi Dir benotze kënnt fir zousätzlech Daten ze transferéieren. De Standard stellt net d'Format vun dësen Donnéeë fest - et kann alles sinn. Zum Beispill kann et e puer zousätzlech Astellunge fir den Apparat sinn deen RTP Pakete kritt. Fir e puer Uwendungen sinn awer erweidert Headernormen entwéckelt. Dëst gëtt zum Beispill fir Kommunikatiounen am Standard gemaach ED-137 (Interoperability Standards for VoIP ATM Components).

Loosst eis elo d'Headerfelder méi detailléiert kucken. Drënner ass e kanonescht Bild mat der Struktur vum RTP Header, deen ech och net widderstoen konnt an an de selwechte Faarwen gemoolt hunn.

Entdeckt de Mediastreamer2 VoIP-Motor. Deel 8
VER - Protokoll Versiounsnummer (aktuell Versioun 2);

P - e Fändel deen a Fäll gesat gëtt, wou de RTP-Paket um Enn mat eidel Bytes ergänzt gëtt;

X - Fändel datt den Header verlängert gëtt;

CC - enthält d'Zuel vun den CSRC Identifizéierer no dem konstante Header (no de Wierder 1..3), d'Tabell gëtt net an der Figur gewisen;

M - Markéierer vum Ufank vun engem Frame oder d'Präsenz vu Ried am Kanal (wann e Sprachpausdetektor benotzt gëtt). Wann den Empfänger kee Sprachpausdetektor enthält, da gëtt dëse Bit permanent agestallt;

PTYPE - spezifizéiert de Format vun der Notzlaascht;

Sequenz Zuel - Paketnummer, benotzt fir d'Uerdnung ze restauréieren an där Päck gespillt ginn, well déi richteg Situatioun ass wann Päckchen den Empfänger an der falscher Uerdnung erreechen an där se geschéckt goufen. Den initialen Wäert muss zoufälleg sinn, dëst gëtt gemaach fir datt wann de RTP-Stream verschlësselt ass, et schwéier ass et ze hacken. Och dëst Feld erlaabt Iech verpasst Pakete z'entdecken;

Timestamp - Zäitstempel. Zäit gëtt a Signal Echantillon gemooss, d.h. wann e Burst enthält 160 Echantillon, da gëtt den Zäitstempel vum nächste Burst méi 160. Den initialen Wäert vum Zäitstempel muss zoufälleg sinn;

SSRC - Identifizéierer vun der Packagequell, et muss eenzegaarteg sinn. Et ass besser et zoufälleg ze generéieren ier Dir den RTP Stream starten.

Wann Dir Ären eegene RTP Sender oder Empfänger entwéckelt, musst Dir Är Pakete méi wéi eemol iwwerpréiwen fir d'Produktivitéit ze erhéijen, ech recommandéieren Iech ze léieren wéi Dir Packet Filteren an TShark benotzt, et erlaabt Iech nëmmen déi Päck ze erfaassen déi vun interesséiert Iech. An engem Ëmfeld wou Dosende vu RTP-Geräter am Netz funktionnéieren, ass dëst ganz wäertvoll. An der TShark Kommandozeil ginn Filteroptioune mat der "-f" Optioun uginn. Mir hunn dës Optioun benotzt wa mir Pakete vum Port 8010 wollten erfaassen:
-f "udp port 8010"
Filterparameter sinn am Wesentlechen eng Rei vu Critèren, déi e "gefangenen" Paket muss erfëllen. D'Konditioun kann d'Adress, den Hafen, de Wäert vun engem bestëmmte Byte am Paket iwwerpréiwen. Konditioune kënne kombinéiert ginn mat logeschen Operatiounen "AN", "ODER", etc. E ganz mächtegt Tool.

Wann Dir d'Dynamik vu Feldännerungen a Chargen kucke wëllt, musst Dir d'Ausgab duplizéieren TShark op eng Datei, wéi am leschten Artikel gewisen, andeems Dir d'Ausgab passéiert TShark bei der Entrée tee. Als nächst, öffnen d'Logbuch Datei mat manner, vm oder en anert Tool dat séier mat riesegen Textdateien funktionnéiere kann an no Strings sichen, kënnt Dir all Nuancen vum Verhalen vu Paketfelder an engem RTP Stream erausfannen.

Wann Dir op d'Signal lauschtere musst, déi vum RTP Stream iwwerdroe gëtt, da musst Dir d'Versioun benotzen TShark mat visuellen Interface Wireshark. Mat einfache Mausmanipulatiounen kënnt Dir d'Welleform vum Signal lauschteren a gesinn. Awer op enger Bedingung - wann et am u-Gesetz oder a-niddereg Format kodéiert ass.

Nächst Artikel mir maachen en Duplex Intercom mat Iech. Stock op e Paar Kopfhörer an ee Gespréichspartner.

Source: will.com

Setzt e Commentaire