Síť pro doručování obsahu Content Delivery Network neboli CDN je geograficky distribuovaná skupina serverů vzájemně propojených skrze Internet, která zvyšuje dostupnost dat ukládáním obsahu do mezipaměti v blízkosti koncových uživatelů[1]. Jiný název pro CDN je Content Distribution Network (Síť pro rozprostření obsahu). Tuto síť tvoří:
Jednotlivé uzly CDN jsou obvykle připojeny k rychlé páteřní síti internetu. Jejich počet se liší podle zvolené architektury a může dosahovat až několik tisíců uzlů s desítkami tisíc serverů. Optimalizace skrze CDN mívá za následek snížení ceny za hostingové služby, zrychlení stránek a zvýšení odolnosti proti nárazově velkému provozu na obsluhované stránce. Podle IBM mezi známé typy CDN poskytovatelů patří: [2]
Rozlišuje se několik typů sítí:
V případě online streamingu jsou zdrojová data přenášená skrze zdrojový server okamžitě replikována na koncové uzly sítě. Síť musí podporovat několik druhů technologií:
Od roku 2009 se objevilo tzv. adaptivní HTTP streamování, kdy je zdroj rozdělen na několik částí a každá část je stažena samostatně. To umožnilo využít stávající architekturu přizpůsobenou pro běžné stahování a zároveň odbouralo nutnost platit licenční poplatky, které jsou u technologií pro streamování často uplatněny ve značné míře.
Technologie sítě pro doručování obsahu (CDN) se objevila koncem 90. let 20. století a zaměřila se na rychlejší doručování obsahu přes internet.
První generace služeb CDN se zaměřila na síťové principy inteligentního řízení síťového provozu a datová centra pro replikaci.[3]
Sítě CDN druhé generace vznikly v reakci na nárůst služeb streamování zvuku a videa, zejména videa na vyžádání a zpravodajství na vyžádání. Technologie se také vyvinula s cílem řešit nové výzvy v oblasti doručování obsahu na mobilních zařízeních.[3]
Sítě CDN třetí generace se stále vyvíjejí. Vzhledem k tomu, že většina webových služeb je centralizována v cloudu, je nyní kladen důraz na edge computing - řízení spotřeby šířky pásma pomocí inteligentních zařízení, která inteligentně komunikují. Autonomní a samosprávné okrajové sítě mohou být dalším krokem v technologii CDN.[3]
Sítě pro doručování obsahu (CDN) fungují tak, že zřídí místo přítomnosti (POP) nebo skupinu okrajových serverů CDN na více zeměpisných místech.
Geograficky vzdálený návštěvník webu provede první požadavek na statický obsah webu. Tento požadavek dorazí na webový aplikační server, ten následné odešle odpověď vzdálenému návštěvníkovi. Současně odešle kopii odpovědi na server CDN , který je tomuto návštěvníkovi geograficky nejblíže. Server CDN POP následně uloží kopii jako soubor v mezipaměti.
Při dalším požadavku tohoto nebo jakéhokoli jiného návštěvníka v dané lokalitě odešle odpověď server mezipaměti, nikoli server původu a tím dojde ke zrychlení při dalších návštěvách.
Směrování k vybranému bodu je nejčastěji prováděno na úrovni DNS překladu adres. Stejná URL domény (například Youtube.com) může být pro každého návštěvníka přeložena na jinou IP adresu, což zajistí, že se bude obsah směrovat ze správného uzlu sítě.
Dynamická akcelerace je zkrácení doby odezvy serveru u požadavků na dynamický webový obsah díky zprostředkujícímu serveru CDN mezi webovými aplikacemi a klientem. Ukládání do mezipaměti totiž nefunguje dobře u dynamického webového obsahu, protože obsah se může měnit s každým požadavkem uživatele. Servery CDN se musí při každém dynamickém požadavku znovu spojit s původním serverem, ale optimalizací spojení mezi sebou a původními servery tento proces urychlují.
Pokud klient odešle dynamický požadavek přímo webovému serveru přes internet, může se požadavek ztratit nebo zpozdit kvůli zpoždění sítě. Čas může být také stráven otevíráním a zavíráním spojení kvůli ověření bezpečnosti. Na druhou stranu, pokud by blízký server CDN server předal požadavek serveru původu, měl by již navázané průběžné a důvěryhodné spojení. Další optimalizaci spojení mezi nimi by mohly zajistit například inteligentní směrovací algoritmy, schopnost zpracovat požadavek klienta, čímž se sníží jeho velikost. CDN server můžete naprogramovat tak, aby prováděl některé logické operace za původní server, nebo může např. upravit nebo optimalizovat obsah před vrácením odpovědí. Rozdělení aplikační logiky mezi webové servery a okraj sítě pomáhá vývojářům odlehčit výpočetní nároky původních serverů a zlepšit výkon webových stránek.[3]