Mediastreamer2 VoIP انجن کی تلاش۔ حصہ 8

مضمون کا مواد میری تحریر سے لیا گیا ہے۔ زین چینل.

Mediastreamer2 VoIP انجن کی تلاش۔ حصہ 8

آر ٹی پی پیکٹ کا ڈھانچہ

ماضی میں آرٹیکل ہم استعمال کر رہے ہیں ٹی شارک ہمارے ریسیور اور ٹرانسمیٹر کے درمیان کیپچر شدہ RTP پیکٹ کا تبادلہ ہوا۔ ٹھیک ہے، اس میں ہم پیکج کے عناصر کو مختلف رنگوں میں پینٹ کریں گے اور ان کے مقصد کے بارے میں بات کریں گے۔

آئیے اسی پیکج پر ایک نظر ڈالتے ہیں، لیکن ٹینٹڈ فیلڈز اور وضاحتی نوٹ کے ساتھ:
Mediastreamer2 VoIP انجن کی تلاش۔ حصہ 8

فہرست کے نچلے حصے میں وہ بائٹس ہیں جو RTP پیکٹ بناتے ہیں، جو بدلے میں UDP پیکٹ کا پے لوڈ ہوتا ہے (اس کا ہیڈر سیاہ میں بیان کیا گیا ہے)۔ رنگین پس منظر RTP ہیڈر بائٹس کی نشاندہی کرتا ہے، اور سبز ڈیٹا بلاک کی نشاندہی کرتا ہے جس میں RTP پیکٹ کا پے لوڈ ہوتا ہے۔ وہاں موجود ڈیٹا کو ہیکسا ڈیسیمل فارمیٹ میں پیش کیا گیا ہے۔ ہمارے معاملے میں، یہ u-law (mu-law) کے مطابق کمپریسڈ ایک آڈیو سگنل ہے، یعنی ایک نمونہ سائز میں 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 سٹریم کی خفیہ کاری کا استعمال کیا جاتا ہے، تو اسے ٹوٹنا مشکل ہو گا۔ یہ فیلڈ آپ کو پیکٹ کے قطروں کا پتہ لگانے کی بھی اجازت دیتا ہے۔

ٹائمسٹیمپ - ٹائم اسٹیمپ۔ وقت سگنل کے نمونوں میں ماپا جاتا ہے، یعنی اگر ایک پیکٹ میں 160 نمونے ہیں، تو اگلے پیکٹ کا ٹائم اسٹیمپ 160 سے زیادہ ہوگا۔ ٹائم اسٹیمپ کی ابتدائی قیمت بے ترتیب ہونی چاہیے۔

SSRC - پیکیج سورس شناخت کنندہ، یہ منفرد ہونا چاہیے۔ RTP سلسلہ شروع کرنے سے پہلے اسے تصادفی طور پر تیار کرنا بہتر ہے۔

اگر آپ RTP پیکٹوں کا اپنا ٹرانسمیٹر یا وصول کنندہ تیار کرتے ہیں، تو آپ کو اپنے پیکٹوں کو ایک سے زیادہ بار دیکھنا پڑے گا، اس لیے پیداواری صلاحیت بڑھانے کے لیے، میں تجویز کرتا ہوں کہ آپ TShark میں پیکٹ فلٹرنگ کے استعمال میں مہارت حاصل کریں، یہ آپ کو صرف ان پیکٹوں پر قبضہ کرنے کی اجازت دیتا ہے۔ جو آپ کے لیے دلچسپی رکھتے ہیں۔ ایسے حالات میں جہاں درجنوں RTP آلات نیٹ ورک پر کام کرتے ہیں، یہ بہت قیمتی ہے۔ TShark کمانڈ لائن پر، فلٹرنگ پیرامیٹرز کو "-f" آپشن کے ساتھ مخصوص کیا گیا ہے۔ جب ہم پورٹ 8010 سے پیکٹ حاصل کرنا چاہتے تھے تو ہم نے یہ اختیار استعمال کیا:
-f "udp port 8010"
فلٹرنگ پیرامیٹرز بنیادی طور پر معیارات کا ایک سیٹ ہیں جو "پکڑے" پیکٹ کو پورا کرنا ضروری ہے۔ حالت پیکٹ میں ایک مخصوص بائٹ کا پتہ، پورٹ، یا قدر چیک کر سکتی ہے۔ شرائط کو منطقی آپریشنز "AND"، "OR" وغیرہ کا استعمال کرتے ہوئے جوڑا جا سکتا ہے۔ ایک بہت ہی طاقتور ٹول۔

اگر آپ بیچوں میں فیلڈ کی تبدیلیوں کی حرکیات دیکھنا چاہتے ہیں، تو آپ کو آؤٹ پٹ کو ڈپلیکیٹ کرنے کی ضرورت ہوگی ٹی شارک ایک فائل میں، جیسا کہ پچھلے مضمون میں دکھایا گیا تھا، آؤٹ پٹ ٹرانسفر کا استعمال کرتے ہوئے ٹی شارک دروازے پر ٹی. اگلا، لاگ فائل کا استعمال کرتے ہوئے کھولیں کم، vim یا کوئی اور ٹول جو بڑی ٹیکسٹ فائلوں کے ساتھ تیزی سے کام کر سکتا ہے اور سٹرنگز تلاش کر سکتا ہے، آپ RTP سٹریم میں پیکٹ فیلڈز کے رویے کی تمام باریکیوں کو جان سکتے ہیں۔

اگر آپ کو آر ٹی پی سٹریم کے ذریعے منتقل ہونے والے سگنل کو سننے کی ضرورت ہے، تو آپ کو ورژن استعمال کرنے کی ضرورت ہے۔ ٹی شارک بصری انٹرفیس کے ساتھ ویرشکر. ماؤس کے ساتھ سادہ ہیرا پھیری کے ذریعے، آپ سگنل آسیلوگرام کو سن اور دیکھ سکتے ہیں۔ لیکن ایک شرط پر - اگر اسے u-law یا a-low فارمیٹ میں انکوڈ کیا گیا ہے۔

اگلے آرٹیکل ہم آپ کے ساتھ ایک ڈوپلیکس انٹرکام بنائیں گے۔ دو ہیڈ سیٹس اور ایک انٹرلوکیوٹر پر اسٹاک اپ کریں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں