مقاله – مکانیزم تشویقی برای جریانسازی ویدئو در شبکههای نظیر به نظیر- قسمت ۱۳ |
یکی از مشکلترین و اساسیترین چالشها در محاسبات نظیر به نظیر، ارائه مشوقهایی به نظیرها، برای به اشتراکگذاری منابع آنهاست، چون اساس P2P مبتنی بر همکاری است. برای نمونه در Gnutella نزدیک به ۹۸% از پاسخها توسط ۲۵% از میزبانهای به اشتراکگذاری و تقریبا ۵۰% از پاسخها صرفا توسط ۱% از میزبانهای به اشتراکگذاری ارسال شدهاند. بدیهی است وجود مکانیزمی، برای ممانعت از دریافت بدون ارسال، برای تمامی میزبانها و بطور عمده برای سیستم مفید میباشد. به روز رسانی نرمافزار کلاینت برای کم کردن کردن پهنای باند دریافت گرههای سودجو، راهکاری عملی نیست، چرا که نرمافزار میتواند توسط شخص سومی تغییر یابد. مثالهای برجستهی آن شامل Kazaa و نسخهی اصلاح شدهی آن، KazaaLite هستند[۷].
چیزی که مساله را در داخل پوششهای بزرگ مشکل میسازد این است که نظیرها فقط با کسر کوچکی از نظیرها تقابل دارند. نگهداری تاریخچهای اختصاصی از نظیرهای خوب و بد، مقیاسپذیر نیست، بخصوص در نظر گرفتن این که هزینه عوض کردن شناسههای آنلاین در اکثر سیستمهای برخط صفر است (توسط حملات white-washing و Sybil مورد بهرهبرداری قرار میگیرد). سیستمهای کارآمدتر، با به اشتراکگذاری یک تاریخچهی مشترک، عقاید نظیرهای دیگر را به کار میگیرند. چنین راهکارهایی معمولا با دو چالش مواجهاند. اول اینکه، برای ذخیره، به روزرسانی و پرسوجوی اطلاعات رتبهبندی، حافظه و ارتباطاتی مورد نیاز است که برای پیادهسازی، از سرورهای مرکزی و یا با تحمل هزینههای سربار ارتباطی بالا برای سیستمهای پخششده باید استفاده کرد. در ثانی، چنین سیستمهایی نسبت به تبانی نظیرهای بدخواه آسیبپذیر هستند. نظیرهای بدخواه، میتوانند رتبهی یکدیگر را در سیستم بالا ببرند. این تبانیها را میتوان توسط اتخاذ تاریخچههای به اشتراکگذاشتهشدهی غیرعینی، که در آن، نظیرها به نظیرهایی که خود به آنان امتیاز دادند، سرویس میدهند. Karma یک مکانیزم نمونه، بر پایه استفاده از میکرو-پرداختها است.
یک راهکار ساده و محبوب دیگر، مکانیزم این-در ازای-آن است. به بیانی ساده، یک نظیر، وقتی بستههایی را با نظیر دیگر به اشتراک میگذارد که آن نظیر نیز بستههایش را با دیگری، به اشتراک بگذارد. واضح است که، یکی از این دو نظیر مجبور است ارسال بستهها را برای جلوگیری از بنبست[۷۸] و قحطی[۷۹] را شروع نماید و بنابراین خطر پشتیبانی از یک گره سودجو را به جان بخرد. این مشکل را میتوان تا حدی و با به اشتراک گذاشتن بستههای خاصی، را به رایگان، حل کرد. بستههای رایگان براساس شناسهی گیرندهها تعیین میشوند. رویکردهای ساده، از دو تابع درهمریز[۸۰] استفاده میکنند، یکی برای آدرسهای IP و دیگری برای شماره توالیها و یک بسته در صورتی رایگان است که مقادیر درهمریخته آن مطابقت داشته باشند. مجموعهی بستههای رایگان در BitTorrent به عنوان مجموعه سریع[۸۱] معروفند. طبیعتا، این-در ازای-آن فقط برای پروتکلهای با مبادلهی بستهی دوسویه امکانپذیر است که شامل پروتکلهای برپایهی DAG و بسیاری از پروتکلهای بر پایهی درخت نمیشود. تلاشهایی که برای غلبه بر این محدودیتها در درختها صورت گرفته، معمولا جریانها را به باریکههایی تقسیم میکنند و متناوبا درختها را برای دستیابی به تقارن بیشتر بازسازی میکنند، یعنی وظایف والدینی-فرزندی بطور متناوب عوض میشود و والدین میتوانند در صورتی که فرزندانشان در گذشته چیزی به اشتراک نگذاشته باشند، آنها را تنبیه نمایند. متاسفانه چنین تلاشهایی، همانند تمامی رویکردهای تاریخچهی اختصاصی، مقیاسپذیر نیستند.
برای جریانسازی نظیر به نظیر، دادن مشوقهایی به نظیرها برای به اشتراک گذاری کافی پهنای باند ارسال به منظور توزیع سریع بستهها ضروری است. مکانیزمهای مشوق به صورت مجازی تمامی قسمتهای سیستم را تحت تاثیر قرار میدهند.
مقایسهای با به اشتراکگذاری فایل
مابین به اشتراکگذاری فایل و جریاندهی زنده چندین تفاوت وجود دارد. جریاندهی زنده از بافرهای کوچکی استفاده میکند و بستهها مجبورند به موقع تحویل داده شوند. این محدودیتها، هم مزایایی و هم معایبی دارند. ممکن است زمان دانلود کاربران سودجو در برنامههای اشتراکگذاری فایل، طولانیتر شود، اما هیچ جریمهای برای این عملکردشان وجود ندارد. در مقابل، سودجوئی در برنامهی جریانسازی زنده ممکن است به سرعت منجر به از دست رفتن بستهها و کاهش کیفیت بازپخش شود. بنابراین با یک مکانیزم تشویقی خوب ، سودجویان علاقمند به استفاده از سیستم، چارهای به جز قطع سودجوئی نخواهند داشت. از دیدگاه منفی، سودجویان و نظیرهای کند هم مقداری از پهنای باند را مصرف میکنند و به خاطر وجود بافرهای کوچک، در صورتی که پهنای باند کل اندک باشد، این امر ممکن است منجر به تلفات بسته در نظیرهای خوب شود.
برتری بعدی، سربار اطلاعرسانی است. تمامی نظیرها مجبورند متناوبا به همسایههای خود اطلاعرسانی کنند، در غیر اینصورت از لیست همسایگی حذف میشوند. این کار تعداد همسایههایی که یک نظیر میتواند بطور یکجا حفظ کند را محدود میکند. بنابراین داشتن همسایههای کمتر و ارسال بستههای کمتر به جای آن منطقیتر است.
در جریانسازی زنده، منبع ارسال یک نقطهی نقص منحصر به فرد[۸۲] است. اگر منبع، شبکه پوششی را ترک کند، تمامی نظیرها تحت تاثیر قرار میگیرند. بنابراین حفاظت از منبع در برابر حملات عدم پذیرش سرویس[۸۳] و نظیرهای بدخواه الزامی است. این کار برای مثال میتواند با استتار نقش آن به عنوان منبع، از چشمان دیگران انجام شود.
پنهان کردن منبع. منبع یک بافر ثانویه دارد و همانند نظیرهای دیگر، تقاضای بسته میکند. هنگام انجام چنین کاری، برخی پیشگیریها در زمان ارسال تذکرها و تقاضاها باید صورت گیرد. زمانی که تذکری به یک همسایه ارسال میشود، بستههایی که برای آنها، همسایه به عنوان ریشهی درخت توزیع رانش [۸۴]بسته انتخاب شده، باید به تذکر افزوده شوند. علاوه بر آن، همسایه نباید تقاضایی برای آن بستهها دریافت کند. بستههای دیگری که منبع نمیتواند از طریق همسایگی به آنها دسترسی پیدا کند، از طریق بافر اصلی افزوده میشوند (و شاید بتوانند بار دوم رانش داده شوند).
متاسفانه رانش دادن بستهها به صورتی که در توضیح دادیم، نقش منبع را به ریشههای انتخاب شده در داخل همسایگی خود آشکار میکند. یک حقهی ساده میتواند از این کار ممانعت کند. بستهها در ابتدا و قبل از شروع توزیع، تعداد تصادفی از جهشها را پیش میبرند. در هر جهش، پیشروی با احتمال ثابتی متوقف میشود. با مشاهدهی بستهها و تذکرهای رانش داده شده، نظیرها ممکن است هنوز قادر به حدس زدن اینکه آیا منبع همسایگی آنها هست یا نه، خواهند بود، اما این کار مشکلتر میشود.
برای افزایش بیشتر امنیت، منبع میتواند تکرار[۸۵] شود. مشکلات زیر نیز در زمان تکرار منبع باید در نظر گرفته شوند:
- المثنیها باید محتوای یکسانی را با اعداد توالی یکسان تحویل دهند.
- استامپهای زمانی بستهها باید یکی باشد
- عمل رانش دادن بستهها باید برای اجتناب از تکثیر، در بین المثنیها تقسیم شود.
۳٫۶٫۳ استراتژی این-در ازای-آن
مکایزم این-در ازای-آن در BitTorrent برای محدود کردن سودجوئی استفاده شده است. آدرس IP بیشتر به جای شناسهی یک نظیر، برای تعیین بستههای موجود آزاد استفاده شده است، این کار این اطمینان را به ما میدهد که سودجویان نمیتوانند تمامی بستهها را با اجرا کردن پروتکل چندگانه در پورتهای UDP مختلف، بدست آورند. برای بستههای غیرآزاد، نرخ بازپخش، که تعیین میکند از چند بیت در نظیر در عوض برای ارسال یک بیت انتظار میرود، باید برآورده شود. این نرخ متناوبا با بار کنونی تطبیق داده میشود.
رتبهبندی همسایهها
همسایهها یک رتبهبندی را برای تصمیمگیری دربارهی اینکه همسایهها را حذف کنند و یا همسایهها را برای پیشبردن بستههای رانشی انتخاب نمایند، دریافت میکنند. رتبهها توسط محاسبهی یک نمره و مرتبسازی همسایهها توسط نمره تخصیص داده میشود. نمرهی یک همسایه توسط تعداد بستههای دریافتی تعیین میشود. پارامترهای دیگری نظیر پیغامهای اضافهباری نیز با بهبودهای کمی، به معادله اضافه میشوند.
حذف کردن همسایهها. هنگامی که نظیرهایی خوبی در دسترس هستند، پشتیبانی از نظیرهایی که فقط تعداد کمی از بستهها را به اشتراک میگذارند یا در دوردست واقعاند هیچ مزیتی ندارد. برای اینکه سیستم قادر به حذف کردن همسایهها باشد، در ابتدا باید اطمینان یابد که اتصال بعد از حذف آن گره هنوز پابرجا خواهد ماند. اگر این مورد برقرار باشد، نظیرها براساس تاخیر تجربه شده، تصمیم میگیرند که یا پهنای باند را بهبود دهند (بر اساس رتبه) و یا محلیت را. برای اجتناب از ساقط شدن نظیرهای سریع به جای نظیرهای بسیار کندتر، صرفا به این دلیل که نظیرهای سریع اندکی دورتر واقعاند یا مسیر دیگری در نزدیکی وجود دارد، در ابتدا و قبل از ساقط شدن، باید بررسی شوند.
توصیهنامهها و گواهینامههای همسایگی
در حالی که استراتژی این-در ازای-آن مقدار دادهای که به نظیرهای سودجو ارسال میشود را محدود میکند، مکانیزم دیگری برای جلوگیری از خرابکاری همسایههای بد، لازم است. برای این کار، تعیین رتبهی نظیرها قبل از مبادلهی بستهها، برخی مرتبسازیهای تاریخچه یا مکانیزمهای توصیهنامه را پیشنهاد میکنند. استفاده از تاریخچههای به اشتراکگذاشته شده، با در نظر گرفتن هزینهی ارتباطات، پرهزینه میشود. تاریخچههای اختصاصی با افزایش تعداد نظیرها، قابل مقیاسبندی نیستند. نداشتن یک تاریخچه به این نکته اشاره میکند که نظیرها در ابتدا مجبورند حضور قبلی خودشان را به محض الحاق به شبکه اثبات کنند، در غیر اینصورت یک مکانیزم ثبتنام برای جلوگیری از حملات white-washing و Sybil لازم خواهد بود. در StreamTorrent، نظیرها از همسایههای خود در مورد همسایههای بیشتر سوال میکنند. همسایهها در عوض آن با مجموعهای از همسایههای خود برطبق شناسهی متقاضی و رتبه پاسخ میدهند. در حالی که این استراتژی احتمال گرفته شدن غیرسودجوها را بعنوان همسایهی غیرسودجو دیگر افزایش میدهند، نمیتواند هیچ تضمینی را در اختیار قرار دهد. محدودیت اصلی این است که همسایهها تقاضاهای الحاقی را دریافت میکنند که هیچ اطلاعاتی دربارهی فرستندهای که الحاق را تقاضا کرده، ندارند. این کار در چندین زمان ظاهر میشود:
- یک نظیر ممکن است همسایههای کافی داشته باشد و بنابراین درخواست الحاق را رد کند. این نظیر مجبور است لیستی از کاندیداهای متناوب را بدون داشتن هیچگونه اطلاعات رتبهبندی دربارهی گیرنده تالیف کند.
- نقاط ورودی فاقد هرنوع اطلاعات رتبهبندی هستند و بنابراین کاندیدهای تصادفی را برمیگردانند. این کاندیدها نخواهند فهمید که نقطهی ورودی آدرس را فراهم کرده است.
- سودجیان میتوانند آدرس نظیرهای خوب را مبادله کرده یا در مورد آنها تبانی کنند.
یک راهکار جزئی برای این مساله توسط پذیرش گواهینامهها و زنجیرهای از اعتمادها[۸۶] داده شده است. گواهینامهای برای هر توصیهنامه صادر میشود. اگر نظیر و نظیر همسایههای مشترک داشته باشند، میتواند گواهی نامهای را برای به صادر کند. یک گواهینامه شامل شناسه و رتبهی صادرکنندهی نظیر توصیه شده است. با این وجود، گواهینامهها باید به دقت استفاده شوند تا موجب بنبست و قحطی نشوند. همسایههای جدید هیچ رتبهای ندارند و باید با اینحال قادر به ملحق شدن به یک جریان باشند. نظیرهای بیکار بطور نمونه رتبهی بدی دارند اما میتوانند خود را بعنوان همسایههای جدید وانمود کنند. در نتیجه مکانیزمی برای پاداش دادن به نظیرهای با رتبهی بالا استفاده شده، برای مثال با:
- کم کردن نرخ بازپخش به اجرا درآمده توسط استراتژی این-بهازای-آن.
- زدودن همسایههای بد، به جای ردکردن الحاقها
- تخصیص ظرفیت یدکی در همسایه
نیازی نیست که گواهینامهها بر اساس رمزنگاری کلید عمومی باشند. نظیرهای توصیه شده که تقاضاهای الحاقی را دریافت میکنند، تنها کسانی هستند که نیاز به تایید گواهینامهها دارند. رمزنگاری متقارن برای این منظور کافی است. نظیرها در StreamTorrent، همسایههای خود را در داخل چهار گروه بسته به رتبهی آنها کلاسبندی میکنند. برای هر همسایهی جدید، یک کلید تصادفی بار هر یک از چهار گروه تولید شده و به همسایهی جدید فرستاده میشود. برای صادر کردن یک گواهینامه، همسایه گروه گیرنده را براساس رتبهاش محاسبه کرده و کلید تصادفی مربوطه را با شناسهی گیرنده درمیآمیزد. گواهینامه نه قابل انتقال به نظیرهای دیگر است و نه قابل استخراج توسط گیرنده برای تعیین رتبهاش.
[جمعه 1399-09-21] [ 02:31:00 ق.ظ ]
|