
Ein Content Delivery Network (CDN), oder auch Content Distribution Network, sehr selten auch Inhaltszustellnetz genannt, ist ein Netz regional verteilter und über das Internet verbundener Server, mit dem Inhalte – insbesondere große Mediendateien – ausgeliefert werden. Ein CDN stellt skalierende Speicher- und Auslieferungskapazitäten zur Verfügung und gewährleistet auch bei großen Lastspitzen einen optimalen Datendurchsatz.
CDN-Knoten sind auf viele Standorte verteilt und oft auch auf viele Backbones. Sie arbeiten zusammen, um Anfragen (Requests) von End-Nutzern nach Inhalten (Content) möglichst ökonomisch zu bedienen. Einzelne Standorte werden als PoP (Point of Presence) bezeichnet und bestehen aus Server-Clustern.
Im Hintergrund (transparent) werden die Daten im Netz so vorgehalten (Caching), dass die jeweilige Auslieferung entweder möglichst schnell geht (Performance-Optimierung) oder möglichst wenig Bandbreite verbraucht (Kosten-Optimierung), oder beides zugleich.
Große CDNs unterhalten tausende Knoten mit zehntausenden Servern.
CDN ist ein Oberbegriff, der verschiedene Arten von Diensten zur Bereitstellung von Inhalten umfasst: Videostreaming, Software-Downloads, Beschleunigung von Web- und Mobilinhalten, lizenziertes/verwaltetes CDN, transparentes Caching sowie Dienste zur Messung der CDN-Leistung, Lastausgleich, Multi-CDN-Switching und Analysen sowie Cloud Intelligence. CDN-Dienste können in den Bereichen Sicherheit, DDoS-Schutz und Web Application Firewalls (WAF) sowie WAN-Optimierung angewendet werden.
Das CDN besteht zunächst aus einem Ursprungsserver, auf dem der Inhalteanbieter die zu verteilenden Inhalte ablegt, einer großen Zahl an Replica-Servern, die Kopien dieser Inhalte vorhalten, und einem Distributionssystem, das die Inhalte auf den Replica-Servern verteilt. Für die Umleitung der Benutzeranfragen auf die einzelnen Replica-Server ist ein Request-Routing-System zuständig, welches sich dabei auf verschiedene Kennzahlen über diese Server stützt, die ihm vom Accounting-System geliefert werden.
Sendet ein Client eine Anfrage an das CDN, dann wählt das Request-Routing-System einen geeigneten Replica-Server. Bei der Auswahl bezieht es Kennzahlen über deren aktuelle Belastung (zum Beispiel CPU-Auslastung, Anzahl der aktiven Verbindungen) und über die Netzwerkverbindung zwischen Client und Server (zum Beispiel geographische Entfernung, Latenzzeit, Übertragungsrate), seltener über die Identität des Clients (zum Beispiel Unterscheidung zwischen Standard- und Premium-User) mit ein, die ihm durch das Accounting-System zur Verfügung gestellt werden.
Nach Auswahl des Servers muss die Benutzeranfrage nun umgeleitet werden. Das am häufigsten eingesetzte Verfahren dafür ist DNS-basiertes Request Routing. Dabei werden Anfragen des Clients an einen vom CDN bereitgestellten DNS-Server weitergeleitet, der die IP-Adresse des Replica-Servers zurückgibt. Alternativ dazu kann auch ein HTTP-Statuscode 302 die Weiterleitung auf einen anderen Webserver veranlassen.
Im Wesentlichen gibt es 3 Typen von Inhalten:
Die Zwischenspeicherung (Caching) ist das Herzstück der CDN-Dienste. Ähnlich wie beim Caching von Browsern (siehe Cache) werden Dateien auf einer Festplatte gespeichert, wo sie schneller abgerufen werden können. Ein CDN verschiebt den Inhalt einer Webseite auf leistungsstarke Proxy-Server, die für eine beschleunigte Verteilung von Inhalten optimiert sind. Diese Inhalte können nun von Website-Besuchern, die von einem nahe gelegenen Standort aus surfen, schnell abgerufen werden. Im Gegensatz zum Cache eines Webbrowsers, der nur für einen einzigen Benutzer verwendet wird, verfügt das CDN über einen gemeinsamen Cache. In einem gemeinsam genutzten CDN-Cache kann eine von einem Nutzer angeforderte Datei später von anderen Nutzern abgerufen werden, was die Anzahl der Anfragen an den Ursprungsserver erheblich verringert.
Bezüglich der Topologie unterscheidet man bei Content Delivery Networks zwischen einer verstreuten und einer konsolidierten Topologie.
Verstreute CDNs betreiben eine große Anzahl von PoP mit mittlerer und niedriger Kapazität, die ausgewählte geografische Regionen dicht besiedeln. Der Schwerpunkt dieser Topologie liegt auf der optimalen räumlichen Nähe, wobei die einzelnen PoPs in unmittelbarer Nähe zueinander liegen können. Durch die physische Nähe kann die Latenzzeit wesentlich verringert werden, insbesondere in Regionen mit geringerer Breitbandkonnektivität. Nachteile dieser Form der Topologie sind der höhere Wartungsaufwand sowie die damit verbundenen Kosten und die durch mehrere Verbindungspunkte verlängerte Paketumlaufzeit. Diese Topologie kam vor allem in frühen CDNs zum Einsatz.
Bei einem Konsolidierten CDN wird eine kleine Anzahl hoch-leistungsfähiger PoP betrieben, die strategisch in großen Datenzentren positioniert sind, um eine breite Bevölkerungsmenge zu bedienen. Diese Netzwerktopologie stellt einen modernen Ansatz für die Bereitstellung von Inhalten dar, der durch die Entwicklung der Internetkonnektivität ermöglicht wurde. Der Hauptvorteil einer konsolidierten Topologie ist die zentralisierte Infrastruktur, die flexibles Management und agile Konfigurationsbereitstellung ermöglicht. Dies kommt sowohl den Endnutzern als auch den Netzbetreibern zugute, da sie mehr Kontrolle und eine insgesamt bessere Reaktionsfähigkeit bieten. Zudem sind die hier eingesetzten Points of Presence widerstandsfähiger (z. B.: gegen DDoS-Angriffe). Nachteile dieser Topologie sind deren geringere Effektivität in Regionen mit schlechterer Konnektivität und die höhere Komplexität der Bereitstellung des Netzwerkes.
Content-Delivery-Netzwerke können auf unterschiedlichen Bereitstellungsprinzipien basieren:
Der Begriff Push-CDN bezieht sich auf die Art von Content-Delivery-Network, bei dem die einzelnen CDN-Server ähnlich wie der Ursprungsserver vorgehen. In diesem Szenario sendet der Ursprungsserver die Inhalte direkt und proaktiv an Edge-Server im CDN-Netzwerk (automatisch oder manuell) und verlinkt auf sie. Diese Inhalte werden auf dem Server zwischengespeichert, bis sie gelöscht oder bereinigt werden, weil eine neue Version der Seite gesendet wird. Die Webinhalte werden hierbei automatisch in den CDN-PoP eingefügt, der dem Standort des Clients am nächsten ist. Wenn Endnutzer also eine Datei (HTML, Video, CSS, …) anfordern, kann das CDN alle nötigen Daten nahtlos in deren Browser liefern. Die Verantwortlichkeit der Inhalte liegt dabei bei den jeweiligen Websiteeigentümern, die bei jeglichen Änderungen explizit in das CDN „gepusht“ werden müssen.
Ein Vorteil dieser CDN-Art ist die effizientere und einfachere Nutzung des Datenverkehrs, da nur bei Änderungen Inhalte auf den CDN-Server hochgeladen werden müssen. Push-CDNs sind bei relativ statischen Webseiten mit großen eingebetteten Datenmengen zu bevorzugen.
Ein Pull-CDN basiert darauf, dass die tatsächlichen Inhalte nur auf den jeweiligen Webservern gespeichert werden, es werden keine Daten tatsächlich auf die CDN-Server hochgeladen. Hier zieht das CDN die Inhalte von den Hauptservern und speichert sie im Cache. Je nach Benutzeranforderung werden die Inhalte nicht vom Hauptserver, sondern von den zwischengespeicherten Kopien des nächstgelegenen CDN-Servers an den Client-Browser geliefert. Bei der ersten Anfrage für einen spezifischen Inhalt an einen Edge-Server treten höhere Ladezeiten auf, da die Daten erst in den Cache geladen werden müssen. Das CDN bewahrt die Dateien auf, bis sie ablaufen.

Peer-to-Peer (P2P) CDNs nutzen das Peer-to-Peer-Protokoll zur Bereitstellung von Inhalten. Hierbei werden die Inhalte nicht auf designierten CDN-Servern gespeichert bzw. gecached, hier sind Benutzerclients Teil des Netzwerkes. Die Clients, die auf die Inhalte zugreifen, teilen die Teile mit anderen, d. h. während sie die Inhalte herunterladen, laden sie sie auch hoch, ohne das normale Browsing-Erlebnis zu beeinträchtigen. Das bedeutet, dass die inhaltszentrierten Netze im Gegensatz zu Client-Server-Systemen besser funktionieren, wenn mehr Nutzer auf die Inhalte zugreifen (insbesondere bei Protokollen wie Bittorrent, die eine gemeinsame Nutzung erfordern). Diese Eigenschaft ist einer der Hauptvorteile von P2P-Netzen, denn dadurch sind die Einrichtungs- und Betriebskosten für den ursprünglichen Inhaltsanbieter sehr gering.
Ein Peer-Assisted CDN (PA-CDN) beschreibt eine hybride Architektur, die darauf abzielt, die Vorteile von CDNs und P2P-Systemen zu kombinieren. Einerseits sind PA-CDNs auf die Beiträge der Endnutzer zur Bereitstellung von Inhalten angewiesen und ermöglichen daher eine Minimierung der Infrastrukturkosten im Vergleich zu herkömmlichen CDNs. Andererseits reduzieren PA-CDNs die Nachteile von reinen P2P-Systemen, indem sie die Inhalte auf einer minimalen Anzahl von Edge-Servern replizieren und so eine zuverlässige Verteilung der Inhalte mit einer garantierten Servicequalität ermöglichen. In diesem Zusammenhang besteht die größte Herausforderung für die Forschungsgemeinschaft darin, traditionelle CDNs und P2P zu integrieren und gleichzeitig von den Vorteilen beider Systeme zu profitieren.
Bei Peer-Assisted CDN unterscheidet man im Wesentlichen zwischen zwei Typen:
Im Allgemeinen gibt es zwei Arten von CDNs. Einerseits gibt es das öffentliche CDN und andererseits das private CDN. Das öffentliche CDN wird von einem CDN-Betreiber verwaltet und basiert auf einem Pay-as-you-use-Modell, bei dem eine Gebühr pro GB erhoben wird. Zudem ist ein öffentliches CDN oft die attraktivere Option, da die Infrastruktur bereits aufgebaut ist. Ein großer Nachteil könnte sein, dass bei einer Zunahme der Nachfrage oder einer Zunahme des gehosteten Inhaltsvolumens die monatlichen Gebühren schnell eskalieren könnten und deshalb die Kosten pro GB anwachsen könnten. Aus diesem Grund wird oft auf ein privates CDN zurückgegriffen, um die Kosten besser kontrollieren zu können. Ein privates CDN wird oft bei strengen Sicherheitsanforderungen oder bei der Anforderung von großen Mengen an Inhalten verwendet. Die privaten CDNs werden mit dedizierten Servern, die nicht mit anderen Organisationen geteilt werden, oder in privaten Rechenzentren implementiert.
Viele Organisationen verwenden sowohl öffentliche als auch private CDN-Infrastrukturen, um Inhalte bereitstellen zu können. Dieses Vorgehen wird als Multi-CDN- oder Hybrid-CDN-Ansatz bezeichnet.
Mit einem Multi-CDN-Ansatz können Unternehmen zwei oder mehr Provider kombinieren, um ein großes Netzwerk zu schaffen, das ein globales Publikum bedient. Der Vorteil ist, dass die Unternehmen Zugriff auf die geballte Leistung mehrerer Provider in jeder geografischen Region erhalten. Dadurch wird das Buffering reduziert, es führt zu einer besseren Sicherheit und es führt zu einer besseren und schnelleren Skalierbarkeit. Grundsätzlich stellt ein Server die Inhalte bereit, der dem Nutzer am nächsten oder der am geeignetsten für die Anforderungen der Inhalte ist. Fällt ein Anbieter aus, wird automatisch auf das nächstbeste CDN umgestellt. Die Multi-CDN-Strategie war in der Vergangenheit nur für große Unternehmen möglich, da die Konfiguration und die Wartung mehrerer CDNs zu komplex und teuer waren. Unter allen Umständen können jetzt auch die kleineren Unternehmen durch die Automatisierung das dynamische Multi-CDN-Switching nutzen. Das Multi-CDN-Switching nutzt Echtzeitdaten, um automatisch das beste CDN auswählen zu können.
Es gibt einige Vorteile, die für Multi-CDN-Ansätze sprechen:
DDoS-Angriffe können enorme wirtschaftliche Verluste verursachen und dem Ruf des Unternehmens schaden. Eine weitere Gefahr entsteht, wenn – wie bislang üblich – CDN-Anbieter und Shared-Hosting-Betreiber viele Webseiten auf denselben Servern mit denselben IP-Adressen speichern. Das Routing zur Zielseite erfolgt erst nach Entschlüsselung der Daten. Angreifer können eine Anfrage an die IP-Adresse einer vertrauenswürdigen Seite oder Applikation auf einem Netzwerkknoten erzwingen, auf der sich auch eine von ihnen kontrollierte Seite oder Anwendung befindet. Mit diesen „Underminr“-Angriffen können Anfragen an Steuerrechner von Botnetz-Servern getarnt werden. Davor schützt die Trennung der Kunden auf einem Knoten (Tenant Isolation). Bis 2018 wurden Angriffe in ähnlicher Weise getarnt mittels Domain Fronting. Dabei gaben Angreifer im TLS-Handshake über die Server Name Indication (SNI) eine legitime Domain an – im HTTP-Header dagegen steckte ihre Zieladresse. Aufgrund des formal korrekten Handshakes gelangten Anfragen durch Firewalls und wurden erst im CDN entschlüsselt und an die im HTTP-Header angegebene Zieladresse geleitet. Domain Fronting gilt seit 2018 als unterbunden, da große Hoster Header und SNI exakt abgleichen.
Eine Webseite verwendet dynamische Inhalte, um verschiedene und individuell angepasste Contents für den Nutzer anzeigen zu können. Dynamische Inhalte können zum Beispiel Warenkörbe in Online-Shops oder Streaming-Dienste sein. Diese individuell angepassten Inhalte können prinzipiell nicht in Cache-Servern gespeichert werden, da sich diese Inhalte ständig ändern. Demzufolge sind die dynamischen Inhalte für CDNs ungeeignet.
MirrorBrain ist eine freie HTTP-Server-Software für Linux zum Betrieb eines CDN.
Die Inhalte von freien JavaScript-, CSS-Frameworks oder freie Iconsets werden von verschiedenen CDN-Anbietern zum freien und erlaubten Hotlinking angeboten. Google Hosted Libraries bietet bekannte Bibliotheken wie jQuery, jQuery UI, AngularJS oder Dojo Toolkit an. Andere Anbieter wie Jsdelivr oder cdnjs bieten zusätzlich zahlreiche weitere, kleinere Bibliotheken an. Wobei Jsdelivr auch das Zusammenfassen zu einem HTTP-Request ermöglicht.