Page 234 - Computer Network
P. 234
28.4. อัลกอริทึมในการควบคุมความคับคั่ง (CONGESTION CONTROL ALGORITHMS) 225
โดยภาครับ โดยการส่งของ TCP จะพิจารณาจากความสัมพันธ์
awnd = Min [credit, cwnd]
โดย
awnd ขนาดของ window ที่อนุญาตให้ส่งได้ (MSS) เป็นเซกเมนต์
cwnd ขนาดของ congestion window เป็นเซกเมนต์ ใช้ในช่วงการส่งข้อมูล
credit จำนวนเซกเมนต์ที่สามารถส่งได้อีก จากการรับ ACK ล่าสุด
รูปที่ 28.4 แสดงการทำงานของ Slow start โดยภาคส่งเริ่มต้นที่หนึ่งเซกเมนต์ (cwnd = 1) เมื่อด้านส่งได้ ACK
จะเพิ่มขนาด cwnd เป็นสอง จากนั้นรอจนกระทั่งภาคส่งได้รับ ACK จะเพิ่ม cwnd เป็นสี่ ซึ่งจะทำเช่นนี้ไปเรื่อยๆ
book)
จนกระทั่งถึงค่าสูงสุดที่เป็นไปได้
(partial
only
KKU รูปที่ 28.4: การทำงานของ Slow start
28.4.2 Congestion avoidance
จากที่กล่าวไปแล้วการทำงานของ Slow start จะเพิ่มจำนวนเซกเมนต์ทุกครั้งที่ได้รับ ACK จากภาครับ จนกระทั่งมี
สัญญาณของการเกิดความคับคั่งของข้อมูลในเน็ตเวิร์คขึ้น ในการทำงานของ TCP สัญญาณสำคัญของที่ทำให้ทราบ
ถึงความคับคั่งของข้อมูล ซึ่งนำไปสู่การทำงานของ Congestion avidance ได้แก่การเกิด Timeout ของเซกเมนต์
หากเปรียบเทียบการทำงานของ Slow start (รูปที่ 28.5 (a)) และ Congestion avoidance (รูปที่ 28.5 (b))
แยกกัน จะเห็นว่าทั้งสองมีจุดประสงค์การทำงานที่แตกต่างกัน แต่เมื่อใดก็ตาม มีการเกิดการคับคั่งของข้อมูล TCP
จะลดจำนวนของเซกเมนต์ที่ส่งลงให้เหลือหนึ่ง พร้อมทั้งบันทึกค่าของ cwnd ล่าสุดที่ใช้ จากนั้นใช้การทำงานของ
Slow start เพื่อเพิ่มจำนวนของเซกเมนต์ที่จะส่งอีกครั้ง จนมีค่าเท่ากับครึ่งหนึ่งของ cwnd ล่าสุด (cwnd/2) ก่อน
ที่จะเข้าสู่การทำงานของ Congestion avoidance ในทางปฏิบัติอัลกอริทึมทั้งสอง ถูกพัฒนาใช้งานควบคู่กัน โดย
อาศัยตัวแปรสองตัว เพื่อใช้ในการทำงาน ได้แก่ค่าของ congestion window (cwnd) และ ค่าของ slow start
threshold size (ssthresh)
รูปที่ 28.6 แสดงการทำงานร่วมกันของ Slow start และ Congestion avoidance โดยขั้นตอนการทำงาน
ดังนี้

