CDN (เครือข่ายการกระจายเนื้อหา) ทำงานอย่างไร


37

รับ Akamai เป็น CDN จากสิ่งที่ฉันเข้าใจเมื่อลูกค้าร้องขอหน้าคำขอจะไปที่เซิร์ฟเวอร์กลางของ Akamai ซึ่งจากนั้นขึ้นอยู่กับที่ตั้งของลูกค้าหยิบเซิร์ฟเวอร์ขอบ Akamai ขึ้นมาและคำขอที่ตามมาจากลูกค้าจะไปที่เซิร์ฟเวอร์ขอบนี้โดยตรง คำถามของฉันคือ:

เมื่อลูกค้าขอเว็บไซต์ (ตามชื่อ) เมื่อ DNS แก้ไขชื่อเป็นที่อยู่ IP ของเซิร์ฟเวอร์ส่วนกลางของ Akamai และส่งต่อไปยังลูกค้าลูกค้าจะถือไปยังที่อยู่ IP นี้จากนั้นจะสามารถร้องขอต่อไปได้อย่างไร ไปที่ที่อยู่ IP ของเซิร์ฟเวอร์ Edge Akamai โดยตรงได้อย่างไร

หรือเป็นสิ่งจำเป็นหรือไม่ที่เมื่อมีการใช้ CDN ดังนั้นการแก้ไข DNS ควรทำโดยเซิร์ฟเวอร์ CDN หรือไม่

biggies เช่น Google, Amazon, Facebook มีเซิร์ฟเวอร์ CDN ของตัวเองหรือพวกเขาพึ่งพาผู้ให้บริการ CDN บุคคลที่สามเช่น Akamai? พูดกับ Google และ Yahoo! ทั้งสองใช้ Akamai CDNs จากนั้นจะทำเนื้อหาของ Yahoo! และ Google อยู่บนเซิร์ฟเวอร์เดียวกันหรือไม่ ไม่ใช่ปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นใช่ไหม

คำตอบ:


27

คุณไม่เพียงแค่เป็นเจ้าภาพเว็บไซต์ทั้งหมดกับ CDN เพียงคุณเนื้อหา

ฉันเพิ่งรู้ว่าฉันตอบคำถามที่คล้ายกันสักครู่: akamaihd.net ทำอะไร

การไหลของการร้องขอข้อมูลภาพโดย WikiMedia

http://akamai/myfile.extดังนั้นการอ้างอิงเว็บไซต์ของคุณ นี้จะขอจากmyfile.ext จากนั้นสามารถส่งการเปลี่ยนเส้นทาง HTTP ไปยังเซิร์ฟเวอร์เนื้อหาจริงakamaiakamai

ตอนนี้เมื่อขั้นตอนสุดท้ายนั้นถูกแคชยอดเยี่ยมคำขอในอนาคตทั้งหมดจะไปที่เซิร์ฟเวอร์เนื้อหาที่ใกล้เคียงที่สุด

มันทำงานอย่างไร

สมมติว่าเว็บไซต์นี้:

<html>
  <body>
    <img src="http://cdn/oliver.png" />
  </body>
</html>

ฉันขอเว็บไซต์นี้จากเว็บเซิร์ฟเวอร์ของฉันเอง .htmlไฟล์ไม่ได้cdnเป็นเจ้าภาพกับ ไม่มี DNS ของเว็บเซิร์ฟเวอร์ของฉัน

คำขอเริ่มต้น

เบราว์เซอร์ของฉันมีไฟล์ HTML นั้นและแยกวิเคราะห์ http://cdn/oliver.pngพบภาพอ้างอิงและบันทึกว่ามันตั้งอยู่ที่ มันขอไฟล์นั้น

ต้องการทำเช่นนั้นก็ต้องไปหาที่อยู่ IP cdnของ ในตัวอย่างของเราที่อยู่ IP 10.10.10.10เป็น

ด้วยที่อยู่ IP นั้นสามารถเชื่อมต่อกับcdnเซิร์ฟเวอร์และขอ/oliver.pngได้

ที่ตั้งทางภูมิศาสตร์

ตอนนี้cdnตระหนักดีว่า " คนนั้นมาจากเยอรมัน! " ดังนั้นแทนที่จะส่งภาพที่น่ากลัวของฉันที่ฉันต้องการมาให้ฉันมันจะส่งการเปลี่ยนเส้นทาง HTTP ไปให้ฉัน

/oliver.png ไม่ได้อยู่ที่นี่ มันอยู่ที่10.10.33.33/oliver.png

ดังนั้นเบราว์เซอร์ของฉันจะถาม10.10.33.33(ซึ่งหวังว่าใกล้ฉัน) สำหรับรูปภาพ

อย่างจริงจัง?

ฉันไม่ได้บอกว่านี่เป็นวิธีการทำงานของ CDN ทั้งหมด แต่จะเป็นวิธีหนึ่ง

คุณสามารถใช้ DNS daemon ที่ให้ผลลัพธ์ที่แตกต่างกันสำหรับการค้นหาชื่อขึ้นอยู่กับตำแหน่งของผู้ที่ส่งแบบสอบถาม
แต่ฉันสงสัยว่าสิ่งนี้ทำในทางปฏิบัติ แต่บางทีฉันก็นึกไม่ออกว่าจะตั้งมันยังไงดี ดูคำตอบที่นุ่มนวลสำหรับวิธีการที่สามารถใช้งานได้

ใครเป็นผู้ดูแล CDN

ผู้เล่นระดับโลกส่วนใหญ่มีเครือข่ายการจัดส่งเนื้อหาของตนเองในทางใดทางหนึ่ง (หรือดังนั้นฉันจะถือว่า) ผู้ให้บริการบางรายเพียงแค่ลดการบริการบางอย่างลงใน CDN ที่ใหญ่กว่า (เช่น Microsoft ทำกับการดาวน์โหลด MSDN) และสิ่งนี้อาจสัมผัสกับเรื่องที่สองของคุณ

พิจารณาสิ่งนี้ใน MSDN Microsoft เสนอการดาวน์โหลดผลิตภัณฑ์ การดาวน์โหลดเหล่านี้จัดหาให้โดย Akamai หากคุณสามารถระบุ URL ของการดาวน์โหลดนั้นคุณสามารถดาวน์โหลดผลิตภัณฑ์โดยไม่ต้องติดต่อกับ Microsoft

นั่นเป็นปัญหาด้านความปลอดภัยหรือไม่? ไม่ใช่เพราะสิ่งที่กำลังดาวน์โหลดยังคงได้รับการปกป้อง (โดยรหัสผลิตภัณฑ์)

แต่แล้วข้อมูลอื่น ๆ ล่ะ?

หากข้อมูลของคุณเกี่ยวข้องกับความปลอดภัยแสดงว่าไม่ใช่วัสดุ CDN หากคุณไม่ต้องการให้บางสิ่งบางอย่างพร้อมใช้งานให้กว้างที่สุดเท่าที่เป็นไปได้อย่าวางไว้ใน CDN


กล่าวว่าเว็บไซต์เป็นsomewebsite / file.txt กำลังใช้ Akamai DNS อยู่ จากนั้นคำขอที่หนึ่งจากลูกค้าไปที่เว็บไซต์หรือคำขอแรกนั้นไปที่ Akamai (เพราะ DNS ที่ลูกค้าใช้นั้นรู้ว่า Akamai CDN ใช้งานอยู่)
p2pnode

และบางทีฉันไม่เข้าใจการเปลี่ยนเส้นทาง HTTP และสิ่งที่พวกเขาสามารถบรรลุได้ดังนั้นคำถามของฉันยังคงอยู่ที่ลูกค้าจะรู้ได้อย่างไรว่าใช้ที่อยู่ IP ของเซิร์ฟเวอร์ขอบ Akamai เพื่อให้เซิร์ฟเวอร์กลางของ Akamai ไม่ต้องเข้ามาดูที่ ทั้งหมด ..
p2pnode

@ p2pnode: ฉันขยายคำตอบเล็กน้อย หวังว่ามันจะรวมถึงสิ่งที่คุณสงสัย
Der Hochstapler

1
มีประสิทธิภาพที่สำคัญจากสิ่งนี้หรือไม่ แต่ทุกการถ่ายโอนข้อมูลที่เกิดขึ้นในช่วงกระแส TCP เดียวหลายกระแสที่มีการใช้มากขึ้นค่าใช้จ่ายจากการจับมือกัน ฯลฯ ..
Akash

@Akash: โดยปกติคุณจะไม่ใช้ CDN สำหรับทุกสิ่งแต่จะมีเฉพาะไฟล์ขนาดใหญ่เท่านั้น ดังนั้นในทางปฏิบัตินี่ไม่ใช่ปัญหา
Der Hochstapler

11

วิธีการที่ใช้กันทั่วไปใน CDN คือการใช้สิ่งที่เรียกว่า " anycast " วิธีการทำงานนี้คือเซิร์ฟเวอร์ที่ใช้งานร่วมกันของคุณจะเชื่อมต่อกับ DNS ที่ตอบสนองกับเซิร์ฟเวอร์นั้นเป็นปลายทาง ตัวอย่างเช่นคุณอาจมีเซิร์ฟเวอร์สามเครื่องในสิ่งอำนวยความสะดวกการโฮสต์ที่แตกต่างกันและ DNS ที่เกี่ยวข้องทั้งหมดอ้างว่าที่อยู่ IP ของพวกเขาเป็นที่ยอมรับสำหรับเซิร์ฟเวอร์ของคุณ (เรียกว่าพูดcontent.example.com) DNSes มีการกำหนดค่าแต่ละที่จะมีที่อยู่ IP เดียวกันทั่วโลกแล้วในแต่ละสถานที่เซิร์ฟเวอร์ใช้ BGP ปรับปรุงเพื่อให้มันเพื่อให้เส้นทางที่จะไปอยู่ใกล้ชัยชนะเซิร์ฟเวอร์ - ดังนั้นเมื่อคุณจะค้นหาชื่อในcontent.example.comที่เร็วที่สุด / ที่อยู่ใกล้ / DNS ที่พร้อมใช้งานส่วนใหญ่ตอบสนองต่อคำขอด้วยเซิร์ฟเวอร์ HTTP

ด้วยวิธีนี้ไม่จำเป็นต้องใช้เทคนิค GeoIP และคุณจะได้รับเนื้อหาเสมอโดยเซิร์ฟเวอร์ใดก็ตามที่เร็วที่สุดสำหรับคุณ - ซึ่งอาจมีหรือไม่มีส่วนเกี่ยวข้องกับที่ตั้งทางกายภาพเนื่องจากธรรมชาติของอินเทอร์เน็ตที่หลากหลาย

มันเป็นความเข้าใจของฉันที่ Akamai อย่างน้อยก็ทำงานได้บางส่วน


5

มีอยู่ด้วยเช่นกันคือ Origin Pull type CDNs

Amazon Cloudfront สามารถใช้เทคนิคนี้

คุณตั้งค่า CNAME เช่น media.example.com ที่ชี้ไปที่ชื่อเซิร์ฟเวอร์ที่กำหนดและทิ้งเนื้อหาทั้งหมดไว้บนเซิร์ฟเวอร์ของคุณ สำหรับรูปภาพและเนื้อหาที่คุณต้องการส่งมอบผ่าน CDN คุณใช้ media.example.com ใน URL คำขอไปที่เครือข่ายเซิร์ฟเวอร์และหากเนื้อหาไม่พร้อมใช้งานเซิร์ฟเวอร์ของพวกเขาจะดึงเนื้อหาจากเซิร์ฟเวอร์ของคุณ เมื่ออยู่ในระบบเนื้อหาจะถูกแจกจ่ายไปยังเซิร์ฟเวอร์ฟาร์มใกล้เคียงกับความต้องการที่มีอยู่และยังคงอยู่สำหรับ TTL ที่กำหนด เซิร์ฟเวอร์ของคุณไม่เห็นการรับส่งข้อมูลบนเนื้อหาที่เก็บไว้อีกต่อไปจนกว่า TTL จะหมดอายุและ Cloudfront ต้องรีเฟรช


1

Akamai ไม่ทำงานในลักษณะนี้ CDN ที่แตกต่างกันทำงานแตกต่างกัน แต่ Akamai ไม่ได้ทำการถ่ายทอดเว็บเซิร์ฟเวอร์ของตน

เมื่อผู้ใช้ใน NY ต้องการwww.acme.comเซิร์ฟเวอร์ชื่อของ acme.com จะเปลี่ยนเส้นทาง ("ผู้รับมอบสิทธิ์") ไปยังเซิร์ฟเวอร์ชื่อ Akamai เซิร์ฟเวอร์ชื่อ Akamai เห็นที่เครื่องที่ถูกถามคำถามอยู่ (ตามที่อยู่ IP) และผลตอบแทนที่อยู่ IP ของเซิร์ฟเวอร์ที่ใกล้ที่สุด / ดีที่สุด Akamai www.acme.comที่จะให้บริการ


มันทำงานอย่างไร? เซิร์ฟเวอร์ชื่อ Akamai ได้รับคำขอจากผู้ใช้โดยตรงหรือจากเซิร์ฟเวอร์ DNS ของผู้ใช้ที่มอบหมายให้เซิร์ฟเวอร์ชื่อ Akamai ดังนั้นจะถูกระบุตำแหน่งทางภูมิศาสตร์ตามที่ตั้งเซิร์ฟเวอร์ DNS ไม่ใช่ของผู้ใช้หรือไม่
odiszapc

0

บทสรุปที่ยอดเยี่ยมเกี่ยวกับการทำงานของ CDN ของ Akamai ที่นี่

ในระยะสั้น:

  • เซิร์ฟเวอร์ CDN มีระเบียน CNAME ที่ชี้ไปยังเซิร์ฟเวอร์ DNS ของ Akamai
  • ดังนั้นคำขอแรกที่เบราว์เซอร์ไคลเอนต์ทำกับเซิร์ฟเวอร์ CDN คือ DNS ค้นหาที่เซิร์ฟเวอร์ DNS ของ Akamai ซึ่งตอบกลับด้วยที่อยู่ ip ของเซิร์ฟเวอร์ Akamai ที่ใกล้กับผู้ใช้ (เรียกว่า "Edge Servers")
  • เซิร์ฟเวอร์ Edge เหล่านี้อาจให้บริการองค์ประกอบคงที่จากแคชในพื้นที่หากผู้ใช้รายอื่นได้รับการร้องขอเมื่อเร็ว ๆ นี้และไม่จำเป็นต้องกลับไปที่เซิร์ฟเวอร์ของคุณเพื่อรับสำเนาของเนื้อหา
  • องค์ประกอบที่ขาดหายไปหรือหน้าเว็บที่ไม่สามารถเข้าถึงได้จะถูกส่งผ่านเครือข่าย Akamai ไปยังเซิร์ฟเวอร์ขอบอื่นใกล้กับโฮสต์ เซิร์ฟเวอร์ขอบนั้นทำการร้องขอที่แท้จริงไปยังไซต์โฮสต์และส่งผ่านเครือข่ายไปยังเซิร์ฟเวอร์ขอบดั้งเดิมและจากนั้นพวกเขาจะถูกส่งกลับไปยังผู้ใช้ปลายทาง
  • เนื่องจากเซิร์ฟเวอร์ขอบกำลังสื่อสารภายในโดยใช้โปรโตคอลที่เป็นกรรมสิทธิ์ของ Akamai และการกำหนดเส้นทางรอบคอขวดการรับส่งข้อมูลจึงสามารถไหลได้เร็วกว่าอินเทอร์เน็ตสาธารณะ

และตามที่ระบุไว้ในโพสต์บล็อกที่ระบุไว้ข้างต้น บริษัท ขนาดใหญ่บางแห่งแก้ไข DNS โดยใช้เซิร์ฟเวอร์ของตัวเองซึ่งสามารถลบล้างประโยชน์บางประการของการใช้ CDN


-2

CDN ทำงานบน Anycast DNS Anycast dns ทำงานบน Anycast ip Anycast ip: หนึ่ง ip กำหนดให้กับเซิร์ฟเวอร์หลายเครื่อง เมื่อผู้ใช้ร้องขอ dns resolver แบบสอบถามนั้นจะจัดการโดยเซิร์ฟเวอร์ที่ใกล้ที่สุดและให้ข้อมูลจากเซิร์ฟเวอร์โดยมีเวลาหน่วงน้อยที่สุด


สิ่งนี้ปรับปรุงได้ดีขึ้นกับคำตอบที่มีอยู่ในปัจจุบัน
Chenmunka
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.