;

Objem internetových přenosů se do roku 2014 zčtyřnásobí

4. 6. 2010
Doba čtení: 3 minuty

Sdílet

Objem celosvětových internetových přenosů vzroste podle odhadů společnosti Cisco do roku 2014 více než čtyřikrát na 767 exabytů.

Každý měsíc by tak mělo být v průměru přeneseno okolo 64 exabytů dat. To představuje podobný objem jako 16 miliard DVD nebo 21 bilionů MP3. Za očekávaným rychlým nárůstem datových přenosů stojí jak zvyšující se kapacita a rychlost internetu, tak i rostoucí popularita HD videa a 3D televize.

"Poskytovatelé služeb čelí rostoucím nárokům na šířku pásma spolu s tím, jak domácnosti, organizace či mobilní uživatelé využívají stále pokročilejší služby videa, bez ohledu na typ připojení nebo použité zařízení. Očekáváme, že do roku 2014 se počet online uživatelů videa zvýší na jednu miliardu. IP sítě proto musí být dostatečně inteligentní a flexibilní, aby se těmito zvýšenými nároky dokázaly vyrovnat," řekl Pankaj Patel, senior vicepresident a ředitel divize Service Provider Group ve společnosti Cisco.

Podle analýzy Cisco Visual Networking Index (VNI) Forecast 2009-2014 bude v roce 2014 přenos dat po IP sítích spojený s videem (TV, video na vyžádání, internetové video a P2P) tvořit okolo 91 procent všech přenosů u spotřebitelů. Například samotný objem přenosů spojených s HD videem a 3D televizí vzroste do roku 2014 třináctkrát a bude tvořit okolo 42 procent přenosů vyvolaných spotřebiteli.

Naproti tomu například P2P přenosy, které v roce 2009 tvořily 36 procent přenosů u spotřebitelů, budou mít v roce 2014 podíl jen okolo 17 procent. Objem internetových přenosů videa přitom překročí přenosy přes P2P již ke konci letošního roku, a to poprvé po deseti letech. Výrazně narostou rovněž přenosy přes mobilní sítě, které se do roku 2014 zvýší 39-krát na 3,5 exabytu měsíčně.

Objemy přenosů vyvolané spotřebiteli přitom porostou rychleji než přenosy způsobené firemními uživateli. Zatímco v roce 2009 představoval měsíční podíl IP přenosů vyvolaných spotřebiteli 79 procent celkového objemu přenosů, v roce 2014 by měl činit již 87 procent. Naopak měsíční podíl IP přenosů vyvolaných firmami by se měl z 21 procent z roku 2009 snížit na 13 procent v roce 2014.

Mezi regiony, kde objem přenosů po IP sítích poroste nejrychleji, patří Latinská Amerika s téměř osminásobným očekávaným růstem, Střední Východ a Afrika se 6,5-násobným růstem a Střední a Východní Evropa s více než pětinásobným růstem. V roce 2014 však bude nadále největší objem IP přenosů pocházet z Asie a Tichomoří (21,7 exabytu za měsíc), Severní Ameriky (19 exabytů za měsíc) a Západní Evropy (16,2 exabytu).

Cyber25

Za rostoucím objemem IP přenosů stojí mimo jiné i rostoucí rychlosti internetového připojení. Například jen za posledních deset let vzrostla celosvětově rychlost pro stahování souborů u domácností 35-násobně. Zatímco v roce 2000 činila u domácností průměrná rychlost pro stahování 127 Kb/s, v roce 2010 je to již 4,4 Mb/s.

Aby mohli internetoví uživatelé lépe porozumět příčinám a trendům rostoucích IP přenosů, připravilo Cisco k volnému použití dvě aplikace. První je VNI Forecast widget, která umožňuje sledovat aktuální data a predikce týkající se vývoje různých typů přenosů. Druhou je VNI PC Pulse pro stolní počítače a notebooky, která spotřebitelům umožňuje sledovat svůj individuální vliv na IP přenosy a rovněž porovnávat jejich využívání sítí s ostatními uživateli po celém světě.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »