Mediastreamer2 VoIP mühərriki araşdırılır. 8-ci hissə

Məqalənin materialı məndən götürülmüşdür zen kanalı.

Mediastreamer2 VoIP mühərriki araşdırılır. 8-ci hissə

RTP paket quruluşu

Sonda məqalə istifadə edirik TShark qəbuledicimiz və ötürücümüz arasında mübadilə edilən RTP paketlərinin tutulmasını həyata keçirdi. Yaxşı, bu birində paketin elementlərini müxtəlif rənglərə boyayacağıq və onların məqsədi haqqında danışacağıq.

Gəlin eyni paketə nəzər salaq, lakin rəngli kənarlar və izahlı etiketlərlə:
Mediastreamer2 VoIP mühərriki araşdırılır. 8-ci hissə

Siyahının aşağı hissəsində RTP paketini təşkil edən baytlar rənglənir və bu da öz növbəsində UDP paketinin faydalı yüküdür (onun başlığı qara rənglə dairəvi şəkildə çəkilir). Rəngli fonlar RTP başlığının baytlarını göstərir və RTP paketinin faydalı yükünü ehtiva edən məlumat bloku yaşıl rənglə vurğulanır. Məlumat onaltılıq formatda təqdim olunur. Bizim vəziyyətimizdə bu, u-qanununa (mu-law) uyğun olaraq sıxılmış səs siqnalıdır, yəni. bir nümunənin ölçüsü 1 baytdır. Standart seçmə sürətini (8000 Hz) 50 Hz paket sürətində istifadə etdiyimiz üçün hər RTP paketində 160 bayt faydalı yük olmalıdır. Bunu yaşıl sahədə baytları saymaqla görəcəyik, onlardan 10 sətir olmalıdır.

Standarta görə, faydalı yükdə verilənlərin miqdarı dördə çox olmalıdır və ya başqa sözlə, dörd baytlıq sözlərin tam sayını ehtiva etməlidir. Əgər sizin faydalı yükünüz bu qaydaya uyğun gəlmirsə, onda siz yükün sonuna sıfır dəyərli bayt əlavə etməli və Doldurma bitini təyin etməlisiniz. Bu bit RTP başlığının birinci baytında yerləşir və firuzəyi rəngdədir. Qeyd edək ki, bütün faydalı yük baytları 0xFF-dir, bu da u-law susması kimi görünür.

RTP paket başlığı 12 məcburi baytdan ibarətdir, lakin iki halda daha uzun ola bilər:

  • Bir paket bir neçə mənbədən (RTP axınları) siqnalları qarışdırmaqla əldə edilən audio siqnalı daşıdıqda, başlığın ilk 12 baytından sonra bu paketin faydalı yükünü yaratmaq üçün faydalı yükləri istifadə olunan mənbə identifikatorlarının siyahısı olan bir cədvəl var. Bu halda, başlığın ilk baytının aşağı dörd bitində (sahə Töhfə verən mənbə identifikatorlarının sayı) mənbələrin sayını göstərir. Sahənin ölçüsü 4 bitdir, ona görə də cədvəldə 15-ə qədər mənbə identifikatoru ola bilər. Hər biri 4 bayt yer tutur. Bu cədvəl konfrans zəngi qurarkən istifadə olunur.

  • Başlığın uzantısı olduqda. Bu halda, bit başlığın ilk baytında təyin olunur X. Genişləndirilmiş başlıqda, iştirakçılar cədvəlindən sonra (əgər varsa) bir sözdən ibarət genişləndirmə başlığı, sonra isə genişləndirmə sözləri var. Artırma əlavə məlumat ötürmək üçün istifadə edə biləcəyiniz baytlar toplusudur. Standart bu məlumatların formatını nəzərdə tutmur - hər şey ola bilər. Məsələn, RTP paketlərini qəbul edən cihaz üçün bəzi əlavə parametrlər ola bilər. Bununla belə, bəzi tətbiqlər üçün genişləndirilmiş başlıq standartları hazırlanmışdır. Bu, məsələn, standartda rabitə üçün edilir ED-137 (VoIP ATM komponentləri üçün qarşılıqlı fəaliyyət standartları).

İndi başlıq sahələrinə daha ətraflı baxaq. Aşağıda RTP başlığının quruluşu olan kanonik bir şəkil var, mən də müqavimət göstərə bilmədim və eyni rənglərə boyadım.

Mediastreamer2 VoIP mühərriki araşdırılır. 8-ci hissə
VER — protokolun versiya nömrəsi (cari versiya 2);

P - RTP paketinin sonunda boş baytlarla tamamlandığı hallarda təyin olunan bayraq;

X - başlığın uzadıldığını qeyd etmək;

CC — daimi başlıqdan sonra gələn CSRC identifikatorlarının sayını ehtiva edir (1..3 sözlərindən sonra), cədvəl şəkildə göstərilmir;

M — kadrın başlanğıcının və ya kanalda nitqin mövcudluğunun markeri (nitqin pauza detektorundan istifadə olunarsa). Əgər qəbuledicidə nitqin pauza detektoru yoxdursa, bu bit daimi olaraq qurulmalıdır;

PTYPE - faydalı yükün formatını müəyyən edir;

Sıra nömrəsi - paket nömrəsi, paketlərin səsləndirildiyi sıranı bərpa etmək üçün istifadə olunur, çünki real vəziyyət paketlərin göndərildiyi səhv ardıcıllıqla qəbulediciyə çata bilməsidir. İlkin dəyər təsadüfi olmalıdır, bu, RTP axınının şifrələndiyi təqdirdə onu sındırmaq çətin olması üçün edilir. Həmçinin, bu sahə buraxılmış paketləri aşkar etməyə imkan verir;

Damgası - vaxt möhürü. Zaman siqnal nümunələrində ölçülür, yəni. əgər partlayış 160 nümunədən ibarətdirsə, onda növbəti partlayışın vaxt damğası daha 160 olacaq. Vaxt damğasının ilkin dəyəri təsadüfi olmalıdır;

SSRC — paket mənbəyinin identifikatoru, o, unikal olmalıdır. RTP axınına başlamazdan əvvəl onu təsadüfi yaratmaq daha yaxşıdır.

Öz RTP ötürücünüzü və ya qəbuledicinizi inkişaf etdirsəniz, məhsuldarlığı artırmaq üçün paketlərinizi bir neçə dəfə nəzərdən keçirməli olacaqsınız, TShark-da paket filtrindən necə istifadə edəcəyinizi öyrənməyinizi tövsiyə edirəm, bu, yalnız paketləri tutmağa imkan verir. sizə maraq. Şəbəkədə onlarla RTP cihazının işlədiyi bir mühitdə bu çox qiymətlidir. TShark əmr sətirində filtrləmə seçimləri "-f" seçimi ilə müəyyən edilir. 8010 portundan paketləri tutmaq istəyəndə bu seçimdən istifadə etdik:
-f "udp port 8010"
Filtrləmə parametrləri mahiyyətcə "tutulmuş" paketin uyğun gəlməli olduğu meyarlar toplusudur. Şərt paketdə müəyyən baytın ünvanını, portunu, dəyərini yoxlaya bilər. Şərtlər məntiqi əməliyyatlarla birləşdirilə bilər "AND", "OR" və s. Çox güclü alət.

Sahə dəyişikliklərinin dinamikasını partiyalarda görmək istəyirsinizsə, çıxışı dublikat etməlisiniz TShark son məqalədə göstərildiyi kimi çıxışı ötürərək fayla TShark girişdə tee. Sonra, ilə log faylını açın az, vim və ya nəhəng mətn faylları ilə tez işləyə bilən və sətirləri axtaran başqa bir vasitə ilə RTP axınındakı paket sahələrinin davranışının bütün nüanslarını öyrənə bilərsiniz.

RTP axını ilə ötürülən siqnalı dinləmək lazımdırsa, o zaman versiyadan istifadə etməlisiniz TShark vizual interfeys ilə Wireshark. Sadə siçan manipulyasiyaları ilə siz siqnalın dalğa formasını dinləyə və görə bilərsiniz. Ancaq bir şərtlə - əgər u-law və ya a-low formatında kodlaşdırılıbsa.

Sonrakı məqalə sizinlə dupleks domofon quracağıq. Bir cüt qulaqlıq və bir həmsöhbətə yığın.

Mənbə: www.habr.com

Добавить комментарий