Mediastreamer2 VoIP එන්ජිම ගවේෂණය කිරීම. 8 කොටස

ලිපියේ ද්‍රව්‍ය මගේ වෙතින් ලබාගෙන ඇත සෙන් නාලිකාව.

Mediastreamer2 VoIP එන්ජිම ගවේෂණය කිරීම. 8 කොටස

RTP පැකට් ව්යුහය

අන්තිමට ලිපියයි අපි භාවිතා කරනවා ටීෂාර්ක් අපගේ ග්‍රාහකයා සහ සම්ප්‍රේෂකය අතර හුවමාරු වූ RTP පැකට් ග්‍රහණය කිරීම සිදු කරන ලදී. හොඳයි, මෙයින් අපි පැකේජයේ මූලද්රව්ය විවිධ වර්ණවලින් පින්තාරු කර ඒවායේ අරමුණ ගැන කතා කරමු.

අපි එකම පැකේජය දෙස බලමු, නමුත් වර්ණ මායිම් සහ පැහැදිලි කිරීමේ ලේබල් සමඟ:
Mediastreamer2 VoIP එන්ජිම ගවේෂණය කිරීම. 8 කොටස

ලැයිස්තුගත කිරීමෙහි පහළින්, RTP පැකට්ටුව සෑදෙන බයිට් වර්ණ ගන්වා ඇති අතර, මෙය UDP පැකට්ටුවේ ගෙවීම (එහි ශීර්ෂකය කළු පැහැයෙන් රවුම් කර ඇත) වේ. වර්ණ ගැන්වූ පසුබිම් RTP ශීර්ෂයේ බයිට් පෙන්නුම් කරන අතර RTP පැකට්ටුවේ පැටවීම අඩංගු දත්ත කොටස කොළ පැහැයෙන් උද්දීපනය කර ඇත. දත්ත ෂඩ් දශම ආකෘතියෙන් ඉදිරිපත් කෙරේ. අපගේ නඩුවේදී, මෙය u-law (mu-law) අනුව සම්පීඩිත ශ්රව්ය සංඥාවකි, i.e. එක් සාම්පලයක් බයිට් 1ක ප්‍රමාණයකින් යුක්ත වේ. අපි පෙරනිමි නියැදි අනුපාතය (8000 Hz) භාවිතා කළ බැවින්, පැකට් අනුපාතය 50 Hz සමඟ, සෑම RTP පැකට්ටුවකම ගෙවීමේ බයිට් 160ක් අඩංගු විය යුතුය. හරිත ප්රදේශයේ බයිට් ගණන් කිරීමෙන් අපි මෙය දකිනු ඇත, ඒවායේ පේළි 10 ක් තිබිය යුතුය.

සම්මතයට අනුව, ගෙවීමේ දත්ත ප්‍රමාණය හතරේ ගුණාකාරයක් විය යුතුය, නැතහොත් වෙනත් වචන වලින් කිවහොත්, එහි බයිට් හතරක පූර්ණ සංඛ්‍යාවක් අඩංගු විය යුතුය. ඔබගේ ගෙවීම මෙම රීතියට නොගැලපේ නම්, ඔබ ගෙවීමේ අවසානයට ශුන්‍ය අගය සහිත බයිට් එකතු කර පැඩිං බිට් එක සැකසිය යුතුය. මෙම බිටු RTP ශීර්ෂයේ පළමු බයිටයේ පිහිටා ඇති අතර එය වර්ණ ගැන්වූ ටර්කියුයිස් වේ. සියලුම ගෙවීම් බයිට් 0xFF බව සලකන්න, එය u-law නිශ්ශබ්දතාවයේ පෙනුමයි.

RTP පැකට් ශීර්ෂය අනිවාර්ය බයිට් 12 කින් සමන්විත වේ, නමුත් අවස්ථා දෙකකදී එය දිගු විය හැක:

  • පැකට්ටුවක් මූලාශ්‍ර කිහිපයකින් (RTP ප්‍රවාහ) සංඥා මිශ්‍ර කිරීමෙන් ලබාගත් ශ්‍රව්‍ය සංඥාවක් රැගෙන යන විට, ශීර්ෂයේ පළමු බයිට් 12 ට පසුව මෙම පැකට්ටුවේ ගෙවීම සෑදීමට භාවිතා කළ ප්‍රභව හඳුනාගැනීම් ලැයිස්තුවක් සහිත වගුවක් ඇත. මෙම අවස්ථාවේදී, ශීර්ෂයේ පළමු බයිටයේ පහළ බිටු හතරේ (ක්ෂේත්‍ර දායක මූලාශ්‍ර හඳුනාගැනීම් ගණන) මූලාශ්ර සංඛ්යාව පෙන්නුම් කරයි. ක්ෂේත්‍ර ප්‍රමාණය බිටු 4කි, එබැවින් වගුවේ මූලාශ්‍ර හඳුනාගැනීම් 15ක් දක්වා අඩංගු විය හැක. ඒ සෑම එකක්ම බයිට් 4 ක් ගනී. සම්මන්ත්‍රණ ඇමතුමක් සකසන විට මෙම වගුව භාවිතා වේ.

  • මාතෘකාවට දිගුව ඇති විට . මෙම අවස්ථාවේදී, බිට් ශීර්ෂයේ පළමු බයිටයේ පිහිටුවා ඇත X. විස්තීරණ ශීර්ෂයේ, සහභාගිවන්නන්ගේ වගුවට පසුව (ඇත්නම්), එක්-වචන දිගු ශීර්ෂයක් ඇත, ඉන්පසු දිගු වචන. දිගුවක් යනු ඔබට අමතර දත්ත මාරු කිරීමට භාවිතා කළ හැකි බයිට් එකතුවකි. සම්මතය මෙම දත්තවල ආකෘතිය නියම නොකරයි - එය ඕනෑම දෙයක් විය හැකිය. උදාහරණයක් ලෙස, එය RTP පැකට් ලබා ගන්නා උපාංගය සඳහා අමතර සැකසුම් කිහිපයක් විය හැකිය. කෙසේ වෙතත්, සමහර යෙදුම් සඳහා, විස්තීරණ ශීර්ෂ ප්රමිතීන් සකස් කර ඇත. මෙය සිදු කරනු ලබන්නේ, උදාහරණයක් ලෙස, සම්මතයේ සන්නිවේදනය සඳහා ය ED-137 (VoIP ATM උපාංග සඳහා අන්තර් ක්‍රියාකාරීත්ව ප්‍රමිතීන්).

දැන් අපි ශීර්ෂ ක්ෂේත්‍ර වඩාත් විස්තරාත්මකව බලමු. පහත දැක්වෙන්නේ RTP ශීර්ෂයේ ව්‍යුහය සහිත කැනොනිකල් පින්තූරයකි, එය මට ප්‍රතිරෝධය දැක්විය නොහැකි අතර එකම වර්ණවලින් පින්තාරු කර ඇත.

Mediastreamer2 VoIP එන්ජිම ගවේෂණය කිරීම. 8 කොටස
VER - ප්රොටෝකෝල අනුවාද අංකය (වත්මන් අනුවාදය 2);

P - RTP පැකට්ටුව අවසානයේ හිස් බයිට් සමඟ අතිරේකව ඇති අවස්ථාවන්හිදී සකසන ලද ධජයක්;

X - ශීර්ෂය දිගු කර ඇති බව ධජය;

CC - නියත ශීර්ෂයට පසුව CSRC හඳුනාගැනීම් ගණන අඩංගු වේ (වචන 1..3 ට පසුව), වගුව රූපයේ පෙන්වා නැත;

M - රාමුවක ආරම්භයේ සලකුණ හෝ නාලිකාවේ කථනය තිබීම (කථන විරාම අනාවරකයක් භාවිතා කරන්නේ නම්). ග්‍රාහකයේ කථන විරාම අනාවරකයක් නොමැති නම්, මෙම බිටු ස්ථිරව සැකසිය යුතුය;

PTYPE - ගෙවීමේ ආකෘතිය නියම කරයි;

අනුක්‍රමික අංකය - පැකට් අංකය, පැකට් වාදනය වන අනුපිළිවෙල යථා තත්වයට පත් කිරීමට භාවිතා කරයි, මන්ද සැබෑ තත්වය වන්නේ පැකට් යැවූ වැරදි අනුපිළිවෙලින් ග්‍රාහකයා වෙත ළඟා විය හැකි බැවිනි. ආරම්භක අගය අහඹු විය යුතුය, මෙය සිදු කරනුයේ RTP ප්‍රවාහය සංකේතනය කර ඇත්නම්, එය හැක් කිරීමට අපහසු වනු ඇත. එසේම, මෙම ක්ෂේත්රය ඔබට මග හැරුණු පැකට් හඳුනා ගැනීමට ඉඩ සලසයි;

කාල පරාසය - වේලා මුද්රාව. සංඥා සාම්පල වලින් කාලය මනිනු ලැබේ, i.e. පිපිරීමක සාම්පල 160ක් තිබේ නම්, ඊළඟ පිපිරුමේ වේලා මුද්‍රාව තවත් 160ක් වේ. වේලා මුද්‍රාවේ ආරම්භක අගය අහඹු විය යුතුය;

SSRC - පැකේජ මූලාශ්‍ර හඳුනාගැනීම, එය අනන්‍ය විය යුතුය. RTP ප්‍රවාහය ආරම්භ කිරීමට පෙර එය අහඹු ලෙස ජනනය කිරීම වඩා හොඳය.

ඔබ ඔබේම RTP සම්ප්‍රේෂකයක් හෝ ග්‍රාහකයක් සංවර්ධනය කරන්නේ නම්, ඵලදායිතාව වැඩි කිරීම සඳහා ඔබට ඔබේ පැකට් එක වරකට වඩා සමාලෝචනය කිරීමට සිදුවනු ඇත, TShark හි පැකට් පෙරීම භාවිතා කරන ආකාරය ඉගෙන ගන්නා ලෙස මම නිර්දේශ කරමි, එය ඔබට ග්‍රහණය කර ගැනීමට ඉඩ දෙන්නේ එම පැකට් පමණි. ඔබට උනන්දුව. RTP උපාංග දුසිම් ගනනක් ජාලයේ ක්‍රියාත්මක වන පරිසරයක, මෙය ඉතා වටිනා ය. TShark විධාන රේඛාවේදී, පෙරීමේ විකල්ප "-f" විකල්පය සමඟ නියම කර ඇත. 8010 වරායෙන් පැකට් අල්ලා ගැනීමට අවශ්‍ය වූ විට අපි මෙම විකල්පය භාවිතා කළෙමු:
-f "udp port 8010"
පෙරීමේ පරාමිතීන් අත්‍යවශ්‍යයෙන්ම "අල්ලා ගත්" පැකට්ටුවකට ගැලපෙන නිර්ණායක සමූහයකි. කොන්දේසිය මගින් පැකට්ටුවේ ඇති යම් බයිටයක ලිපිනය, වරාය, අගය පරීක්ෂා කළ හැක. තාර්කික මෙහෙයුම් "AND", "OR", ආදිය සමඟ කොන්දේසි ඒකාබද්ධ කළ හැක. ඉතා බලවත් මෙවලමක්.

ඔබට කණ්ඩායම්වල ක්ෂේත්‍ර වෙනස්වීම්වල ගතිකත්වය බැලීමට අවශ්‍ය නම්, ඔබට ප්‍රතිදානය අනුපිටපත් කිරීමට අවශ්‍ය වනු ඇත. ටීෂාර්ක් ගොනුවකට, පසුගිය ලිපියේ පෙන්වා ඇති පරිදි, ප්රතිදානය සම්මත කිරීමෙන් ටීෂාර්ක් දොරටුවේ ටී. ඊළඟට, සමඟ ලොග් ගොනුව විවෘත කරන්න අඩු, vim හෝ විශාල පෙළ ලිපිගොනු සමඟ ඉක්මනින් ක්‍රියා කළ හැකි සහ නූල් සෙවිය හැකි වෙනත් මෙවලමක්, ඔබට RTP ප්‍රවාහයක පැකට් ක්ෂේත්‍රවල හැසිරීමේ සියලු සූක්ෂ්මතා සොයාගත හැකිය.

ඔබට RTP ප්‍රවාහය මඟින් සම්ප්‍රේෂණය වන සංඥාවට සවන් දීමට අවශ්‍ය නම්, ඔබ අනුවාදය භාවිතා කළ යුතුය ටීෂාර්ක් දෘශ්ය අතුරුමුහුණත සමඟ වෙරිමත්ක්. සරල මූසික හැසිරවීම් සමඟ, ඔබට සංඥාවේ තරංග ආකෘතියට සවන් දීමට සහ දැකීමට හැකිය. නමුත් එක් කොන්දේසියක් මත - එය u-law හෝ a-low ආකෘතියෙන් සංකේතනය කර ඇත්නම්.

ඊළඟ ලිපියයි අපි ඔබ සමඟ duplex ඉන්ටර්කොම් එකක් සාදන්නෙමු. හෙඩ්සෙට් යුගලයක් සහ එක් මැදිහත්කරුවෙකු මත ගබඩා කරන්න.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න