CDN

CDN (Content Delivery Network, kontent yetkazib berish tarmog‘i) — geografik jihatdan tarqatilgan proksi-serverlar va ular bilan bog‘liq data markazlari tarmog‘i. CDNlar kontentni foydalanuvchiga yaqin joylashgan tugunlar orqali yetkazib berib, sahifa yuklanish tezligini oshiradi va tarmoqdagi tor joylarni kamaytiradi.

1990-yillarning oxirida internetdagi sekinlik muammolarini bartaraf etish maqsadida paydo bo‘lgan CDNlar bugungi kunda internet trafikining katta qismini tashiydi. Ular matn, grafikalar, skriptlar, media fayllar, dasturiy ta’minot, hujjatlar, e-commerce, portallar, live streaming va ijtimoiy tarmoq xizmatlarini tarqatadi.

Kontent egalari (media kompaniyalari, e-commerce platformalar va boshqalar) o‘z kontentini tez yetkazish uchun CDN operatorlariga to‘lov qiladi. CDN operatorlari esa o‘z serverlarini joylashtirish uchun internet-provayderlar va tarmoq operatorlariga pul to‘laydi.

 Texnologiya 
CDN tugunlari ko‘pincha bir nechta geografik hududlarda joylashtiriladi. Bu orqali:

 trafik narxi kamayadi,
 sahifa yuklanish tezligi yaxshilanadi,
 kontentning global mavjudligi ortadi.

Kontent so‘rovlari quyidagilar asosida eng maqbul tugunga yo‘naltiriladi:

 eng qisqa tarmoq yo‘li (hoplar soni),
 eng past kechikish,
 eng bo‘sh server,
 yoki eng arzon xizmat ko‘rsatish nuqtasi.

CDNning asosiy tarkibiy qismlari:

 Origin server — kontentning asl manbasi;
 Entry point — kontentni origin serverdan olib keladigan tugun;
 Origin Shield — origin serverni himoyalovchi tamg‘a;
 Edge server — foydalanuvchilarga xizmat ko‘rsatadigan tugun;
 CDN footprint — xizmat ko‘rsatish hududlari.

 Xavfsizlik va maxfiylik 
CDN provayderlari ikki yo‘l orqali daromad oladi:

 kontent egalari to‘lovlari,
 foydalanuvchi analytics va kuzatuv ma’lumotlari.

Bu holat ayrim hollarda maxfiylik bilan bog‘liq xavotirlarga sabab bo‘ladi.

2021-yilda Germaniyada sud universitet saytida CDN ishlatishni taqiqlagan, chunki foydalanuvchining IP-manzili uchinchi tomonga yuborilishi GDPRni buzgan.

JavaScript CDNlar ba’zan zararli kod tarqatish uchun ham nishonga olingan. Shuning uchun Subresource Integrity standarti joriy qilingan.

 Kontent tarmog‘i usullari 
Internetning asosiy modeli — end-to-end tamoyili. CDNlar bu tamoyilga quyidagi funksiyalarni qo‘shadi:

 keshlash,
 server yukini balanslash,
 so‘rovlarni yo‘naltirish,
 kontent optimallashtirish xizmatlari.

Web-keshlar talab yuqori bo‘lgan kontentni foydalanuvchi yaqinida saqlaydi. Bu:

 serverga tushadigan yukni kamaytiradi,
 tarmoq trafikini optimallashtiradi,
 javob tezligini oshiradi.

 Peer-to-peer CDNs 
P2P CDNlarda foydalanuvchilar nafaqat kontent oladi, balki tarmoqka resurs ham qo‘shadi. Bu tizim foydalanuvchilar soni ko‘payganda tezlashadi.

Ba’zi P2P CDNlar faol foydalanuvchilarga kripto-token orqali mukofot beradi.

 Shaxsiy CDN 
Katta kompaniyalar tijoriy CDN narxlaridan qoniqmasa, o‘zining ichki CDNini yaratishi mumkin. Bunday tizim faqat o‘z kontentiga xizmat qiladi.

Misollar:

 Netflix
 BBC
 Facebook (Express Backbone)

 CDN tendensiyalari 
 aldamelar ros 
n men ham kiber xavzizlikka qiziqamana
t
 an’anaviy CDNlarga qaraganda tezroq,
 trafik masofasini qisqartiradi,
 provayderga xarajatlarni kamaytiradi.

 Multi-CDN 
Yirik xizmatlar bir nechta CDN xizmatini birlashtirib, uzilishlarga chidamlilikni oshiradi.

 EDNS Client Subnet (ECS) 
EDNS0 yordamida DNS so‘rovlarida foydalanuvchi subnet ma’lumoti uzatiladi. Bu kontentni eng yaqin tugundan berishga yordam beradi.

 Image CDNlar 
Image CDNlar rasmlarni qurilmaga mos formatda — WebP, AVIF, HEIF —optimallashtirib beradi.  Misollar:

 Cloudflare Polish
 Cloudinary
 Imgix
 Fastly IO
 ImageEngine

 Kontent yetkazib berish xizmatlari 
Asosiy CDN provayderlari:

 Akamai Technologies
 Cloudflare
 Amazon CloudFront
 Google Cloud CDN
 Bunny.net
 CDN77
 Fastly
 Gcore
 Huawei Cloud
 Tencent Cloud
 Alibaba Cloud
 CacheFly

P2P CDNlar

 BitTorrent, Inc.
 Ace Stream
 Teleport Media
 Livepeer

Ichki (in-house) CDNlar

 Netflix
 BBC
 TF1

 Shuningdek qarang 

 Streaming media
 Edge computing
 Data markazi
 Peer-to-peer tarmoq

 Manbalar