PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقایسه پروتکل های استریم



hoss-far
June 1st, 2019, 13:01
پروتکل استریم چیست؟
پروتکل استریم روشی برای قطعه قطعه کردن بسته های محتوا با ترتیب خاص و فرستادن آن ها از یک کامپیوتر به کامپیوتر دیگر است.همچنین پروتکل استریم متدی برای دوباره سر هم کردن این بسته ها را در هنگام پخش از یک پلیر را مد نظر قرار می دهد. در نتیجه استاندارد سازی برای پروتکل های استریم اهمیت پیدا می کند.چرا که کامپیوتر فرستنده ی محتوا و کامپیوتر گیرنده محتوا باید هر دو از یک استاندارد مشخص برای قطعه قطعه کردن و دوباره سر هم کردن بسته ها پشتیبانی کنند.

تفاوت پروتکل استریم با کدک و فرمت
در مباحث پیشین (http://www.webhostingtalk.ir/showthread.php?t=208673&highlight=) در باب تفاوت پروتکل استریم با کدک و فرمت صحبت کردیم.چرا که معمولا درک تفاوت بین آن ها با مشکل همراه است.

پروتکل های استریم مرسوم

RTMP
معمولا استریم هایی که از طرف یک انکدر( encode ) به سمت سرور استریم در کلود،cdn و ... فرستاده می شوند از استاندارد rtmp استفاده می کند و سپس این استریم از سمت سرور یا cdn با استاندارد های دیگر مثلا hls به سمت مخاطب فرستاده می شود.پروتکل rtmp معمولا از استاندارد tcp برای برقراری ارتباط در شبکه استفاده می کند.برای پلی کردن rtmp به پلاگین adobe flash نیاز هست.از این رو برای اجرای rtmp بر روی وب حتما باید flash فعال باشد.اپل از rtmp پشتیبانی نمی کند.بنابراین rtmp بدون کمک نرم افازرهای third party قابل اجرا بر رو یios نیست.در مواقعی که پورت rtmp 1935توسط فایروال بسته هست می توان آن را در پروتکل http جاسازی کرد و از پورت 80 استفاده کرد.تاخیر در پروتکل rtmp نسبت سایر استاندارد ها پایین هست.

خانواده ی RTP
rtp در لایه transport از udp استفاده می کند.برای همین از استاندارد دیگری به نام rtcp برای اطمینان از کیفیت استریم کمک می گیرید.در واقع rtcp به مانند پروتکل tcp عمل می کند و وظیفه ی آن مطمئن شدن از رسیدن بسته ها و تنظیم تعداد آن ها به سمت مقصد است.
همچنین پروتکل دیگری به نام rtsp نیز گاهی rtp را همراهی می کند.جایگاه rtsp در لایه presentation هست.در واقع rtsp چیزی شبیه پروتکل http هست و به وسیله آن دستوراتی چون playing, pausing, recording.از گیرنده به سمت فرستنده ارسال می شود.
هر کدام از استاندارد های rtp ، rtcp و rtsp پورت های متفاوت را اشغال می کنند.معمولا udp توسط بعضی از نرم افزارها و بروزرها حمایت نمی شود. بنابراین پلاگینی برای اجرا لازم می شود.flash شایع ترین پلاگین برای این منظور هست.ویندوز مدیا پلیر rtp را پشتیبانی می کند.اما ios و اندروید خیر.از این رو برنامه های third-party بسیاری این وظیف را انجام می دهند. از جمله RealPlayer برای اندروید.

HTTP Live Streaming (hls)
فرستادن بسته های استریم از طریق استاندارد http: این روش کمی تاخیر را افزایش می دهد،چرا که http از روز اول برای ارسال فایل استریم طراحی نشده است. Hlsتوسط کمپانی apple طراحی شده است. از این رو همه ی سیستم عامل و نرم افزارها یا بروزرها آن را پشتیبانی نمی کنند.فرمت سازگار با این استاندارد استریم تنها m3u و مشتقات آن (.m3u8) هست.

Html5
Html5 اجازه می دهد که تگ های <audio> و <video> با کمک javaScript ، فایل هایی را که این تگ ها مشخص می کنند پلی کند.لذا دیگر نیازی به پلاگین فلش برای اجرای ویدئو نیست.این مهم تنها در لایه ی application بدون نیاز به لایه های پایین تر انجام می شود.از این رو تاخیر در html5 بسیار پایین می آید.

پروتکل های استریم بسیار دیگر از جمله : MPEG-DASH (3GPP) , Microsoft Smooth Streaming و hds وجود دارند که در مطالب بعدی به آن ها می پردازم.