Page 232 - Computer Network
P. 232
28.2. TCP ROUND TRIP TIME AND TIMEOUT [?] 223
ของ rwnd ที่แจ้งจากภาครับ ในที่นี้สมมติข้อมูลที่จะส่งไป wnd เท่ากับ 5 แต่เนื่องด้วยภาครับประมวลผลข้อมูล
ค่อนข้างช้า ทำให้ลดค่าของ rwnd ลงเหลือเท่ากับ 3 เพื่อแจ้งไปยังภาคส่ง ทำให้ภาคส่งทำการส่งเพียง wnd เท่ากับ
3 เท่านั้น อีกครั้ง เมื่อภาครับได้รับข้อมูล wnd เท่ากับ 3 และประมวลผลข้อมูลที่ได้รับแล้วมีค่า rwnd เท่ากับ 1
ภาครับจะลดค่าของ rwnd ลงอีกครั้ง ทำให้ส่ง rwnd เท่ากับ 1 เท่านั้น การทำงานทั้งหมดนี้ เพื่อป้องกันไม่ให้ข้อมูล
มีจำนวนมากเกินกว่าภาครับจะประมวลผลได้ทัน
28.2 TCP Round Trip Time and Timeout [28]
จากหัวข้อที่ ?? ทำให้เราทราบว่า RTT ถือเป็นปัจจัยสำคัญในการกำหนดขนาดของ Window เพื่อให้การใช้ช่อง
สัญญาณเป็นไปอย่างมีประสิทธิภาพสูงสุด และจะเห็นว่าการที่ใช้ขนาดของ window ที่ตํ่า ทำให้การใช้งานเน็ตเวิร์ค
เป็นไปอย่างไม่มีประสิทธิภาพ
เมื่อเราทราบถึงค่าของ RTT จะทำให้สามารถคำนวณหาค่าของ Timeout ของเซกเมนต์ในการส่งเซกเมนต์
ออกไปอีกครั้ง หากมีการสูญหายของข้อมูลเกิดขึ้น ยิ่งไปกว่านั้น ค่าของ Timeout ของ
ความคับคั่งของข้อมูลบน TCP ที่เราจะได้กล่าวต่อไป book) TCP ยังส่งผลต่อการจัดการ
• SampleRTT เป็นค่าของเวลาหนึ่งรอบของการส่งข้อมูลไปยังด้านรับและได้รับการตอบกลับ
(partial (28.1)
• EstimatedRTT เป็นค่าเฉลี่ยของ SampleRTT โดยความสัมพันธ์คือ
EstimatedRTT = (1 − α)EstimatedRTT + αSampleRTT
โดยที่ α เป็นค่าที่ใช้ในการปรับค่าของ RTT (smoothing factor) เพื่อใช้ในการประเมินผลของค่าที่ผ่าน
only โดยทั่วไปจะกำหนดให้มีค่าเป็น 1/8 หรือ 0.125 หากแทนค่าลง
มาว่าควรจะมีนํ้าหนัก (weight) เท่าใด
ในสมการ จะทำให้พบว่าค่าของ EstimatedRTT จะมีผลมากกว่าค่าของ SampleRTT การทำเช่นนี้จะ
ทำให้ค่าที่ได้มาไม่มีผลต่อการเปลี่ยนค่า RTT มากนัก เรียกว่า วิธีถัวเฉลี่ยถ่วงนํ้าหนักแบบเอ็กโปเน็นเชียล
KKU
(exponential weighted moving average)
• DevRTT ค่าของการเบี่ยงเบนมาตรฐานของ RTT โดยความสัมพันธ์คือ
DevRTT = (1 − β)DevRTT + β|SampleRTT − EstimatedRTT|
ดังนั้นจะได้ค่าของ timeout เป็น
Timeout = EstimatedRTT + 4DevRTT
28.3 Congestion Collapse
เนื่องด้วยการทำงานของ TCP เริ่มต้น มิได้คำนึงถึงความสามารถของเน็ตเวิร์คในการรองรับการทำงานของผู้ใช้
จำนวนมาก ทำให้เกิดปัญหาอันเนื่องมาจากความคับคั่งของข้อมูล เมื่อจำนวนข้อมูลที่ถูกส่งเข้ามารวมๆกันแล้วเกิน
กว่าความสามารถที่เน็ตเวิร์คจะสามารถรองรับได้ ทำให้เซกเมนต์ที่ส่งไปนั้นจำเป็นต้องถูกส่งออกไปใหม่ หากไม่
ได้รับ ACK ในเวลาที่กำหนดภายในช่วงเวลา Timeout รูปที่ 28.3 แสดงให้เห็นปรากฎการณ์ที่เกิดขึ้น จะเห็นว่า
ในขณะที่มีข้อมูล (offered load) ไม่มากนัก ประสิทธิภาพของระบบ (ทรูพุต) เพิ่มขึ้นในลักษณะที่เป็นเส้นตรง
เมื่อเน็ตเวิร์คมีข้อมูลจำนวนมากหรือเกิดความคับคั่ง (congest) ของข้อมูล สิ่งที่เกิดขึ้นคืออัตราการเพิ่มขึ้นของ

