Mediastreamer2 VoIP dvigatelini o'rganish. 8-qism

Maqolaning materiali mendan olingan zen kanali.

Mediastreamer2 VoIP dvigatelini o'rganish. 8-qism

RTP paket tuzilishi

Oxirida maqola foydalanamiz TShark ushlangan RTP paketlari qabul qiluvchimiz va uzatuvchimiz o'rtasida almashildi. Xo'sh, bu erda biz paketning elementlarini turli xil ranglarda bo'yab, ularning maqsadi haqida gapiramiz.

Keling, xuddi shu paketni ko'rib chiqaylik, ammo rangli maydonlar va tushuntirish yozuvlari bilan:
Mediastreamer2 VoIP dvigatelini o'rganish. 8-qism

Ro'yxatning pastki qismida RTP paketini tashkil etuvchi baytlar joylashgan bo'lib, ular o'z navbatida UDP paketining foydali yukidir (uning sarlavhasi qora rangda ko'rsatilgan). Rangli fon RTP sarlavhasi baytlarini, yashil esa RTP paketining foydali yukini o'z ichiga olgan ma'lumotlar blokini bildiradi. U erda ma'lumotlar o'n oltilik formatda taqdim etiladi. Bizning holatda, bu u-qonuniga (mu-law) muvofiq siqilgan audio signal, ya'ni. bitta namuna 1 bayt hajmda. Biz standart namuna olish tezligini (8000 Gts) 50 Gts paket tezligida ishlatganimiz sababli, har bir RTP paketida 160 bayt foydali yuk bo'lishi kerak. Buni yashil maydondagi baytlarni sanash orqali ko'ramiz, 10 qator bo'lishi kerak.

Standartga ko'ra, foydali yukdagi ma'lumotlar miqdori to'rtga karrali bo'lishi kerak yoki boshqacha qilib aytganda, to'rt baytli so'zlarning butun sonini o'z ichiga olishi kerak. Agar sizning foydali yukingiz ushbu qoidaga rioya qilmasa, foydali yukning oxiriga nol qiymatga ega baytlarni qo'shishingiz va Padding bitini o'rnatishingiz kerak. Bu bit RTP sarlavhasining birinchi baytida joylashgan va turkuaz rangga ega. E'tibor bering, barcha foydali yuk baytlari 0xFF qiymatiga ega - u-law formatida sukunat shunday ko'rinadi.

RTP paket sarlavhasi talab qilinadigan 12 baytdan iborat, lekin ikki holatda u uzoqroq bo'lishi mumkin:

  • Agar paket bir nechta manbalardan (RTP oqimlari) signallarni aralashtirish natijasida olingan audio signalni olib yursa, sarlavhaning dastlabki 12 baytidan keyin ushbu paketning foydali yukini yaratish uchun foydali yuklari ishlatilgan manba identifikatorlari ro'yxati bilan jadval paydo bo'ladi. Bunday holda, sarlavhaning birinchi baytining pastki to'rt bitida (maydon Manba identifikatorlari soni) manbalar soni ko'rsatilgan. Maydon o'lchami 4 bit, shuning uchun jadvalda 15 tagacha manba identifikatorlari bo'lishi mumkin. Ularning har biri 4 baytni oladi. Ushbu jadval konferentsiya qo'ng'irog'ini tashkil qilishda ishlatiladi.

  • Sarlavha kengaytmaga ega bo'lganda. Bunday holda, sarlavhaning birinchi baytidagi bit o'rnatiladi X. Kengaytirilgan sarlavhada ishtirokchilar jadvalidan keyin (agar mavjud bo'lsa) bir so'zdan iborat kengaytma sarlavhasi, undan keyin kengaytma so'zlari mavjud. Kengaytma - bu qo'shimcha ma'lumotlarni uzatish uchun foydalanishingiz mumkin bo'lgan baytlar to'plami. Standart ushbu ma'lumotlarning formatini belgilamaydi - bu har qanday narsa bo'lishi mumkin. Masalan, bu RTP paketlarini qabul qiluvchi qurilma uchun qo'shimcha sozlamalar bo'lishi mumkin. Biroq, ba'zi ilovalar uchun kengaytirilgan sarlavha standartlari ishlab chiqilgan. Bu, masalan, standartdagi aloqa uskunalari uchun amalga oshiriladi ED-137 (VoIP ATM komponentlari uchun oΚ»zaro ishlash standartlari).

Endi sarlavha maydonlarini batafsil ko'rib chiqaylik. Quyida RTP sarlavhasining tuzilishiga ega kanonik rasm mavjud, men ham qarshilik qila olmadim va bir xil ranglarda bo'yadim.

Mediastreamer2 VoIP dvigatelini o'rganish. 8-qism
VER β€” protokol versiyasi raqami (joriy 2-versiya);

P β€” RTP paketi oxirida bo'sh baytlar bilan to'ldirilgan hollarda o'rnatiladigan bayroq;

X β€” sarlavha kengaytirilganligini belgilash;

CC β€” doimiy sarlavhadan keyingi CSRC identifikatorlari sonini o'z ichiga oladi (1..3 so'zlardan keyin), jadval rasmda ko'rsatilmagan;

M β€” kadrning boshlanishi yoki kanalda nutq mavjudligi belgisi (agar nutqni pauza detektori ishlatilsa). Agar qabul qiluvchida nutqni pauza detektori bo'lmasa, u holda bu bit doimiy ravishda o'rnatilishi kerak;

PTYPE β€” foydali yuk formatini bildiradi;

Tartib raqami β€” paket raqami, paketlarni ijro etish tartibini tiklash uchun ishlatiladi, chunki haqiqiy vaziyat paketlar qabul qiluvchiga yuborilganidan boshqacha tartibda etib borishi mumkin. Dastlabki qiymat tasodifiy bo'lishi kerak; bu RTP oqimini shifrlash ishlatilsa, uni buzish qiyin bo'lishi uchun amalga oshiriladi. Ushbu maydon sizga paketlarning tushishini aniqlash imkonini beradi;

Vaqt belgilari - vaqt tamg'asi. Vaqt signal namunalarida o'lchanadi, ya'ni. agar paketda 160 ta namuna bo'lsa, keyingi paketning vaqt tamg'asi 160 ga katta bo'ladi. Vaqt tamg'asining dastlabki qiymati tasodifiy bo'lishi kerak;

SSRC β€” paket manbasi identifikatori, u noyob bo'lishi kerak. RTP oqimini boshlashdan oldin uni tasodifiy yaratish yaxshiroqdir.

Agar siz o'zingizning RTP paketlarini uzatuvchi yoki qabul qiluvchini ishlab chiqsangiz, paketlaringizni bir necha marta ko'rib chiqishingiz kerak bo'ladi, shuning uchun unumdorlikni oshirish uchun men sizga TShark-da paketlarni filtrlashdan foydalanishni o'rganishingizni maslahat beraman, bu sizga faqat shu paketlarni olish imkonini beradi. bu sizni qiziqtiradi. Tarmoqda o'nlab RTP qurilmalari ishlaydigan sharoitlarda bu juda qimmatlidir. TShark buyruq satrida filtrlash parametrlari "-f" opsiyasi bilan belgilanadi. Biz 8010 portidan paketlarni olishni xohlaganimizda ushbu parametrdan foydalandik:
-f "udp port 8010"
Filtrlash parametrlari asosan "ushlangan" paket javob berishi kerak bo'lgan mezonlar to'plamidir. Shart paketdagi ma'lum bir baytning manzilini, portini yoki qiymatini tekshirishi mumkin. Shartlar mantiqiy amallar yordamida birlashtirilishi mumkin "VA", "YOKI" va hokazo. Juda kuchli vosita.

Agar siz maydonlardagi o'zgarishlar dinamikasini to'plamlarda ko'rishni istasangiz, chiqishni takrorlashingiz kerak bo'ladi TShark oldingi maqolada ko'rsatilganidek, chiqish uzatish yordamida faylga TShark kiraverishda tee. Keyinchalik, yordamida jurnal faylini oching kamroq, vim yoki katta matnli fayllar bilan tezda ishlay oladigan va satrlarni qidiradigan boshqa vosita yordamida siz RTP oqimidagi paket maydonlari xatti-harakatlarining barcha nuanslarini bilib olishingiz mumkin.

Agar siz RTP oqimi orqali uzatiladigan signalni tinglashingiz kerak bo'lsa, unda siz versiyadan foydalanishingiz kerak TShark vizual interfeys bilan Wireshark. Sichqoncha bilan oddiy manipulyatsiyalar orqali siz signal oscillogrammasini tinglashingiz va ko'rishingiz mumkin. Ammo bir shart bilan - agar u u-law yoki a-low formatida kodlangan bo'lsa.

Keyingisi maqola Biz siz bilan dupleks interkom qilamiz. Bir nechta minigarnituralar va bitta suhbatdoshga zaxiralang.

Manba: www.habr.com

a Izoh qo'shish