TCP Congestion Control

ในการส่งข้อมูลผ่าน Protocol TCP หากส่งในช่วงเวลาที่มีการรับส่งข้อมูลกันเยอะ เปรียบเสมือนในช่วงเวลาที่การจราจรติดขัด จะมีการควบคุมปริมาณการรับส่งข้อมูลให้มีความเหมาะสม เรียกว่า Congestion Control เปรียบเสมือนตำรวจจราจรที่จะมาช่วยจัดการรถบนถนน สาเหตุที่ต้องมีก็เพราะว่า การส่งข้อมูลจำนวนมากในเวลาที่มีการรับส่งข้อมูลกันเยอะ ๆ มีโอกาสที่ข้อมูลจะถูกส่งไปไม่ถึงมือผู้รับ เนื่องจาก Packet จะถูก Drop โดย Router ที่จำกัดขนาดด้วย Buffer ทางฝั่งผู้รับ ซึ่งทางฝั่งผู้ส่งก็มีการจำกัดการส่งที่เรียกว่าว่า Receive Window (RWND) ที่จะคอยบอกว่า ฝั่งผู้รับมีพื้นที่เหลือเท่าไหร่ ทางฝั่งผู้รับก็จะมี Congestion Window (CWND) ที่จะคอยเก็บข้อมูลเพื่อแจ้งกับฝั่งผู้ส่งว่า ณ เวลานี้มีการรับส่งข้อมูลมากน้อยเพียงใด เพื่อไม่ให้ส่งข้อมูลเกินที่กำหนดไว้ใน Congestion Control


New Reno

จะมีการปรับแก้ไขกระบวนการ Fast Recovery โดยจะเริ่มทำงานเมื่อได้รับ Duplicate ACKs และจะสิ้นสุดลงเมื่อเกิด Retransmission Timeout หรือเมื่อมีการตอบกลับ ACKs มายังผู้ส่ง

CUBIC

เป็น New TCP แบบใหม่ที่ทำให้ส่งข้อมูลได้รวดเร็วมากกว่าเดิมภายใต้ RTT หรือความเร็วต่ำ โดยใช้ฟังก์ชัน Logarithmic จะต่างจากแบบเดิมที่ส่งข้อมูลได้เร็วในสภาพแวดล้อมที่มีความเร็วสูงเท่านั้น


Concept

  • Slow Start

เริ่มแรกจะมีการส่งข้อมูลแบบช้า ๆ ในช่วงแรกของการสร้าง Connection ค่าของ CWND จะถูกตั้งให้มีขนาดเล็กที่สุด โดยเริ่มที่ 1 MSS (Maximum Segment Size) และจะเพิ่มขึ้นแบบยกกำลังสอง เมื่อได้รับการตอบกลับมา (ACKs) จนกระทั่งไม่ได้รับการตอบกลับ (Timeout) หรือเกิด Packet Lost จะเริ่มกระบวนการส่งข้อมูลใหม่เหมือนเดิม แต่จะส่งข้อมูลไม่เกินครั้งแรกที่เกิด Packet Lost ซึ่งจะมีค่า Threshold เท่ากับ CWND / 2

  • Congestion Avoidance

เมื่อเกิด Timeout และเริ่มกระบวนการส่งข้อมูลใหม่ จนมาถึงค่า Threshold จะยกเลิกการส่งข้อมูลแบบยกกำลังสองแล้วเปลี่ยนมาเป็นการส่งแบบช้า ๆ แทน จะเรียกขั้นตอนนี้ว่า Congestion Avoidance ในกรณีที่เกิด Duplicate ACKs จะกำหนดค่า Threshold ใหม่เหลือครึ่งนึงของค่าก่อน เท่ากับ CWND / 2

  • Fast Recovery

หลังจากเกิด Duplicate ACKs ทางฝั่งปลายทางแจ้งว่ายังไม่ได้รับข้อมูล ทางฝั่งต้นทางจะเพิ่มปริมาณการส่ง Packet ให้ผู้รับได้รับข้อมูล เพื่อทำการส่งข้อมูล Packet ต่อไป

อ่านเพิ่มเติม : https://bit.ly/2HuyHwl


Leave a Reply

Your email address will not be published. Required fields are marked *