مترجم: مریم اسماعیلی پور
منبع:راسخون


جریان سازی ویدیو را می توان به دو دسته طبقه بندی کرد : زنده و برحسب تقاضا. در یک نشست جریان سازی زنده ، یک محتوی ویدیویی زنده به تمامی کاربران بلادرنگ منتشر می شود. پخش ویدیو تمامی کابران همگام سازی شده است. به عکس، کاربران ویدیو بر حسب تقاضا از انعطاف پذیری مشاهده هر ویدیو کلیپی که می خواهند لذت می برند. پخش همان ویدیو کلیپ برای کاربران مختلف همگام سازی شده نیست.در این بخش ، ما چند سیستم جریان سازی ویدیو زنده P2P با استفاده از ساختارهای مختلف پوشان معرفی می کنیم. سیستم های ویدیویی بر حسب تقاضای P2P در بخش 3 مورد بحث قرار می گیرند.

سیستم های مبتنی بر درخت

در روزهای اولیه از اینترنت، چند پخشی لایه شبکه سطح آی پی به عنوان روشی موثر برای جریان سازی صدا و تصویر به گروهی از کاربران مطرح شده بود. در یک نشست چندپخشی IP، منبع سرویس دهنده ویدیو به تمامی کاربران شرکت کننده در نشست بوسیله یک درخت چندبخشی که توسط مسیریاب های IP در شبکه فرم دهی شده متصل شده است. متاسفانه ، بیشتر به دلیل سربار مسیریاب جهت مدیریت گروه های چندپخشی و پیچیدگی کنترل انتقال برای نشست های چندپخشی ، چندپخشی IP هرگز به طور گسترده در اینترنت به کار گرفته نشد. در عوض، عملکرد چندپخشی اخیرا در لایه کاربرد پیاده سازی شده است. سرویس دهنده های ویدیو و کاربران شبکه های پوشان سطح کاربردی جهت توزیع محتوی ویدیو فرم می دهند.

جریان سازی تک درختی

مشابه به یک درخت چندپخشی IP فرم دهی شده توسط مسیریاب ها در سطح شبکه، کاربران شرکت کننده در یک نشست جریان سازی ویدیو می توانند درختی در لایه کاربرد که توسط منبع سرویس دهنده ویدیو به عنوان ریشه تغذیه می شود فرم دهند. هر کاربر در سطحی خاص به درخت می پیوندد. این کاربر ویدیو را از نظیر پدرش در سطح بالایی دریافت می کند و ویدیوی دریافتی را به نظیرهای فرزندی خود در سطح پایین تر پیش می فرستد. نمونه های اولیه از جریان سازی مبتنی بر درخت شامل Overcast و ESM می شود.
دو گره نظیر در سطح 1 وجود دارد و ویدیو را به طور مستقیم از سرویس دهنده دریافت می کنند. چهار گره نظیر در سطح 2 ویدیو را از والدین خود در سطح یک دریافت می کنند و سه عدد از آنها ویدیوی دریافتی را به چهار گره نظیر در سطح پایینی پیش می فرستند.
با توجه به مجوعه از گره های نظیر، راه های بی شماری برای ساخت یک درخت جریان سازی جهت اتصال آنها به هم وجود دارد. ملاحظات مهمی همچون عمق درخت و fan-out گره های داخلی مورد توجه است. گره های نظیر در سطوح پایین تر درخت ویدیو را بعد از گره های نظیر در سطوح بالایی دریافت می کنند. برای کاهش تاخیرهای گره های نظیر در سطح پایین، یک درخت جریان سازی با کمترین سطوح ممکن ارائه می شود. به عبارت دیگر، هم بندی درخت باید در هر سطح fan out تا حد ممکن گسترده شود. با این حال، یک نظیر در یک گره داخلی با توجه به محدودیت پهنای باند آپلودش، تنها می تواند ویدیو را با نرخ کامل به تعداد محدودی از نظیرهای فرزند آپلود کند. حداکثر درجه fan out یک نظیر توسط ظرفیت آپلودش محدود شده است. در واقع، برای نیل به اهداف تعادل بار و مقاومت خرابی، درجه fan-out واقعی یک نظیر معمولا کمتر از حداکثر درجه اش تعیین می شود.
به غیر از ساخت درخت ، یکی دیگر از عملیات مهم برای جریان سازی مبتنی بر درخت نگهداری درخت می باشد. کاربران در یک نشست جریان سازی ویدیو P2P خیلی پویا می توانند باشند. یک نظیر ممکن است یک نشست را در هر زمانی ترک کند چه به صورت gracefully و یا چه به طور غیرمنتظره مانند زمان خرابی ماشین. پس از ترک یه نظیر، همه ی فرزندانش در درخت جریان سازی از منبع سرویس دهنده ویدیو قطع شده و دیگر نمی توانند ویدیو را دریافت کنند. برای به حداقل رساندن این اختلال، درخت جریان سازی هر چه زودتر نیازمند بازیابی است. شکل 2a سناریوی قطع و وصل شدن یک نظیر هنگامی که نظیر نزدیک به منبع سرویس دهنده درخت را ترک می کند نمایش می دهد. پنج نظیر از سرویس دهنده ویدیو قطع شده اند. درخت جریان سازی بوسیله جابجایی مجدد نظیر های تحت تاثیر قرار گرفته به سرویس دهنده و دیگر نظیرهای تحت تاثیر قرار نگرفته بازیابی شده است.
ساخت و نگهداری درخت می تواند هم به صورت مرکزی و هم به صورت توزیع شده انجام شود. در راه حل مرکزی، یک سرویس دهنده مرکزی ساخت و بازیابی درخت را کنترل می کند. هنگامی که یک نظیر به سیستم می پیوندد ، با سرویس دهنده مرکزی تماس می گیرد. با توجه به هم بندی موجود و همچنین جایگاه نظیری که به تازگی پیوسته است، مانند مکان و دسترسی شبکه ای نظیر، سرویس دهنده موقعیت نظیر جدید را در درخت تصمیم گرفته و به او اطلاع می دهد که به کدام نظیر والد متصل شود. سرویس دهنده مرکزی خروج یک نظیر را از طریق سیگنال graceful sign-off یا از طریق نوعی استتناج مبتنی بر time-out تشخیص می دهد. در هر دو مورد، سرویس دهنده همبندی درخت را جهت نظیرهای باقیمانده محاسبه مجدد می کند و آنها را برای ساخت یک هم بندی جدید فرم می دهد. برای یک سیستم جریان سازی بزرگ، سرویس دهنده مرکزی ممکن است تبدیل به گلوگاه کارایی و نقطه شکست شود. برای پرداختن به این امر، الگوریتم های توزیع شده ی مختلفی به عنوان مثال جهت ساخت و نگهداری توزیع شده درخت جریان سازی توسعه یافته است. با این حال، نشان داده شده است که جریان سازی مبتنی بر درخت کماکان قادر به بازیابی به اندازه کافی سریع جهت هدل کردن قطع و وصل مکرر نظیرها نیستند.
یکی دیگر از مشکلات عمده رویکرد تک درختی این است که گره های برگ پهنای باند آپلود خود را شرکت نمی دهند. از آنجا که گره های برگ بخش قابل توجهی از نظیرها را در سیستم به حساب می آیند، این امر تا حد زیادی کارایی بهره وری را تنزل می دهد.

جریان سازی چند درختی

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