سامانه پژوهشی – مکانیزم تشویقی برای جریان‌سازی ویدئو در شبکه‌های نظیر به نظیر- قسمت ۱۴

این مکانیزم می‌تواند به دو طریق بسط داده شود. یک مقدار اطمینان ممکن است بسته به اینکه تا چه اندازه گواهی‌نامه‌ها با تجربه‌های همسایه همخوانی دارند، به آن تخصیص یابد. و نظیر‌هایی که نظیر‌های دیگر را با گواهی‌نامه‌های خوب رد می‌کنند ممکن است گواهی‌نامه‌ی جدیدی را برای همسایه‌های خود در زمان ایجاد کاندید‌های دیگر صادر کنند. در این صورت نظیر‌ها به صادر‌کننده‌های گواهی‌نامه‌ی اصلی اعتماد می‌کنند که منجر به ایجاد زنجیره‌ی اعتماد می‌شود.

رانش دادن به همسایه‌های خوب

برای بهبود توزیع کل، نظیرها بستههای رانش را به همسایگان دارای بیشترین رتبه ارسال میکنند. با فرض اینکه منبع خودش دارای رتبهی بالایی در میان همسایگانش و همسایگان خوب میباشد، بستهها ابتدا میان نظیر‌های خوب و بتدریج بین نظیر‌های با رتبه‌های پایینتر توزیع میشوند. نظیرهای خوب تضمین میکنند که بستهها با استفاده از درخواستهای بر مبنای پول، توزیع بیشتری می‌یابند.
تخصیص شیار. استراتژی تخصیص یکسان شیار میتواند به نفع نظیرهای با امتیاز بالا اتخاذ شود. همانند همهی استراتژیهای محرک، باید از آن با دقت استفاده شود. به سختی میتوان بین نظیرهای تازه متصل شده و نظیر‌های بیکار تفاوت قائل شد و بنابراین هر دو، تعداد کمی شیار میگیرند.
همزمانی. تحویل پیامها در نظیر‌ها به صورت ضعیفی، توسط مبادله‌ی پیغام‌های همزمان‌سازی، همزمان شده است. یک پیام همزمانی شامل شماره ترتیب و برچسب زمانی بستهی بعدی که ارسال میشود و زمان باقیمانده تا تحویل آن بسته میباشد. زمانهای تحویل محلی، بر اساس برچسب زمان بسته، پیام همزمانی و زمانهای رفت و برگشت اندازه‌گیری شده محاسبه میشوند. می‌توان با در نظر گرفتن واریانس زمان رفت و برگشت و با معرفی تخمینی برای صحت همگامی در نظیر‌ها برای وزن دادن به پیام‌های همزمانی ( مشابه دستگاه مختصات مجاری Vivaldi) همزمانی را بهبود داد.

کدگذاری منبع و شبکه

نظیرها روی همسایگان خود به منظور ارسال تذکر برای بستههای لازم تکیه میکنند. فرصت‌هایی که نظیرها از یکدیگر بدست می‌آورند با تطبیق کدگذاری منبع، بهبود مییابد. در سادهترین شکل، منبع کد تراشیدگی (erasure code) را برای ایجاد n بسته‌ی کدگذاری شده از یک بلوک با k<n بسته‌ی اصلی استفاده کرده و n بسته‌ی کدگذاری شده را توزیع می‌کند.
نظیری که هر یک از k بستهی کدگذاری شده را دریافت کرده است، میتواند هم k بستهی اصلی و هم n-k بستهی کدگذاری شده‌ی از دست رفته را بازسازی کند. با توجه به اینکه نظیرها بطور تصادفی بستهها را برای درخواست شدن انتخاب میکنند، کدگذاری منبعاحتمال اینکه دو مجموعهی ناکامل از بستهها برای بلاک یکسان با هم همپوشانی نداشته باشند را افزایش میدهد. کدهایاشیدگی بهینه، هیچ مخارجی ندارند، اما برای بلاکهای با اندازه‌ی بزرگ ناکارآمد هستند. با این حال این کدها برای سیلاب جریان به دلیل بافرهای کوچک و حتی سایزهای بلوک کوچکتر مناسب هستند. مثالهایی برای کدهای تراشیدگی بهینه، کد چندجملهای جزئی (trivial ponynomial code) یا کدهای Real Solomon هستند. برای اندازه‌های بلوک بزرگتر، کدهای نزدیک تراشیدگی بهینه، راندمان بهتری را با هزینه‌ی مخارج فقط چند درصد فراهم می‌کنند.
نسخههای اولیهی سیلاب جریان از کدگذاری منبع بسیار سود بردهاند، به خصوص تحت تلفات بسته‌، پیشروی‌ (churn)، و هنگامی که پهنای باند آپلود نزدیک به میزان جریان نرخ بیت است. هرچند با نسخههای جدیدتر به دلیل مکانیزم رانش و تخصیص شیار پیشرفته این مزایا بتدریج کاهش یافتند. متناوبا، کدگذاری شبکه ممکن است شانس اینکه دو نظیر بتوانند بستهها را با هم رد و بدل کنند را بیشتر افزایش دهد. همچنین میتواند به حذف اکثر تکرارهایی که در سیستم‌مان داریم، کمک کند. برای پیادهسازی کدگذاری شبکه، استراتژی تذکر و بسط allowed fast set از استراتژی این-درازای-آن باید اتخاذ شود. اگر اندازه‌ی بلوک کوچک باشد، هزینههای محاسباتی کدگذاری شبکه قابل چشم پوشی خواهد بود.

مکانیزم‌های تشویقی استفاده شده در برنامه‌های تجاری

Kazaa : کاربرها مقدار شهرت خود را در اختیار یک سرور مرکزی قرار می‌دهند. این سیستم براحتی می تواند با ایجاد یک شهرت بالا بدون در نظر گرفتن سهم، فریفته شود.
Maze : به سیستم‌هایی اشاره می‌کند که امتیازاتی توسط دانلود مصرف شده و یا توسط آپلود اکتساب می‌شوند. یک سرور مرکزی تکه‌هایی از انتقال‌های روزانه و امتیازات کل هر کاربر را در خود نگه می‌دارد. آپلود کردن امتیاز بیشتری را نسبت به دانلود کردن به همراه دارد. نظیر‌ها می‌توانند قبل از اینکه سرعت دانلود تعدیل شده و یا نزولی شود، حداقل ۳GB داده را دانلود کنند.
BitTorrent: مکانیزم این-به‌ازای-آن که در آن یک نظیر، علاقمند به آپلود به نظیر‌هایی است که بیشترین نرخ ارسال را به آن ها دارند. در این روش هیچ تاریخچه‌ی درازمدتی نگه‌داری نمی‌شود.
eDonkey: این-به‌ازای-آن های برپایه‌ی حجم، که گره‌ها تاریخچه‌ی اختصاصی دراز مدتی از انتقال‌ها را در خود نگه‌ می‌دارند. یک نظیر علاقمند به آپلود به نظیر‌هایی است که بیشترین داده را در گذشته در اختیارش قرار داده‌اند.
eMule: گونه‌ی دیگری از eDonkey است. یک تاریخچه‌ی اختصاصی دراز مدتی از انتقال‌ها در سرور‌های مرکزی eMule نگه داشته می شود. نظیر‌ها، تمایل به آپلود به نظایری را دارند که آپلود/دانلود بالاتری دارند. اعتبار‌ها بمنظور جلوگیری از تداخل با اعتبار‌های شخص دیگر، در سرور‌ها نگه‌داری می‌شوند.
Credence: یک سیستم شهرت توزیع شده است که برای خنثی کردن خرابی محتوا در سیستم‌های اشتراک فایل نظیر به نظیر طراحی شده‌اند. Credence، یک نظیر را قادر می‌سازد که سندیت محتوای آنلاین را تعیین کند. شرکت کنندگان در شبکه به شیء‌ها رای می‌دهند. Credence این آرا را به یکدیگر متصل می‌کند و آنها را توسط یک داور همسانی وزن می‌کند که این وزن ها از نظیر‌های همفکری که آرا را از نظیر‌های شرکت‌کننده در اسپم آرا می‌کاهند، جمع آوری شده است. این شمای همبستگی رای‌دهنده، مشوقی را برای رای‌دادن صادقانه و تخفیف اثر نظیر‌های متقلب ایجاد کرده است.
Karma: یک قالب‌کاری اقتصادی توزیع شده است که در آن هر نظیر یک مقدار سرنوشت ثابت دارد. این سیستم از DHT برای نگه‌داشتن تکه‌هایی از اشیا و نظیر‌ها استفاده می‌کند. هر نظیر، مجموعه‌ی بانک گره‌های مربوط به خود را دارد که تکه‌ی سرنوشت آنرا در خود نگه می‌دارد. زمانی که بسته‌ای مطلوب نظیری باشد، تهیه کننده با کمترین قیمت انتخاب می‌شود. پرداخت از طریق مجموعه‌ی بانک قبل از انتقال بسته صورت می‌گیرد. تمامی تقابل‌ها مکانیزم‌های رمز‌گذاری را برای ایمن بودن استفاده می‌کنند. به یک نظیر جدید مقدار مطالبه‌شده‌ای از سرنوشت پاداش داده می‌شود تا با آن شروع کرده و بطور خودکار به یک گره بانک برای منتخبی از نظیر‌های دیگر مبدل شود. به صورت دوره‌ای، مجموعه‌های بانک‌ها، اصلاحاتی را برای تورم و رکود سرنوشت‌ صورت می‌دهند.
Scrivener: از سیستم حسابرسی توزیع شده‌ای که هر گره تاریخچه‌ای از بدهی‌ها و یا اعتبار‌ها به همراه یک مقدار اطمینان را برای مجموعه‌ی محدودی از همسایه‌ها در خود نگه می‌دارد. تازه وارد‌ها مقدار کمی از اعتبار اولیه را از دیگران دریافت می‌کنند. Scrivener متکی بر تشخیص هویت قدرتمندی است که قابل سفید‌کاری[۸۷] نیست. اگر گره‌ها فاقد هر گونه رابطه‌ی جایگذاشتی باشند و بخواهند داده‌ای را منتقل کنند، یک داد و ستد غیرمستقیم[۸۸] باید صورت پذیرد که در آن، اعتبار در مسیر منبع به مقصد شمرده می‌شود.

روش پیشنهادی

ما به این نتیجه رسیدیم که انتخاب نظیرها برای گرفتن بسته‌ها در سطح نظیرهای فرزند یک فرصت خاص برای مقابله با گره‌های سودجو و بالا بردن کیفیت سرویس را فراهم می‌آورد. در ادامه ما یک مکانیزم بر پایه امتیاز را برای انتخاب گره سرویس گیرنده در سیستم ارائه می‌کنیم. همکاری در سیستم با، در اولویت بودن برای دریافت بسته‌ها پاداش داده می‌شود. گره‌های سودجو در دریافت از گره‌های دیگر، البته اگر انتخابی وجود داشته باشد، از شانس کمتری برخوردار هستند، بنابراین کیفیت کمی را تجربه می‌کنند. ما فرض می‌کنیم گره‌ها در این سیستم به صورت منطقی، برای بالابردن کارایی شبکه، همکاری خود را در بالاترین حد، نگاه می‌دارند.[۱۳،۱۴،۲۱]
اکثر پژوهش‌ها ارزیابی گره‌ها را با استفاده از تعداد داد و ستد موفق و داد و ستد نقص‌دار محاسبه می‌کنند، اما این روش سبب وقوع پدیده‌هایی همانند عدم اختلاف بین سرویس‌ها خواهد شد. این روش اساسا به موارد زیر اشاره می‌کند: (۱) گره‌هایی که سرویس‌هایی را تدارک می‌بینند، ، ؛ (۲) گره‌های سودجو، ، . در هر دو حالت امتیاز یکی است و بنابراین بصورت آشکاری نامعقول است. علاوه بر این، این روش، ارزیابی را متنوع می‌کند. این معیار می‌تواند گره‌ها را برای شرکت فعالانه در به اشتراک‌گذاری منابع ترفیع دهد و علاوه بر آن، گره‌ها را در بهبود کیفیت داد و ستد‌ها کوشا می‌سازد.
تا زمانی که داد و ستد اول به موفقیت نینجامد و مقدار نیابد، مقدار اطمینان باید باشد حتی در صورتی که دو گره هرگز داد و ستدی را انجام نداده باشند. اگر اینگونه باشد، بطور واضحی غیرقابل قبول است که مقدار اطمینان بتواند به مقدار بیشینه‌ برسد. در واقع می‌تواند سرعت نزدیک شدن به مقدار بیشینه‌ را به تاخیر بیندازد. بنابراین در صورتی که گره‌ای بخواهد مقدار اطمینان خود را ذخیره کند، باید سرویس مطمئنی را پیشنهاد داده و فعالیت خود را تعدیل نماید.

محاسبه‌ی مقدار شراکت موثر گره

مقدار شراکت گره بصورت تنگاتنگی به کیفیت جریان، مقدار و کیفیت توصیف شده توسط مقدار اطمینان وابسته است. ما می‌توانیم مقدار شراکت قطعی را در یک دوره‌ی قطعی از زمان بصورتی که فرمول (۲) نشان می‌دهد، محاسبه نماییم:
می‌توانیم را برای دلالت بر مقدار شراکت در نتیجه‌ی فایپ آپلود در طول زمان تا برای گره بکار ببریم. و این مقدار توسط ، و ، در زمان تعیین می‌شود.
علاوه بر این، ما باید تابع تضعیفی را برای تنبیه کردن گره‌ها به منظور اجتناب از رفتار دانلود بدون آپلود تنظیم کنیم. می‌توانیم مقدار تضعیف را از روی فرمول (۳) محاسبه کنیم:
برای دلالت بر مقدار تضعیف برای گره در زمانی که گره منبع را از شبکه در طول زمان تا دانلود می‌کند، تنظیم شده است. بطور مشابه، این مقدار توسط فاکتور‌های بالا تحت تاثیر قرار می‌گیرد.
مقدار شراکت موثر گره به و مرتبط است. ثوابت نرمالیزاسیون و بترتیب نشان دهنده‌ی ضریب پاداش‌دهی و ضریب مجازات، و نیز به عنوان ضریب بصورت نشان داده شده در فرمول (۴) هستند:

روند انتخاب پاسخ به درخواست سرویس

فرض کنید که گره مصرف کننده و گره تدارک بیننده است. گام‌های زیر کل روند ارسال جریان است:
گام ۱: زمانی که گره دانلود قسمت را تقاضا می‌کند. اگر آن قسمت موجود باشد، به گام ۲ پرش می‌کند و در غیر اینصورت به گام ۴ خواهد رفت.
گام ۲: برطبق گام ۱، باید امتیاز گره را با بقیه گره‌های همسایه مقایسه نماییم. بعد از اینکه گره امتیاز گره را دریافت می‌کند، می‌تواند براحتی یک تقاضای دانلود ایجاد نماید. در اینصورت به گام ۳ می‌رود.
گام ۳: در ابتدا تشخیص می‌دهیم که با شرایط دانلود مطابقت دارد که به این صورت است که مقدار شراکت موثر مربوط به را با آستانه‌ی دانلود مقایسه می‌کند. اگر بزرگتر باشد، می‌توانیم دانلود کنیم و به گام ۴ برویم. یا می‌توان از تقاضای دانلود امتناع کرد. بعد از یک مدت زمانی، برای درخواست دانلود دوباره به گام ۱ می‌رویم.
گام ۴: امتیاز محاسبه شده را به می‌دهد.
تصمیم برای سرویس‌دهی به یک گره، به امتیاز درخواست کننده بستگی دارد. البته ما در اینجا دو سناریو برای ارسال داریم، به یک کاربر اجازه بدهد که برای گره‌هایی با رتبه همسان و یا پایین‌تر به عنوان فراهم آورنده عمل کند. کیفیت از گذردهی متفاوت است، چون زمان ضرب العجل هر بسته را نیز در نظر می‌گیرد. اصولا، پارامتر کیفیت پارامترهای دیگر کارایی را در بر می‌کیرد، از جمله تاخیر و از بین رفتن بسته‌ها. کیفیت تحویل را می‌توان به عنوان عملگری از همکاری، امتیاز و یا رتبه در نظر گرفت. عملگر کیفیت به سیستم بستگی دارد.
وقتی یک گره به گره دیگری متصل می‌شود، امتیازی ندارد. هر گره برای گره‌هایی با امتیاز صفر، سرویس بهترین تلاش را ارائه می‌دهد، بدین صورت که اگر گره ارائه دهنده ظرفیت خالی داشته باشد، آن را در اختیار گره درخواست‌کننده می‌گذارد، البته برای جلوگیری از قحطی به صورت تصادفی مقداری از ظرفیت ارسال را به صورت رانش، در اختیار گره‌های تازه وارد قرار می‌دهیم. کیفیت این سرویس ممکن است از یک سیستم به سیستم دیگر فرق کند. برای مثال، یک گره ارائه دهنده ممکن است هیچ وقت بیکار نباشد، و به گره‌های تازه وارد سرویس ندهد (با اینکه به صورت تصادفی ممکن است به گره‌های تازه وارد داده‌ای را رانش دهد). بنابراین، کیفیت سرویس بهترین تلاش می‌تواند بسیار غیرقابل پیش‌بینی باشد و بیشتر مواقع منجر به ارائه سرویس با کیفیت پایینی می‌شود. برای اینکه کارایی را بهبود بدهیم و کیفیتی بالاتر از کیفیت بهترین تلاش به دست بیاوریم، یک گره مجبور است تا در سیستم همکاری کند و نمره خود را افزایش دهد.
کد ارسال بسته و کم کردن امتیاز گره :
void AGApp::handleFrameRequest(NodeHandle& SrcNode,int frameNo,bool push)
{

دانلود کامل پایان نامه در سایت pifo.ir موجود است.