VT2018 CDN

=Auteur=
 * Nom : Amina BOUCHERIMA
 * Mail : amina.boucherima@hotmail.com
 * Sujet : Content Delivery Network

=Résumé= Un réseau de diffusion de contenu (CDN) désigne un groupe de serveurs géographiquement distribués dont le but est de transférer rapidement du contenu. Les CDN sont très largement utilisés afin de résoudre un problème majeur qui est la latence. Lorsqu’un utilisateur demande de charger une page Web, le temps d’accès au contenu peut être très long. Cette latence est influencée par plusieurs facteurs qui peuvent être propre au contenu comme par exemple le chargement d’images et de vidéos, mais l’une des raisons principale est la distance physique entre l’utilisateur est le serveur d’hébergement du site web. L’objectif des CDN est donc de diminuer cette distance physique et améliorer la vitesse et la performance du site.

=Abstract= A content delivery network (CDN) refers to a group of geographically distributed servers whose purpose is to quickly transfer content. CDNs are widely used to solve a major problem: latency. When a user requests to load a web page, the time to access content can be very long. This latency is influenced by several factors that can be specific to the content such as the loading of images and videos, but one of the main reasons is the physical distance between the user and the web site hosting server. The objective of the CDNs is therefore to reduce this physical distance and improve the speed and performance of the site.

=Synthèse=

Histoire
Les réseaux de diffusion de contenu ont été conçus à partir du moment où l’utilisation du World Wide Web a explosé en popularité au cours des années 1990. Les leaders techniques se sont rendu compte qu’Internet ne pouvait pas faire face à l’augmentation rapide du trafic réseau et devaient trouver une méthode pour gérer la diffusion de données dans le monde.

Fondée en 1998, Akamai Technologies a été la première société à developper les CDN et à les commercialiser. Elle reste jusqu’a nos jours le leader dans le Marché des CDN.

Fonctionnement
Afin de minimiser la distance physique entre un utilisateur et le serveur d’hébergement, le CDN stocke le contenu du site dans plusieurs emplacements géographiques, aussi connu sous le nom de Points de Présence (PoPs). Un PoP est un centre de donnée contenant un certain nombre de serveurs cache. Sa fonction principale est donc de réduire le temps d’aller-retour (RTT) puisque le contenu devient plus proche de l’utilisateur. Les serveurs cache stockent le contenu mis en cache et sont responsable de la livraison du contenu. Ils ont pour fonction d’accélérer le chargement du site web et réduire la consommation de la bande passante.

Routage
Afin d’accélérer le temps de chargement du site et donc améliorer l’expérience des visiteurs, les CDN utilisent un routage particulier appelé routage DNS CDN. Ce routage permet de rediriger les demandes vers les noeuds du CDN dans le monde entier. Il existe deux types de routage: le DNS Unicast et le DNS Anycast.

Routage Unicast
Unicast consiste à attribuer à chaque Point de Présence (PoP) une adresse IP propre à lui. Les sites qui mettent en place des CDN utilisant un routage DNS Unicast permettent de rediriger les visiteurs directement vers un noeud spécifique qui est le noeud le plus proche de la requête.

Lorsqu’un utilisateur demande le chargement d’un site web en tapant l’URL ou en cliquant sur le lien du serveur web principal, le DNS de l’utilisateur le redirige vers le service CDN qui héberge le contenu du site. Puis, il est acheminé vers le PoP le plus proche déterminé grâce à son emplacement en fonction de son adresse IP.

L’utilisation du routage DNS Unicast est à la fois rentable et efficace et sa configuration est très simple à mettre en place puisqu’il faut juste l’intégrer dans le processus DNS standard.

Cependant, puisque la requête est toujours acheminée directement vers le même noeud spécifique et passe toujours par le même chemin de routage, le centre de donnée associé peut subir un trafic important, par exemple lors d’une attaque DDoS, entrainant ainsi un déni de service. De plus, puisque le CDN utilise l’adresse IP d’origine du visiteur afin de trouver le PoP le plus proche, la détermination de cette adresse IP peut être erronée à cause du mécanisme récursif utilisé dans les DNS moderne. Le CDN pourrait donc répondre à l’adresse IP du résolveur DNS et non à celle du client et donc l’envoyer vers un noeud incorrect.

Routage Anycast
Les CDN configurés avec Anycast définissent une adresse IP unique pour chaque noeud du réseau. Contrairement à Unicast, au lieu d’utiliser le DNS récursif qui dirige les requête vers le noeud le plus proche, Anycast utilise le Border Gateway Protocol (BGP), un protocole permettant d’échanger des informations de routage et d’accessibilité pour que chaque PoP du réseau CDN connaisse l’état de ses plus proches voisins. Grâce à ce protocole, Anycast garantit la distance la plus courte entre le visiteur et le PoP final en fonction d’une métrique qui n’est pas forcément la distance physique. Anycast utilise aussi le DNS et à la différence de Unicast, le CDN utilise l’adresse IP du client d’origine et non pas celle du résolveur DNS. Les avantages de Anycast sont multiples. Il permet une connectivité plus rapide, offre une protection aux attaques DDoS ainsi qu’une grande disponibilité. De plus, la configuration des serveurs est très simplifiée puisqu’une seule configuration DNS est faite sur tous les noeuds du réseau.

Les piliers d'un CDN
L’architecture choisie d’un CDN doit satisfaire les 3 piliers suivants:

La mission principale d’un CDN est de minimiser la latence afin d’améliorer l’expérience de l’utilisateur. Cela signifie que les Pops doivent être situé à des carrefours importants du réseau afin d’assurer une connectivité idéale.
 * Performance

Selon le type de site web utilisé, assurer un système sans problème peut différer d’un CDN à un autre. En effet, les CDN de sites commerciaux adoptent une approche "zéro point de défaillance" afin d’assurer une haute disponibilité. Le type de routage utilisé joue un très grand rôle dans ce pilier. Utiliser un routage Anycast augmente fortement la disponibilité alors qu’un routage Unicast peut être une source de très graves pannes et défaillances dans le réseau.
 * Fiabilité

Les CDN doivent traiter n’importe quel volume de trafic. Le type de routing influe sur cette capacité. En effet, si le nombre de visiteurs est moyen, un routing Unicast suffit largement pour satisfaire la scalabilité du CDN. Dans le cas contraire, Unicast ne suffit pas puisqu’il n’offre pas de protection contre les attaques DDoS.
 * Scalabilité

Topologies
L’architecture d’un CDN est aussi influencée par la topologie du réseau utilisée. Il existe deux modèles de topologies, les CDN dispersés et les CDN consolidés.

Les CDN dispersés sont composés d’un grand nombre de PoPs de capacité moyenne. Les PoPs sont généralement positionnés très près les uns des autres favorisant ainsi une amélioration de la vitesse d’accès aux données. Ces CDN sont très efficaces en particulier dans les régions à faible connectivité et sont plus faciles à déployer. Le seul inconvénient est que le RTT peut se prolonger par les multiples points de connexions.
 * Les CDN dispersés

Contrairement aux CDN dispersés, les CDN consolidés ont moins de PoPs et sont positionné dans les grands centre de données. Ils sont utilisés pour servir une population plus large et sont plus moderne. Les PoPs de haute capacité sont plus résistant, en particulier lors des attaques DDoS et leurs coûts d’entretien est réduits. Cependant, ils sont moins efficaces dans les régions à faible connectivité et sont plus difficiles à déployer.
 * Les CDN consolidés

Entreprises




Références

 * https://www.webopedia.com/TERM/C/CDN.html
 * https://www.cloudflare.com/learning/cdn/what-is-a-cdn/
 * https://searchnetworking.techtarget.com/definition/CDN-content-delivery-network
 * https://blog.cdnsun.com/understanding-cdn-dns-routing-unicast-versus-anycast/
 * https://www.incapsula.com/cdn-guide/what-is-cdn-how-it-works.html
 * https://www.akamai.com/uk/en/resources/content-distribution-network.jsp
 * https://www.globaldots.com/content-delivery-network-explained/
 * https://en.optimicdn.com/technology/