Page 233 - Computer Network
P. 233
224 บทที่ 28. การป้องกันความคับคั่ง
รูปที่ 28.3: ปรากฎการณ์ที่เกิดขึ้นเนื่องจากมีจำนวนผู้ใช้จำนวนมากใน TCP
ประสิทธิภาพระบบเริ่มลดลง เมื่อถึงจุดที่ไม่สามารถรองรับได้ จะทำให้ประสิทธิภาพลดลง จนกระทั่งเลวร้ายสุดก็คือ
ตกลงมาเหลือศูนย์นั่นเอง
อัลกอริทึมในการควบคุมความคับคั่ง book)
28.4 อัลกอริทึมในการควบคุมความคับคั่ง (Congestion Control
(partial
Algorithms)
จากปัญหาที่พบในการทำงานของ TCP ทำให้มีการแก้ปัญหาต่างๆเกิดขึ้น หนึ่งในการแก้ปัญหาดังกล่าว โดย
มีการคำนึงถึงสถานะของเน็ตเวิร์คเพื่อให้มีการปรับเปลี่ยนการส่งข้อมูลของ TCP ให้เหมาะสมกับข้อจำกัดของ
only
เน็ตเวิร์ค (network limit) ในขณะนั้น โดยการทำงานดังกล่าวอยู่บนพื้นฐานที่ว่าความน่าจะเป็นของความผิดพลาด
ของข้อมูลน้อยมาก (น้อยกว่า 1 เปอร์เซ็นต์มาก) ทำให้ภาคส่งประเมินว่าสิ่งที่เกิดขึ้นอันเนื่องมาจากการสูญหายของ
เซกเมนต์มาจากการเกิดการคับคั่งของข้อมูลเท่านั้น โดยอัลกอริทึมที่พัฒนาใช้ได้แก่
KKU
Slow Start การเริ่มการส่งที่จำนวนเซกเมนต์เป็นหนึ่ง และเพิ่มขึ้นเป็นสองเท่าทุกครั้งที่ได้รับ ACK
Congestion avoidance การเพิ่มการส่งที่หนึ่งเซกเมนต์หรือ Additive increase เมื่อข้อมูลที่ส่งถึงภาครับครบ
ถ้วน เพื่อชะลอการส่งเซกเมนต์ไปในเน็ตเวิร์ค
Fast retransmit การเร่งการส่งเซกเมนต์ออกไปใหม่ เมื่อได้รับ ACK หมายเลขเดียวกันซํ้าๆ ก่อนที่จะเกิด
timeout
Fast recovery การลดจำนวนเซกเมนต์ที่จะส่งลงเหลือครึ่งหนึ่ง แทนที่จะลดเหลือหนึ่ง เพื่อเข้าสู่ทำงานของ
slow start โดยไม่จำเป็น
28.4.1 Slow Start
เนื่องจากการทำงานของ TCP อยู่บนการใช้ทรัพยากรร่วมกัน Slow start มีส่วนช่วยในการป้องกันไม่ให้เน็ตเวิร์ค
เกิดความคับคั่งอย่างรวดเร็ว เนื่องจากผู้ใช้แต่ละคนส่งข้อมูลจำนวนมากไปในเน็ตเวิร์คในครั้งเดียว การทำงานของ
Slow start จะค่อยเพิ่มจำนวนแพกเกตที่จะส่งขึ้นทุกครั้งที่ได้รับ ACK จากภาครับ เริ่มต้นจากการส่งที่หนึ่งเซกเมน
ต์ จากนั้นจะเพิ่มขึ้นที่ละหนึ่งทุกครั้งที่ได้รับการตอบกลับของ ACK ในที่นี้ TCP จะใช้ค่าของ Congestion Window
cwnd เพื่อจำกัดจำนวนของเซกเมนต์ที่จะส่งแทนที่จะเป็นขนาดของ window (ในที่นี้เรียกว่า credit) ที่กำหนด

