ScholarGate
ผู้ช่วย

ชั้นสื่อนำส่งและกลไกควบคุมความคับคั่ง

ชั้นสื่อนำส่ง (transport layer) ขยายการส่งข้อมูลจากโฮสต์ถึงโฮสต์ไปสู่การสื่อสารระหว่างกระบวนการ (process-to-process communication) โดยนำเสนอแอปพลิเคชันด้วยสตรีมข้อมูลแบบไบต์ที่เชื่อถือได้ มีลำดับ และมีการควบคุมความคับคั่ง (TCP) หรือดาตาแกรมแบบไร้การเชื่อมต่อที่มีน้ำหนักเบา (UDP) ในขณะที่กลไกควบคุมความคับคั่งจะควบคุมอัตราการส่งข้อมูลเพื่อไม่ให้เครือข่ายที่ใช้ร่วมกันล่มสลาย

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

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

Scope

ขอบเขตนี้ครอบคลุมบริการสื่อนำส่งแบบต้นทางถึงปลายทาง: การมัลติเพล็กซ์และการดีมัลติเพล็กซ์ข้อมูลไปยังกระบวนการแอปพลิเคชัน หลักการของการถ่ายโอนข้อมูลที่เชื่อถือได้ผ่านเครือข่ายที่ไม่น่าเชื่อถือ (การรับทราบ, การส่งซ้ำ, หมายเลขลำดับ, หน้าต่างเลื่อน) โปรโตคอลควบคุมการส่งข้อมูลแบบเชื่อมต่อ (Transmission Control Protocol) และโปรโตคอลดาตาแกรมผู้ใช้แบบไร้การเชื่อมต่อ (User Datagram Protocol) รวมถึงทฤษฎีและการปฏิบัติของการควบคุมความคับคั่ง ไม่รวมถึงการกำหนดเส้นทางของแพ็กเก็ตข้ามเครือข่าย (ชั้นเครือข่าย) และโปรโตคอลแอปพลิเคชันที่ใช้บริการสื่อนำส่ง (ชั้นแอปพลิเคชัน)

Sub-topics

Core questions

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

Key concepts

  • การมัลติเพล็กซ์และการดีมัลติเพล็กซ์
  • พอร์ตและซ็อกเก็ต
  • การถ่ายโอนข้อมูลที่เชื่อถือได้
  • หน้าต่างเลื่อน, go-back-N, selective repeat
  • การจับมือสามทางของ TCP (TCP three-way handshake)
  • การควบคุมการไหล
  • การควบคุมความคับคั่ง
  • การเพิ่มแบบบวก/การลดแบบคูณ (AIMD)
  • การเริ่มต้นช้าและการหลีกเลี่ยงความคับคั่ง
  • โปรโตคอลดาตาแกรมผู้ใช้ (UDP)

Key theories

การถ่ายโอนข้อมูลที่เชื่อถือได้ผ่านช่องสัญญาณที่ไม่น่าเชื่อถือ
ความน่าเชื่อถือถูกสร้างขึ้นจากการรับทราบ, ตัวจับเวลาการส่งซ้ำ, หมายเลขลำดับ, และโปรโตคอลหน้าต่างเลื่อน (go-back-N และ selective repeat) ที่ตรวจจับและกู้คืนจากการสูญหาย, การซ้ำซ้อน, และการจัดลำดับใหม่ แม้ว่าเครือข่ายพื้นฐานจะไม่น่าเชื่อถือก็ตาม
การควบคุมความคับคั่งของ TCP
TCP อนุมานความคับคั่งจากการสูญหายของแพ็กเก็ตและปรับหน้าต่างการส่งด้วยพลวัตการเพิ่มแบบบวก/การลดแบบคูณ — การเริ่มต้นช้า, การหลีกเลี่ยงความคับคั่ง, และการกู้คืนอย่างรวดเร็ว — เพื่อสำรวจหาแบนด์วิดท์ที่มีอยู่ ในขณะที่ถอยกลับอย่างรวดเร็วเมื่อเกิดการสูญหาย
การสื่อนำส่งแบบไร้การเชื่อมต่อเทียบกับการสื่อนำส่งแบบเชื่อมต่อ
UDP นำเสนอบริการที่บางเบาและไร้การเชื่อมต่อโดยไม่มีการตั้งค่า, ความน่าเชื่อถือ, หรือการควบคุมความคับคั่ง ซึ่งช่วยลดความหน่วงและโอเวอร์เฮด ในขณะที่ TCP นำเสนอสตรีมข้อมูลแบบไบต์ที่เชื่อมต่อ, เชื่อถือได้, และมีการควบคุมความคับคั่ง; การเลือกนี้เป็นการแลกเปลี่ยนระหว่างความหน่วงและการควบคุมกับหลักประกัน

Clinical relevance

พฤติกรรมของชั้นสื่อนำส่งมีผลต่อประสิทธิภาพของแอปพลิเคชันเครือข่ายเกือบทุกชนิด: TCP ใช้ในการส่งข้อมูลเว็บ อีเมล และการถ่ายโอนไฟล์ได้อย่างน่าเชื่อถือ ในขณะที่ UDP รองรับการใช้งานที่มีความหน่วงต่ำ เช่น DNS, เสียงและวิดีโอแบบเรียลไทม์ และเกมจำนวนมาก กลไกควบคุมความคับคั่งเป็นสิ่งที่ทำให้เครือข่ายอินเทอร์เน็ตไม่ล่มสลายภายใต้ภาระงานตั้งแต่ช่วงปลายทศวรรษ 1980 และงานวิจัยที่กำลังดำเนินอยู่เกี่ยวกับอัลกอริทึม เช่น CUBIC และ BBR และโปรโตคอล เช่น QUIC ยังคงปรับสมดุลระหว่างความหน่วง ปริมาณงาน และความเป็นธรรม

History

TCP และ IP เดิมเป็นโปรโตคอลเดียวกันในการออกแบบของ Cerf-Kahn ในปี 1974 และต่อมาได้ถูกแยกออกจากกัน โดย UDP (RFC 768, 1980) ถูกเพิ่มเข้ามาสำหรับแอปพลิเคชันที่ต้องการเพียงบริการดาตาแกรมพื้นฐาน หลังจากเกิดเหตุการณ์ความคับคั่งหลายครั้งบนอินเทอร์เน็ตยุคแรก งานของ Van Jacobson ในปี 1988 ได้นำเสนออัลกอริทึม slow-start และ congestion-avoidance ซึ่งยังคงเป็นรากฐานของการควบคุมความคับคั่งของ TCP และได้รับการปรับปรุงมานานหลายทศวรรษเป็นเวอร์ชันต่างๆ เช่น Reno, CUBIC และ BBR

Debates

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

Key figures

  • Van Jacobson
  • Jon Postel
  • Vinton Cerf
  • Sally Floyd

Related topics

Seminal works

  • kurose2021
  • jacobson1988
  • rfc9293

Frequently asked questions

ฉันควรใช้ UDP แทน TCP เมื่อใด?
ใช้ UDP เมื่อความหน่วงต่ำมีความสำคัญมากกว่าการรับประกันการส่งมอบ และคุณสามารถทนต่อหรือจัดการกับการสูญหายได้ด้วยตนเอง — ตัวอย่างเช่น เสียง/วิดีโอแบบเรียลไทม์, การสอบถาม DNS หรือเกม ใช้ TCP เมื่อคุณต้องการการส่งมอบที่เชื่อถือได้ มีลำดับ และมีการควบคุมความคับคั่งในตัว เช่น สำหรับหน้าเว็บ, การถ่ายโอนไฟล์ และอีเมล
การควบคุมความคับคั่งทำอะไรได้บ้าง?
การควบคุมความคับคั่งจะปรับความเร็วที่ผู้ส่งส่งข้อมูลเข้าสู่เครือข่ายตามสัญญาณของความคับคั่ง ซึ่งโดยทั่วไปคือการสูญหายของแพ็กเก็ตหรือความหน่วง โดยการถอยกลับเมื่อเครือข่ายโอเวอร์โหลดและสำรวจหาความจุที่เหลืออยู่ มิฉะนั้น จะรักษาระดับการจราจรโดยรวมให้อยู่ใกล้ความจุของเครือข่ายและแบ่งปันแบนด์วิดท์อย่างเป็นธรรมในหมู่การไหลของข้อมูล

Methods for this concept

Related concepts