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) ของข้อมูล สิ่งที่เกิดขึ้นคืออัตราการเพิ่มขึ้นของ
   227   228   229   230   231   232   233   234   235   236   237