ISP ทำการแคชข้อมูลทั้งหมดหรือไม่?


3

เพื่อแสดงคำถามของฉันอย่างชัดเจนฉันจะใช้ตัวเลขที่ค่อนข้างสูง ไฟล์เซิร์ฟเวอร์เชื่อมต่อกับอินเทอร์เน็ตผ่านสาย 1 gbps เซิร์ฟเวอร์กำลังส่งไฟล์ 100 gb ไปยังลูกค้า ไฟล์ถูกแยกส่วนเป็นแพ็กเก็ตและส่งด้วยความเร็ว 1 gbps ไปยังไคลเอนต์ ISP อย่างไรก็ตามไคลเอนต์เชื่อมต่อกับ ISP ด้วยสาย 1 mbps นี่หมายความว่า ISP จะต้องบันทึก / แคชข้อมูลทั้งหมดที่ส่งไปจากเซิร์ฟเวอร์ไฟล์จนกว่าลูกค้าจะได้รับทั้งหมด

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


2
สิ่งที่คุณอธิบายไม่ได้เกิดขึ้น ไคลเอนต์ทำการเชื่อมต่อโดยตรงไปยังเซิร์ฟเวอร์ไฟล์และดาวน์โหลดที่ 1 mbps
Ramhound

@Ramhound มันทำงานอย่างไร? คุณมีบทความภายนอกหรือไม่ เซิร์ฟเวอร์จะรู้ได้อย่างไรว่าควรส่งแพ็กเก็ตที่ความเร็ว 1 mbps จะเกิดอะไรขึ้นถ้ามันไม่ จำกัด ความเร็วนั้น
เพื่อนของคิม

การอธิบายว่าเว็บเซิร์ฟเวอร์ทำงานอย่างไรอยู่นอกขอบเขตของคำถามของคุณ คุณถามว่าสิ่งที่คุณอธิบายว่ามันทำงานอย่างไรไม่ใช่ ISP ของลูกค้าไม่เคยแคชไฟล์ คุณหมายถึงอะไรโดย "จะเกิดอะไรขึ้นหากไม่ จำกัด ความเร็วนั้น" มันคืออะไรกันแน่?
Ramhound


4
ไม่ผู้ส่งต้องรอให้ผู้รับอ่านข้อมูลก่อนจึงจะสามารถส่งข้อมูลเพิ่มเติมได้ มีบัฟเฟอร์เล็กน้อย แต่ไม่มีการแคช (ซึ่งบันทึกไว้สำหรับการใช้งานในภายหลัง) ผู้ส่งอาจจะไม่ได้อ่าน 100 GB ส่วนใหญ่จากดิสก์ด้วยอัตราที่สูงกว่าตัวรับที่ใช้ไป
mgkrebbs

คำตอบ:


11

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

  • Link Layer : โปรโตคอลที่ให้คุณส่งสัญญาณลงลวด (หรือคลื่นวิทยุหรือแสงแฟลชหรืออะไรก็ตาม) ไปยังเครื่องอื่นที่ปลายอีกด้านหนึ่ง ตัวอย่างเช่น PPP, WiFi และ Ethernet
  • Network Layer : โปรโตคอลที่ให้คุณส่งสัญญาณผ่านเครือข่ายของเครื่องเพื่อให้คุณสามารถรับข้อมูลระหว่างเครื่องที่ไม่ได้เชื่อมต่อโดยตรง นี่คือที่ที่ IP และ IPv6 ใช้งานได้
  • Transport Layer : โปรโตคอลที่ให้คุณใช้ความรู้สึกพื้นฐานบางอย่างจากสัญญาณนั้น บางอย่างเช่น TCP สร้าง "การเชื่อมต่อเสมือน" ระหว่างสองเครื่องราวกับว่ามีสายตรงระหว่างพวกเขา อื่น ๆ เช่น UDP เพียงระเบิดบิตข้อมูลออกจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง โปรโตคอลที่แตกต่างกันมีจุดแข็งและจุดอ่อนต่างกันซึ่งเป็นส่วนหนึ่งของสาเหตุที่มีมากมาย
  • Application Layer : นี่คือสิ่งที่เรามักคิดว่าเป็น "โปรโตคอล" พวกมันเชี่ยวชาญเฉพาะกับข้อมูลบางประเภทซึ่งมีวัตถุประสงค์เพื่อวัตถุประสงค์เฉพาะ ตัวอย่างบางส่วน ได้แก่ FTP, HTTP และ BitTorrent ซึ่งถ่ายโอนไฟล์ทั้งหมด

โปรโตคอลการถ่ายโอนไฟล์เหล่านั้นที่ฉันกล่าวถึงมักจะถูกซ้อนทับบน TCP (ซึ่งเป็นตัวซ้อนบน IP) ซึ่งเป็นที่ที่เราได้รับคำถามของคุณ TCP พยายามอย่างดีที่สุดเพื่อให้ทำงานได้เหมือนสายตรงระหว่างเครื่อง: เมื่อเซิร์ฟเวอร์ส่งแพ็คเก็ตก็สามารถมั่นใจได้ว่าลูกค้าได้รับมันและสามารถมั่นใจได้ว่าลูกค้าจะได้รับแพ็กเก็ตในลำดับเดียวกันกับที่ เซิร์ฟเวอร์ส่งพวกเขา ส่วนหนึ่งของวิธีการทำเช่นนี้คือทุกแพ็กเก็ตที่เซิร์ฟเวอร์ส่งต้องได้รับการยอมรับจากลูกค้า: มันจะส่งสัญญาณขนาดเล็กกลับมาโดยบอกว่า "ตกลงฉันได้รับแพ็คเก็ตนั้นแล้วคุณพร้อมแล้วสำหรับอีกอัน" หากเซิร์ฟเวอร์ไม่ได้รับการยอมรับนั้นมันจะส่งแพ็กเก็ตไปเรื่อย ๆ จนกว่ามันจะเกิดขึ้น (หรือตัดสินใจว่าสิ่งนี้จะไม่ทำงานและยอมแพ้)

นี่คือกุญแจสำคัญในการตอบคำถามของคุณ เซิร์ฟเวอร์ไม่สามารถส่งแพ็คเก็ต 2 จนกว่าจะรู้ว่าแพกเก็ต 1 ได้ผ่านซึ่งไม่สามารถเกิดขึ้นจนกว่า Packet 1 ได้รับการยอมรับและที่ไม่สามารถเกิดขึ้นจนกว่า Packet 1 เสร็จจริงๆ เซิร์ฟเวอร์ที่อยู่ตรงกลางของเชนไม่จำเป็นต้องแคชข้อมูลใด ๆ (ไม่มากกว่าหนึ่งแพ็คเก็ตในเวลาต่อไป) เพราะเมื่อเครื่องเห็น Packet 2 ก็รู้ว่าไม่จำเป็นต้อง Packet 1 อีกต่อไป .

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


3
สิ่งหนึ่ง - TCP รองรับ (และเกือบทุกการเชื่อมต่อใช้ประโยชน์) คุณสมบัติการเปิดหน้าต่างที่อนุญาตให้เซิร์ฟเวอร์ส่งแพ็กเก็ตจำนวนหนึ่งโดยไม่ต้องการการตอบสนอง ลูกค้าสามารถรับทราบหลายแพ็คเก็ตในครั้งเดียว สิ่งนี้สามารถเพิ่มความเร็วให้กับการเชื่อมโยงที่ช้าหรือไกลได้อย่างมาก
uSlackr

คำตอบของคุณรวมกับความคิดเห็น @uSlackr เป็นคำตอบที่สมบูรณ์แบบสำหรับคำถามนี้ ขอบคุณทั้งคู่!
เพื่อนของคิม

ข้อยกเว้นจะเป็นพร็อกซีแคชโปร่งใสด้าน ISP ซึ่งจะดาวน์โหลดข้อมูลเร็วที่สุดเท่าที่ ISP สามารถรับได้ แต่พร็อกซีของ ISP จะส่งไปยังไคลเอนต์ช้า
Monstieur

โหนดทั้งหมดบนอินเทอร์เน็ตต้องรองรับโปรโตคอลที่ใช้หรือไม่ ดังนั้นทุกโหนดจะต้องสนับสนุน TCP และ UDP เป็นตัวอย่าง?
เพื่อนของคิม

1
@FriendOfKim: พวกเขาต้องรองรับโปรโตคอล Network-layer (IP ในกรณีของอินเทอร์เน็ต) เพื่อให้พวกเขาสามารถส่งสัญญาณผ่านเครือข่ายของเครื่องจักรเพื่อให้ได้ในที่ที่ต้องการ แต่นั่นเป็นสิ่งเดียวเท่านั้นที่พวกเขาทุกคนต้องให้การสนับสนุน นั่นเป็นเหตุผลที่พวกเขารวบรวมโพรโทคอลด้วยวิธีนี้: คุณสามารถมีลิงค์ประเภทต่าง ๆ ทั้งหมดภายใต้ IP และการขนส่งและแอพพลิเคชั่นทุกชนิดเหนือ IP และตราบใดที่ทุกคนรู้ IP สัญญาณก็จะผ่าน
The Spooniest

2

เซิร์ฟเวอร์ส่วนใหญ่ (เว็บ, FTP, มีอะไร) ใช้แบนด์วิดท์ปริมาณเพื่อหลีกเลี่ยงการมีคอมพิวเตอร์เครื่องเดียวแบนด์วิดธ์ที่มีอยู่ทั้งหมด การเชื่อมต่อแต่ละครั้งอาจถูก จำกัด ความเร็วที่แน่นอนเพื่อให้ลูกค้าหลายรายสามารถเชื่อมต่อและไม่ได้รับผลกระทบจากการชะลอตัวลง อย่างน้อยก็มากเกินไป จำไว้ว่าการเชื่อมต่อของคุณถูก จำกัด โดยลิงค์ที่ช้าที่สุดในเครือข่ายของคุณ

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