در گذشته، منظور اولین وبسایتها یک یا نهایتا دو تصویر داشتند، یکی از معذلات اینترنت این بود که شما برای این که یک رسانه صوتی و یا تصویری را نگاه کنید، حتما باید ابتدا آن را دانلود میکردید و بعد آن را تماشا میکردید. اما با پیشرفت تکنولوژی این مشکل حل شد و شما الان میتوانید ساعتها فیلم و موزیک را بدون دانلود تماشا و یا گوش دهید. هر کسی با اتصال به اینترنت به اندازه کافی سریع، میتواند فیلمهای با کیفیت بالا را تماشا کند یا از طریق اینترنت تماس ویدیویی برقرار کند. خب واقعیت این است که ما هر روز داریم بیشتر در تکنولوژی غرق میشویم و این بر کسی پوشیده نیست. در این مقاله میخواهیم در رابطه با این تکنولوژی بسیار جذاب با شما حرف بزنیم. نام این تکنولوژی استریم (Stream) است.
اگر اهل بازیهای کامپیوتری باشید که این اصطلاح زیاد به گوشتان خورده است، اگر هم کسی را در خانه یا محیط کارتان میشناسید که اهل بازی است، باز هم زیاد این اصطلاح را از زبان او شنیدهاید. اما واقعا استریم چیست و چگونه کار میکند؟
استریم (stream) چیست؟
استریم در اصطلاح به فناوری گفته میشود که در آن انتقال فایلهای صوتی و تصویری به صورت مداوم و بدون قطعی از سرور به سمت کلاینت فرستاده میشوند و کاربر بدون داشتن واقعی آن فایلها میتواند آنها را نگاه کند.
شاید درک این مطلب برای شما کمی دشوار باشد، پس اجازه دهید تا این مفهوم را با ذکر یک مثال به شما بگویم. زمانی که شما از طریق تلویزیون یا از طریق اینترنت یک ویدئو تماشا میکنید یا پادکستی را گوش میدهید، دارید از این تکنولوژی استفاده میکنید.
با استفاده از تکنولوژی استریم، فایل رسانهای از راه دور ذخیره میشود و هر بار چند ثانیه از طریق اینترنت منتقل میشود و در دستگاه کاربر پخش میشود.
تفاوت بین استریم و دانلود
تکنولوژی استریم بلادرنگ (real-time) است که همین موضوع باعث کادآمد بودن این تکنولوژی میشود. اگر یک فایل ویدئویی دانلود شود، یک نسخه کامل از آن فایل در هارد دیسک شما ذخیره میشود و شما مجبور به منتظر ماندن تا اتمام دانلود فایل مورد نظر هستید، اما اگر همان فایل از طریق استریم پخش شود، مرورگر ویدئو را بدون کپی و ذخیره آن برای شما پخش میکند. فایل ویدئویی به صورت یک جا بارگیری نمیشود و کم کم بارگذاری میشود و اطلاعاتی که مرورگر بارگیری میکند به صورت محلی ذخیره نمیشود.
برای درک این موضوع اجازه دهید این داستان را با ذکر مثالی برای شما بیان کنم. به تفاوت میان دریاچه و رودخانه فکر کنید: هر دو حاوی آب هستند و یک رودخانه ممکن است اندازه یک دریاچه آب داشته باشد. تفاوت این است که در رودخانه، آب در یک مکان و در یک زمان جمع نیست و جاری است. دانلود یک فایل ویدئویی دقیقا شبیه یک دریاچه است زیرا فضای زیادی را اشغال میکند و دانلود آن نیز زیاد طول میکشد(جابجایی دریاچه زیاد طول میکشد). پخش ویدئویی به صورت استریم بیشتر شبیه یک روخانه همیشه جریان دارد زیرا دادههای ویدئو به طور مداوم و به سرعت به سمت مرورگر کاربر جریان دارند و ارسال میشوند.
آیا فناوری استریم از Use Datagra Protocol (UDP) استفاده میکند یا از Transmission Control Protocol (TCP)؟
برخی از استریم متدها به صورت UDP و برخی به صورت TCP مورد استفاده قرار میگیرند. UDP و TCP پروتکل های انتقال هستند، به این معنی که برای انتقال بسته های داده در سراسر شبکه استفاده می شوند. هر دو از Internet Protocol(IP) استفاده میکنند. TCP یک اتصال اختصاصی را قبل از انتقال داده باز می کند و قول می دهد که همه بسته های داده به ترتیب می رسند. برخلاف TCP، UDP هیچ یک از این کارها را انجام نمی دهد. در نتیجه، TCP قابل اعتمادتر است، اما انتقال داده ها از طریق UDP به اندازه TCP طول نمی کشد، اگرچه برخی از بسته ها در طول مسیر گم می شوند.
اگر TCP مانند یک سرویس تحویل بسته است که دریافت کننده را ملزم می کند تا بسته را امضا کند، UDP مانند یک سرویس تحویل است که بسته ها را از شکاف در و بدون در زدن، به داخل حیاط میاندازد تا امضا بگیرد. سرویس تحویل TCP بستههای کمتری را از دست میدهد، اما سرویس تحویل UDP سریعتر است، زیرا بستهها ممکن است حذف شوند حتی اگر کسی نباشد تا برای آنها امضا کند.
برای استریم، در برخی موارد سرعت بسیار مهمتر از اطمینان است. به عنوان مثال، اگر شخصی در یک کنفرانس ویدئویی باشد، ترجیح میدهد با سایر شرکتکنندگان کنفرانس بهصورت بلادرنگ تعامل داشته باشد تا اینکه بنشیند و منتظر باشد تا هر بیت داده تحویل داده شود. بنابراین، چند بسته داده از دست رفته یک نگرانی بزرگ به حساب نمیآید و باید از UDP استفاده شود.
در برخی موارد دیگر، اطمینان از رسیدن بسته برای استریم اهمیت بیشتری دارد. به عنوان مثال، HTTP Live Streaming(HLS) و MPEG-DASH پروتوکلهای استریمی هستند که از TCP برای انتقال استفاده میکنند. بسیاری از سرویس های ویدیویی بر اساس تقاضا از TCP استفاده می کنند.
بافرینگ (Buffering) در استریم چیست؟
پخشکنندههای رسانه استریمی چند ثانیه از پخش استریم قبل از موعد بارگیری میشوند تا در صورت قطع اتصال کوتاه، ویدیو یا صدا به پخش ادامه دهد. به این قابلیت بافرینگ (Buffering) گفته میشود. بافرینگ تضمین می کند که ویدیوها روان و پیوسته پخش شوند. با این حال، در صورت اتصالات کند اینترنت، یا اگر یک شبکه تأخیر زیادی داشته باشد، یک ویدیو ممکن است زمان زیادی طول بکشد تا بافر شود.
چه عواملی باعث کاهش سرعت استریم می شود؟
در برخی مواقع استریم با کاهش سرعت مواجه میشود و این میتواند دلایلی داشته باشد که هم بستگی به شبکه ، هم بستگی به کاربر داشته باشد:
- تاثیر شبکه در استریم
- تاخیر شبکه : عوامل مختلفی بر تأخیر تأثیر میگذارند، از جمله محتوایی که کاربران سعی میکنند به آن دسترسی پیدا کنند، در کجا ذخیره شده است.
- تراکم شبکه : اگر داده های زیادی از طریق شبکه ارسال شود، می تواند عملکرد استریم را کاهش دهد.
- مشکلات سمت کاربر در استریم
- مشکلات وای فای : راه اندازی مجدد روتر LAN یا جابجایی به اترنت به جای WiFi می تواند به بهبود عملکرد استریم کمک کند.
- دستگاه های سرویس گیرنده به آرامی کار می کنند : برای پخش ویدیوها مقدار زیادی قدرت پردازشی لازم است. اگر دستگاهی که ویدیو را پخش می کند، فرآیندهای زیادی در حال اجرا داشته باشد یا به طور کلی کند باشد، عملکرد استریم می تواند تحت تأثیر قرار گیرد.
- پهنای باند کافی نباشد : برای پخش ویدئو، شبکه های خانگی به پهنای باند حدود 4 مگابیت بر ثانیه نیاز است. برای ویدیوهای با کیفیت بالا، احتمالاً به موارد بیشتری نیاز داشته باشید.